>>>>> Erich Plondke writes:

Erich> Yes, but peephole2 lives after register allocation, so how does the 
target
Erich> tell the register allocator that adjacent values loaded from memory 
should
Erich> also attempt to be placed adjacent in the register file?

Erich> It looks like if they /happen/ to be allocated together in the
Erich> register file, the
Erich> peephole pattern will catch them, but I don't see anything to help them 
be
Erich> allocated in such a way.

        The GCC register allocator allocates objects that span multiple
registers in adjacent registers.  For instance, a 64-bit doubleword
integer (long long int) will be allocated in two adjacent hardware
registers when GCC is targeted at a processor with 32-bit registers.

David

Reply via email to