>>>>> 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