Manipulating GIMPLE statements#

This section documents all the functions available to handle each of the GIMPLE instructions.

Common accessors#

The following are common accessors for gimple statements.

enum gimple_code gimple_code(gimple g)#

Return the code for statement G.

basic_block gimple_bb(gimple g)#

Return the basic block to which statement G belongs to.

tree gimple_block(gimple g)#

Return the lexical scope block holding statement G.

enum tree_code gimple_expr_code(gimple stmt)#

Return the tree code for the expression computed by STMT. This is only meaningful for GIMPLE_CALL, GIMPLE_ASSIGN and GIMPLE_COND. If STMT is GIMPLE_CALL, it will return CALL_EXPR. For GIMPLE_COND, it returns the code of the comparison predicate. For GIMPLE_ASSIGN it returns the code of the operation performed by the RHS of the assignment.

void gimple_set_block(gimple g, tree block)#

Set the lexical scope block of G to BLOCK.

location_t gimple_locus(gimple g)#

Return locus information for statement G.

void gimple_set_locus(gimple g, location_t locus)#

Set locus information for statement G.

bool gimple_locus_empty_p(gimple g)#

Return true if G does not have locus information.

bool gimple_no_warning_p(gimple stmt)#

Return true if no warnings should be emitted for statement STMT.

void gimple_set_visited(gimple stmt, bool visited_p)#

Set the visited status on statement STMT to VISITED_P.

bool gimple_visited_p(gimple stmt)#

Return the visited status on statement STMT.

void gimple_set_plf(gimple stmt, enum plf_mask plf, bool val_p)#

Set pass local flag PLF on statement STMT to VAL_P.

unsigned int gimple_plf(gimple stmt, enum plf_mask plf)#

Return the value of pass local flag PLF on statement STMT.

bool gimple_has_ops(gimple g)#

Return true if statement G has register or memory operands.

bool gimple_has_mem_ops(gimple g)#

Return true if statement G has memory operands.

unsigned gimple_num_ops(gimple g)#

Return the number of operands for statement G.

tree *gimple_ops(gimple g)#

Return the array of operands for statement G.

tree gimple_op(gimple g, unsigned i)#

Return operand I for statement G.

tree *gimple_op_ptr(gimple g, unsigned i)#

Return a pointer to operand I for statement G.

void gimple_set_op(gimple g, unsigned i, tree op)#

Set operand I of statement G to OP.

bitmap gimple_addresses_taken(gimple stmt)#

Return the set of symbols that have had their address taken by STMT.

struct def_optype_d *gimple_def_ops(gimple g)#

Return the set of DEF operands for statement G.

void gimple_set_def_ops(gimple g, struct def_optype_d *def)#

Set DEF to be the set of DEF operands for statement G.

struct use_optype_d *gimple_use_ops(gimple g)#

Return the set of USE operands for statement G.

void gimple_set_use_ops(gimple g, struct use_optype_d *use)#

Set USE to be the set of USE operands for statement G.

struct voptype_d *gimple_vuse_ops(gimple g)#

Return the set of VUSE operands for statement G.

void gimple_set_vuse_ops(gimple g, struct voptype_d *ops)#

Set OPS to be the set of VUSE operands for statement G.

struct voptype_d *gimple_vdef_ops(gimple g)#

Return the set of VDEF operands for statement G.

void gimple_set_vdef_ops(gimple g, struct voptype_d *ops)#

Set OPS to be the set of VDEF operands for statement G.

bitmap gimple_loaded_syms(gimple g)#

Return the set of symbols loaded by statement G. Each element of the set is the DECL_UID of the corresponding symbol.

bitmap gimple_stored_syms(gimple g)#

Return the set of symbols stored by statement G. Each element of the set is the DECL_UID of the corresponding symbol.

bool gimple_modified_p(gimple g)#

Return true if statement G has operands and the modified field has been set.

bool gimple_has_volatile_ops(gimple stmt)#

Return true if statement STMT contains volatile operands.

void gimple_set_has_volatile_ops(gimple stmt, bool volatilep)#

Return true if statement STMT contains volatile operands.

void update_stmt(gimple s)#

Mark statement S as modified, and update it.

void update_stmt_if_modified(gimple s)#

Update statement S if it has been marked modified.

gimple gimple_copy(gimple stmt)#

Return a deep copy of statement STMT.