Next: , Previous: Operands, Up: GIMPLE


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_CONDGIMPLE_CALL返回一些有意义的东西。对于所有其它元组代码,其将返回void_type_node

— GIMPLE function: enum tree_code gimple_expr_code (gimple stmt)

返回STMT所计算的表达式的tree代码。这将只为GIMPLE_CALL, GIMPLE_ASSIGNGIMPLE_COND返回一些有意义的东西。如果STMTGIMPLE_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)

返回语句GDEF操作数集合。

— GIMPLE function: void gimple_set_def_ops (gimple g, struct def_optype_d *def)

将语句GDEF操作数集合设置为DEF

— GIMPLE function: struct use_optype_d *gimple_use_ops (gimple g)

返回语句GUSE操作数集合。

— GIMPLE function: void gimple_set_use_ops (gimple g, struct use_optype_d *use)

将语句GUSE操作数集合设置为USE

— GIMPLE function: struct voptype_d *gimple_vuse_ops (gimple g)

返回语句GVUSE操作数集合。

— GIMPLE function: void gimple_set_vuse_ops (gimple g, struct voptype_d *ops)

将语句GVUSE操作数集合设置为OPS

— GIMPLE function: struct voptype_d *gimple_vdef_ops (gimple g)

返回语句GVDEF操作数集合。

— GIMPLE function: void gimple_set_vdef_ops (gimple g, struct voptype_d *ops)

将语句GVDEF操作数集合设置为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的一个深度复制。