This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: PATCH COMMITTED: Use conditional moves in groups of assignments
- From: Ian Lance Taylor <ian at airs dot com>
- To: Joern RENNECKE <joern dot rennecke at st dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: 16 Jan 2006 19:58:07 -0800
- Subject: Re: PATCH COMMITTED: Use conditional moves in groups of assignments
- References: <43CBFE48.60306@st.com>
Joern RENNECKE <joern.rennecke@st.com> writes:
> > RTL if-conversion currently only operates on single instructions.
> > That is, the then block and the optional else block must only contain
> > a single instruction. Extending them to support multiple instructions
> > is fairly complex in the general case.
>
> Not with all the infrastructure we already have in struct-equiv.c .
> Generally constant inputs should be fairly straightforward, I only haven't
> added that because there seemed no need to do that (and I rather have a
> test case before I start coding).
>
> Please look at the ifcvt.c patches for PR 20070.
Thanks. I just want to note that, as far as I can see, while this
work is obviously useful and important, it is not the same as the case
I was addressing.
My patch handles code which is different in the then/else branches, as
long as everything is an assignment to a pseudo-register. In
particular, the then/else branches can set different registers. I
initially only handled the case of constant or register inputs, but
it's relatively straightforward to extend to general operands, which
need not be the same in the then/else branches, with more careful
checking of which code affects which other code.
Ian