[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.
> 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).
Thanks for the review! In r197469.
More information about the llvm-commits