GIMPLE_CALL ¶gcall *gimple_build_call (tree fn, unsigned nargs, ...) ¶Build a GIMPLE_CALL statement to function FN. The argument FN
must be either a FUNCTION_DECL or a gimple call address as
determined by is_gimple_call_addr. NARGS are the number of
arguments. The rest of the arguments follow the argument NARGS,
and must be trees that are valid as rvalues in gimple (i.e., each
operand is validated with is_gimple_operand).
gcall *gimple_build_call_from_tree (tree call_expr, tree fnptrtype) ¶Build a GIMPLE_CALL from a CALL_EXPR node. The arguments
and the function are taken from the expression directly. The type of the
GIMPLE_CALL is set from the second parameter passed by a caller.
This routine assumes that call_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 in call_expr are copied over
to the new GIMPLE_CALL.
gcall *gimple_build_call_vec (tree fn, vec<tree> args) ¶Identical to gimple_build_call but the arguments are stored in a
vec<tree>.
tree gimple_call_lhs (gimple g) ¶Return the LHS of call statement G.
tree * gimple_call_lhs_ptr (gimple g) ¶Return a pointer to the LHS of call statement G.
void gimple_call_set_lhs (gimple g, tree lhs) ¶Set LHS to be the LHS operand of call statement G.
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 statement G. 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 a FUNCTION_DECL, return it.
Otherwise return NULL. This function is analogous to
get_callee_fndecl in GENERIC.
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 statement G.
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 statement G. 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
statement G.
void gimple_call_set_arg (gimple g, unsigned index, tree arg) ¶Set ARG to be the argument at position INDEX for call statement
G.
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 to STMT but skipping the arguments
in the positions marked by the set ARGS_TO_SKIP.