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: [lno] [RFC] if-conversion and auto vectorizer



On Mar 4, 2004, at 1:02 PM, Richard Henderson wrote:


On Thu, Mar 04, 2004 at 11:58:29AM -0800, Devang Patel wrote:
Therefore, we were planning to express conditional operations using
only a single new tree-code: SELECT.
i.e, the above code would be transformed into:
EXAMPLE3:
      c = compare (x > 0)
      a1 = y
      a2 = z
      a = select a1, a2, c

If we are going to allow such a thing at all, we'll use the exist tree code COND_EXPR. Jason, do you have any thoughts on adding COND_EXPR back to GIMPLE as a conditional move?

Only concerns I have about reusing COND_EXPR is that it may confuse GIMPLE verifiers. And it may confuse CFG manipulators also because what we want is to remove branches, which means this conditional operation should not cause new additional basic blocks.

  a = select a1, a2, c
  b = select b1, b2, c1
  c = select a1, b1, c2

We want to put all three statements in one basic block.

--
Devang


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