This is the mail archive of the
mailing list for the GCC project.
Re: Why can't CSE recognize const_int's in HIGH LO_SUM pair?
On Fri, Sep 07, 2001 at 09:30:05PM -0400, John David Anglin wrote:
> I think the philosophy was to make the rtl match as closely as
> possible the machine code.
Um, no, that's plainly false. The machine will load some number
that has high bits set, and add some number that has low bits set.
If you ask Alpha to load 0x10001000, you'll get
(set (reg) (const_int 0x10000000))
(set (reg) (plus (reg) (const_int 0x1000))
which is exactly what the machine code is doing. No need for
high/lo_sum, and by not using them, we expose the exact constant
fragments to cse/combine/etc.