[PATCH] Mark vastart_save_xmm_regs as changing EFLAGS

Duncan P. N. Exon Smith dexonsmith at apple.com
Mon Dec 16 22:17:27 PST 2013


On 2013 Dec 16, at 22:12, Andrew Trick <atrick at apple.com> wrote:

> On Dec 15, 2013, at 12:25 AM, Duncan P. N. Exon Smith <dexonsmith at apple.com> wrote:
> 
>> This patch marks vastart_save_xmm_regs as changing EFLAGS.
>> 
>> The vastart_save_xmm_regs pseudo-instruction expands to a test and a
>> branch, so it modifies EFLAGS.  Mark it so, or else the scheduler might
>> place it in the middle of another test+branch.
>> 
>> This fixes a bug exposed by r192750, which turned on the MI Scheduler
>> for X86.
> 
> LGTM.
> 
> For the record, the SD scheduler was the one reordering the TEST/VASTART. The change that caused it was moving to source order scheduling. As a result the TEST ended up in a totally different MI block.
> 
> Incidentally, MI Scheduler still fails to schedule the test+je together because test appears to have unmodelled side effects (unrelated issue).
> 
> -Andy

Thanks for the review!  In r197469.



More information about the llvm-commits mailing list