This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [tree-ssa] reaching def. question



On Mar 16, 2004, at 2:17 PM, Diego Novillo wrote:


Hmm, you could always if-convert S3 to MODIFY_EXPR <a, COND_EXPR <c, b,
a>> and then mark 'a' for rewriting.  After if-conversion, the renamer
will correctly pick up a_1 or a_0 (ie, a's default definition).

OK. We're one the same page. I tried following and it did not work.


I have:

  # BLOCK 1
  # PRED: 15 [100.0%]  (fallthru) 13 [100.0%]  (fallthru)
  # A_24 = PHI <A_18(15), A_10(13)>;
  # i_22 = PHI <i_20(15), 0(13)>;
<L0>:;
  #   VUSE <A_24>;
  T.0_26 = A[i_22];

I convert it into:

  # BLOCK 1
  # PRED: 15 [100.0%]  (fallthru) 13 [100.0%]  (fallthru)
  # A_24 = PHI <A_18(15), A_10(13)>;
  # i_22 = PHI <i_20(15), 0(13)>;
<L0>:;
  #   VUSE <A_24>;
  T.0_26 = if (1)
    {
      A[i_22];
    }
  else
    {
      T.0_26
    };

Now, I mark this modify expr's operand 0's SSA_NAME_VAR for rewriting.

After ssa rewriting I get,


# BLOCK 1 # PRED: 15 [100.0%] (fallthru) 13 [100.0%] (fallthru) # A_11 = PHI <A_10(13), A_3(15)>; # i_22 = PHI <i_20(15), 0(13)>; <L0>:; T.0_19 = if (1) { A[i_22]; } else { A_26 };


Maybe I am not marking it properly for rewrite? -- Devang


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]