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
的一个深度复制。