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为一个有类型转换的赋值。