- Two-address pass should not assume unfolding is always successful.
authorEvan Cheng <evan.cheng@apple.com>
Fri, 2 Jul 2010 20:36:18 +0000 (20:36 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Fri, 2 Jul 2010 20:36:18 +0000 (20:36 +0000)
commit98ec91ea80e042907aac8d3cbd9614d29f6cba45
tree8c339eb3454cb4b52ad3eb87c73a4c76d0df1bb4
parent541481f34c7ffd49c0b55b56eab3753fda17c3e5
- Two-address pass should not assume unfolding is always successful.
- X86 unfolding should check if the instructions being unfolded has memoperands.
  If there is no memoperands, then it must assume conservative alignment. If this
  would introduce an expensive sse unaligned load / store, then unfoldMemoryOperand
  etc. should not unfold the instruction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107509 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/TwoAddressInstructionPass.cpp
lib/Target/X86/X86InstrInfo.cpp
test/CodeGen/X86/2010-07-02-UnfoldBug.ll [new file with mode: 0644]