This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: paired register loads and stores
>>>>> 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