]> granicus.if.org Git - llvm/commit
Merging r267634:
authorHans Wennborg <hans@hanshq.net>
Fri, 29 Apr 2016 23:15:39 +0000 (23:15 +0000)
committerHans Wennborg <hans@hanshq.net>
Fri, 29 Apr 2016 23:15:39 +0000 (23:15 +0000)
commit06cf4b238fa45638ed37ec7725d38930fea37ff9
tree8b9c749305ab611dd11c74285cc9f54b5ad8b4c0
parent8b47c17a53d683f313eaaa93c4a53de26d8fcba5
Merging r267634:
------------------------------------------------------------------------
r267634 | qcolombet | 2016-04-26 16:44:14 -0700 (Tue, 26 Apr 2016) | 11 lines

[X86] Make sure it is safe to clobber EFLAGS, if need be, when choosing
the prologue.

Do not use basic blocks that have EFLAGS live-in as prologue if we need
to realign the stack. Realigning the stack uses AND instruction and this
clobbers EFLAGS.

An other alternative would have been to save and restore EFLAGS around
the stack realignment code, but this is likely inefficient.

Fixes PR27531.
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_38@268132 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86FrameLowering.cpp
lib/Target/X86/X86FrameLowering.h
test/CodeGen/X86/i686-win-shrink-wrapping.ll [new file with mode: 0644]