12.6 操作GIMPLE语句
这章介绍了所有可用于处理每个GIMPLE指令的函数。
12.6.1 Common accessors
12.6.2 通用访问方法
下列为对gimple语句的通用访问。
— GIMPLE function: enum
gimple_code gimple_code (
gimple g)
返回语句G的代码。
— GIMPLE function: basic_block
gimple_bb (
gimple g)
返回语句G所属的基本块。
— GIMPLE function: tree
gimple_block (
gimple g)
返回包含语句G的词法作用域。
— GIMPLE function: tree
gimple_expr_type (
gimple stmt)
返回STMT所计算的主表达式。如果STMT不做任何计算,则返回void_type_node。这将只为GIMPLE_ASSIGN, GIMPLE_COND 和 GIMPLE_CALL返回一些有意义的东西。对于所有其它元组代码,其将返回void_type_node。
— GIMPLE function: enum
tree_code gimple_expr_code (
gimple stmt)
返回STMT所计算的表达式的tree代码。这将只为GIMPLE_CALL, GIMPLE_ASSIGN和GIMPLE_COND返回一些有意义的东西。如果STMT为GIMPLE_CALL,其将返回CALL_EXPR。对于GIMPLE_COND,其返回比较断言的代码。对于GIMPLE_ASSIGN,其返回赋值语句的右手边所执行的操作代码。
— GIMPLE function: void
gimple_set_block (
gimple g, tree block)
将G的词法作用域块设置为BLOCK。
— GIMPLE function: location_t
gimple_locus (
gimple g)
返回语句G的locus信息。
— GIMPLE function: void
gimple_set_locus (
gimple g, location_t locus)
为语句G设置locus信息。
— GIMPLE function: bool
gimple_locus_empty_p (
gimple g)
返回真,如果G不具有locus信息。
— GIMPLE function: bool
gimple_no_warning_p (
gimple stmt)
返回真,如果对于语句STMT不会产生警告。
— GIMPLE function: void
gimple_set_visited (
gimple stmt, bool visited_p)
在语句STMT上将访问状态设置成VISITED_P。
— GIMPLE function: bool
gimple_visited_p (
gimple stmt)
返回语句STMT上的访问状态。
— GIMPLE function: void
gimple_set_plf (
gimple stmt, enum plf_mask plf, bool val_p)
将语句STMT上的编译过程局部标记PLF设置为VAL_P。
— GIMPLE function: unsigned
int gimple_plf (
gimple stmt, enum plf_mask plf)
返回语句STMT上的编译过程局部标记PLF。
— GIMPLE function: bool
gimple_has_ops (
gimple g)
返回真,如果语句G具有寄存器或内存操作数。
— GIMPLE function: bool
gimple_has_mem_ops (
gimple g)
返回真,如果语句G具有内存操作数。
— GIMPLE function: unsigned
gimple_num_ops (
gimple g)
返回语句G的操作数个数。
— GIMPLE function: tree
*gimple_ops (
gimple g)
返回语句G的操作数数组。
— GIMPLE function: tree
gimple_op (
gimple g, unsigned i)
返回语句G的操作数I。
— GIMPLE function: tree
*gimple_op_ptr (
gimple g, unsigned i)
返回语句G的操作数I的指针。
— GIMPLE function: void
gimple_set_op (
gimple g, unsigned i, tree op)
将语句G的操作数I设置为OP。
— GIMPLE function: bitmap
gimple_addresses_taken (
gimple stmt)
返回STMT使用过其地址的符号集合。
— GIMPLE function: struct
def_optype_d *gimple_def_ops (
gimple g)
返回语句G的DEF操作数集合。
— GIMPLE function: void
gimple_set_def_ops (
gimple g, struct def_optype_d *def)
将语句G的DEF操作数集合设置为DEF。
— GIMPLE function: struct
use_optype_d *gimple_use_ops (
gimple g)
返回语句G的USE操作数集合。
— GIMPLE function: void
gimple_set_use_ops (
gimple g, struct use_optype_d *use)
将语句G的USE操作数集合设置为USE。
— GIMPLE function: struct
voptype_d *gimple_vuse_ops (
gimple g)
返回语句G的VUSE操作数集合。
— GIMPLE function: void
gimple_set_vuse_ops (
gimple g, struct voptype_d *ops)
将语句G的VUSE操作数集合设置为OPS。
— GIMPLE function: struct
voptype_d *gimple_vdef_ops (
gimple g)
返回语句G的VDEF操作数集合。
— GIMPLE function: void
gimple_set_vdef_ops (
gimple g, struct voptype_d *ops)
将语句G的VDEF操作数集合设置为OPS。
— GIMPLE function: bitmap
gimple_loaded_syms (
gimple g)
返回语句G所加载的符号集合。集合中的每个元素为对应符号的DECL_UID。
— GIMPLE function: bitmap
gimple_stored_syms (
gimple g)
返回语句G所存储的符号集合。集合中的每个元素为对应符号的DECL_UID。
— GIMPLE function: bool
gimple_modified_p (
gimple g)
返回真,如果语句G具有操作数并且被修改域已经被设置。
— GIMPLE function: bool
gimple_has_volatile_ops (
gimple stmt)
返回真,如果语句STMT包含volatile操作数。
— GIMPLE function: void
gimple_set_has_volatile_ops (
gimple stmt, bool volatilep)
返回真,如果语句STMT包含volatile操作数。
— GIMPLE function: void
update_stmt (
gimple s)
将语句S标记为已经被修改,并对其进行更新。
— GIMPLE function: void
update_stmt_if_modified (
gimple s)
更新语句S,如果其已经被标记为被修改。
— GIMPLE function: gimple
gimple_copy (
gimple stmt)
返回语句STMT的一个深度复制。