Why can't CSE recognize const_int's in HIGH LO_SUM pair?
Richard Henderson
rth@redhat.com
Sat Sep 8 11:40:00 GMT 2001
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.
r~
More information about the Gcc
mailing list