[PATCH] Remove ix86_legitimate_combined_insn

H.J. Lu hjl.tools@gmail.com
Tue Apr 19 15:18:00 GMT 2016


On Tue, Apr 19, 2016 at 8:08 AM, Uros Bizjak <ubizjak@gmail.com> wrote:
> On Tue, Apr 19, 2016 at 4:49 PM, H.J. Lu <hongjiu.lu@intel.com> wrote:
>>
>> From INSTRUCTION EXCEPTION SPECIFICATION section in Intel software
>> developer manual volume 2, only legacy SSE instructions with memory
>> operand not 16-byte aligned get General Protection fault.  There is
>> no need to check 1, 2, 4, 8 byte alignments.  Since x86 backend has
>> accurate constraints and predicates for 16-byte alignment, we can
>> remove ix86_legitimate_combined_insn.
>>
>> Tested on x86-64.  OK for trunk?
>
> No. This function also handles cases where invalid hard register gets
> propagated into the insn during the combine pass, leading to spill
> failure later.
>

ix86_legitimate_combined_insn was added to work around the
reload issue:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46829
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46843

LRA doesn't have those limitation.  Removing
ix86_legitimate_combined_insn causes no regressions.

-- 
H.J.



More information about the Gcc-patches mailing list