GIMPLE_CALL#
-
gcall *gimple_build_call(tree fn, unsigned nargs, ...)#
Build a
GIMPLE_CALL
statement to functionFN
. The argumentFN
must be either aFUNCTION_DECL
or a gimple call address as determined byis_gimple_call_addr
.NARGS
are the number of arguments. The rest of the arguments follow the argumentNARGS
, and must be trees that are valid as rvalues in gimple (i.e., each operand is validated withis_gimple_operand
).
-
gcall *gimple_build_call_from_tree(tree call_expr, tree fnptrtype)#
Build a
GIMPLE_CALL
from aCALL_EXPR
node. The arguments and the function are taken from the expression directly. The type of theGIMPLE_CALL
is set from the second parameter passed by a caller. This routine assumes thatcall_expr
is already in GIMPLE form. That is, its operands are GIMPLE values and the function call needs no further simplification. All the call flags incall_expr
are copied over to the newGIMPLE_CALL
.
-
gcall *gimple_build_call_vec(tree fn, vec<tree> args)#
Identical to
gimple_build_call
but the arguments are stored in avec<tree>
.
-
tree gimple_call_lhs(gimple g)#
Return the
LHS
of call statementG
.
-
tree *gimple_call_lhs_ptr(gimple g)#
Return a pointer to the
LHS
of call statementG
.
-
void gimple_call_set_lhs(gimple g, tree lhs)#
Set
LHS
to be theLHS
operand of call statementG
.
-
tree gimple_call_fn(gimple g)#
Return the tree node representing the function called by call statement
G
.
-
void gimple_call_set_fn(gcall *g, tree fn)#
Set
FN
to be the function called by call statementG
. This has to be a gimple value specifying the address of the called function.
-
tree gimple_call_fndecl(gimple g)#
If a given
GIMPLE_CALL
‘s callee is aFUNCTION_DECL
, return it. Otherwise returnNULL
. This function is analogous toget_callee_fndecl
inGENERIC
.
-
tree gimple_call_set_fndecl(gimple g, tree fndecl)#
Set the called function to
FNDECL
.
-
tree gimple_call_return_type(const gcall *g)#
Return the type returned by call statement
G
.
-
tree gimple_call_chain(gimple g)#
Return the static chain for call statement
G
.
-
void gimple_call_set_chain(gcall *g, tree chain)#
Set
CHAIN
to be the static chain for call statementG
.
-
unsigned gimple_call_num_args(gimple g)#
Return the number of arguments used by call statement
G
.
-
tree gimple_call_arg(gimple g, unsigned index)#
Return the argument at position
INDEX
for call statementG
. The first argument is 0.
-
tree *gimple_call_arg_ptr(gimple g, unsigned index)#
Return a pointer to the argument at position
INDEX
for call statementG
.
-
void gimple_call_set_arg(gimple g, unsigned index, tree arg)#
Set
ARG
to be the argument at positionINDEX
for call statementG
.
-
void gimple_call_set_tail(gcall *s)#
Mark call statement
S
as being a tail call (i.e., a call just before the exit of a function). These calls are candidate for tail call optimization.
-
bool gimple_call_tail_p(gcall *s)#
Return true if
GIMPLE_CALL
S
is marked as a tail call.
-
bool gimple_call_noreturn_p(gimple s)#
Return true if
S
is a noreturn call.
-
gimple gimple_call_copy_skip_args(gcall *stmt, bitmap args_to_skip)#
Build a
GIMPLE_CALL
identical toSTMT
but skipping the arguments in the positions marked by the setARGS_TO_SKIP
.