This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Why can't CSE recognize const_int's in HIGH LO_SUM pair?
- To: Richard Henderson <rth at redhat dot com>
- Subject: Re: Why can't CSE recognize const_int's in HIGH LO_SUM pair?
- From: Daniel Berlin <dan at cgsoftware dot com>
- Date: Mon, 10 Sep 2001 13:16:57 -0400 (EDT)
- cc: <law at redhat dot com>, John David Anglin <dave at hiauly1 dot hia dot nrc dot ca>, Bernd Schmidt <bernds at redhat dot com>, <gcc at gcc dot gnu dot org>
On Mon, 10 Sep 2001, Richard Henderson wrote:
> On Mon, Sep 10, 2001 at 10:23:01AM -0600, law@redhat.com wrote:
> > Or, we could just emit
> >
> > (set (reg) (const_int XXXXXXXX))
> >
> > And keep it in that form until a later point in the compilation process.
>
> The thing I like about exposing the split early is that
> gcse gets to move these expressions around. If you expose
> the split later, nothing is going to move the parts around
> as aggressively.
It's only going to move them around if they were redundant anyway, and in
all likelyhood, they'll still be redundant in the form (set (reg)
(const_int)). However, splitting them can also introduce more regions
that prevent code motion, since there can be more instructions we can't
move above.
We'd be better off integrating the ability to move these parts/eliminate
pieces, around into the scheduler (since it has all the dependencies
needed), than we would trying to figure out where it's profitable to do
the various techniques to allow us to do code motion where we couldn't
before (since it requires control flow restructuring, etc).
>
>
> r~
>