[i386] Scalar DImode instructions on XMM registers
Jeff Law
law@redhat.com
Thu Jun 4 04:24:00 GMT 2015
On 05/27/2015 07:20 AM, Ilya Enkovich wrote:
>
> I looked into assign_stack_local_1 call for this spill. LRA correctly
> requests 16 bytes size with 16 bytes alignment. But
> assign_stack_local_1 look reduces alignment to 8 because estimated
> stack alignment before RA is 8 and requested mode's (DI) alignment
> fits it. Probably LRA should pass biggest_mode of the reg when
> requesting a stack slot?
It's hard to say for sure. Within the lra_reg structure, biggest_mode
refers to the largest mode in which a pseudo is referenced. So for a
pseudo it might make sense. Presumably the biggest_mode for the pseudo
in question is larger than DImode, right?
> I handled it by increasing stack_alignment_estimated when transform
> some instructions to vector mode.
I haven't looked deeply, but if your pass runs after
stack_alignment_estimated is initially computed, then this seems like a
desirable way to fix the problem.
jeff
More information about the Gcc
mailing list