12.7.2 GIMPLE_ASSIGN
— GIMPLE function: gimple
gimple_build_assign (
tree lhs, tree rhs)
构建一条GIMPLE_ASSIGN
语句。左手边为lhs中传递的左值。右手边可以为一个一元或者二元tree表达式。表达式tree rhs将被平整,其操作数赋值给新语句中相应的操作数插槽中。该函数可用于,你已经有一个tree表达式,并想将其转成元组的时候。然而,不用为了调用该函数,而特意构建表达式tree。如果操作数已经是在独立的tree中,则最好使用gimple_build_assign_with_ops
。
— GIMPLE function: gimple
gimplify_assign (
tree dst, tree src, gimple_seq *seq_p)
构建一个新的GIMPLE_ASSIGN
元组,并将其追加到*SEQ_P
的结尾。
DST
/SRC
分别为目的和源。你可以在DST
或SRC
中传递ungimplified tree,它们会在需要的时候被转换成gimple操作数。
该函数返回新创建的GIMPLE_ASSIGN
元组。
— GIMPLE function: gimple
gimple_build_assign_with_ops (
enum tree_code subcode, tree lhs, tree op1, tree op2)
该函数类似于gimple_build_assign
,不过是当赋值的右手边操作数已经被拆分成不同操作数的时候,用来构建一个GIMPLE_ASSIGN
语句。
左手边为在lhs中传递的左值。subcode为赋值的右手边的tree_code
。op1和op2为操作数。如果op2为null,则subcode必须为一个一元表达式的
— GIMPLE function: enum
tree_code gimple_assign_rhs_code (
gimple g)
返回赋值语句G
的RHS
上的表达式代码。
— GIMPLE function: enum
gimple_rhs_class gimple_assign_rhs_class (
gimple g)
返回赋值语句G
右手边的表达式代码的gimple rhs类别。这个永远不会返回GIMPLE_INVALID_RHS
。
— GIMPLE function: tree
gimple_assign_lhs (
gimple g)
返回赋值语句G
的LHS
。
— GIMPLE function: tree
*gimple_assign_lhs_ptr (
gimple g)
返回指向赋值语句G
的LHS
的指针。
— GIMPLE function: tree
gimple_assign_rhs1 (
gimple g)
返回指向赋值语句G
的RHS
的第一个操作数。
— GIMPLE function: tree
*gimple_assign_rhs1_ptr (
gimple g)
返回指向赋值语句G
的RHS
的第一个操作数的地址。
— GIMPLE function: tree
gimple_assign_rhs2 (
gimple g)
返回指向赋值语句G
的RHS
的第二个操作数。
— GIMPLE function: tree
*gimple_assign_rhs2_ptr (
gimple g)
返回指向赋值语句G
的RHS
的第二个操作数的地址。
— GIMPLE function: tree
gimple_assign_rhs3 (
gimple g)
— GIMPLE function: tree
*gimple_assign_rhs3_ptr (
gimple g)
— GIMPLE function: void
gimple_assign_set_lhs (
gimple g, tree lhs)
将LHS
设置为赋值语句G
的LHS
操作数。
— GIMPLE function: void
gimple_assign_set_rhs1 (
gimple g, tree rhs)
将RHS
设置为赋值语句G
的RHS
的第一个操作数。
— GIMPLE function: void
gimple_assign_set_rhs2 (
gimple g, tree rhs)
将RHS
设置为赋值语句G
的RHS
的第二个操作数。
— GIMPLE function: void
gimple_assign_set_rhs3 (
gimple g, tree rhs)
— GIMPLE function: bool
gimple_assign_cast_p (
gimple s)
返回真,如果S
为一个有类型转换的赋值。