This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [lno] [RFC] if-conversion and auto vectorizer
- From: Devang Patel <dpatel at apple dot com>
- To: Richard Henderson <rth at redhat dot com>
- Cc: "gcc at gcc dot gnu dot org list" <gcc at gcc dot gnu dot org>, Dorit Naishlos <DORIT at il dot ibm dot com>, Jason Merrill <jason at redhat dot com>
- Date: Fri, 5 Mar 2004 11:05:50 -0800
- Subject: Re: [lno] [RFC] if-conversion and auto vectorizer
- References: <4E8BFBB8-6E16-11D8-9322-000393A91CAA@apple.com> <20040304210254.GB8416@redhat.com>
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