4.Gimple
— GIMPLE function: 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
).
— GIMPLE function: gcall *gimple_build_call_from_tree (tree call_expr)
Build a
GIMPLE_CALL
from aCALL_EXPR
node. The arguments and the function are taken from the expression directly. 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
.
— GIMPLE function: gcall *gimple_build_call_vec (tree fn, vec<tree>
args)
Identical to
gimple_build_call
but the arguments are stored in avec<tree>
.
— GIMPLE function: tree gimple_call_lhs (gimple g)
Return the
LHS
of call statementG
.
— GIMPLE function: tree * gimple_call_lhs_ptr (gimple g)
Return a pointer to the
LHS
of call statementG
.
— GIMPLE function: void gimple_call_set_lhs (gimple g, tree lhs)
Set
LHS
to be theLHS
operand of call statementG
.
— GIMPLE function: tree gimple_call_fn (gimple g)
Return the tree node representing the function called by call statement
G
.
— GIMPLE function: 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.
— GIMPLE 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
.
— GIMPLE function: tree gimple_call_set_fndecl (gimple g, tree fndecl)
Set the called function to
FNDECL
.
— GIMPLE function: tree gimple_call_return_type (const gcall *g)
Return the type returned by call statement
G
.
— GIMPLE function: tree gimple_call_chain (gimple g)
Return the static chain for call statement
G
.
— GIMPLE function: void gimple_call_set_chain (gcall *g, tree chain)
Set
CHAIN
to be the static chain for call statementG
.
— GIMPLE function: unsigned gimple_call_num_args (gimple g)
Return the number of arguments used by call statement
G
.
— GIMPLE function: tree gimple_call_arg (gimple g, unsigned index)
Return the argument at position
INDEX
for call statementG
. The first argument is 0.
— GIMPLE function: tree * gimple_call_arg_ptr (gimple g, unsigned index)
Return a pointer to the argument at position
INDEX
for call statementG
.
— GIMPLE function: void gimple_call_set_arg (gimple g, unsigned index, tree arg)
Set
ARG
to be the argument at positionINDEX
for call statementG
.
— GIMPLE function: 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.
— GIMPLE function: bool gimple_call_tail_p (gcall *s)
Return true if
GIMPLE_CALL
S
is marked as a tail call.
— GIMPLE function: bool gimple_call_noreturn_p (gimple s)
Return true if
S
is a noreturn call.
— GIMPLE function: 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
.