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