Fix PR15355
authorMichael Liao <michael.liao@intel.com>
Wed, 6 Mar 2013 00:17:04 +0000 (00:17 +0000)
committerMichael Liao <michael.liao@intel.com>
Wed, 6 Mar 2013 00:17:04 +0000 (00:17 +0000)
commitc537f79dcd9d91577b8e0a41c11f68b628d73af4
tree1703f4375e793e60d82d57c82002e10299a5493c
parent603e874c64c2328cf29395e328bf77c1851068d2
Fix PR15355

- Clear 'mayStore' flag when loading from the atomic variable before the
  spin loop
- Clear kill flag from one use to multiple use in registers forming the
  address to that atomic variable
- don't use a physical register as live-in register in BB (neither entry
  nor landing pad.) by copying it into virtual register

(patch by Cameron Zwarich)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176538 91177308-0d34-0410-b5e6-96231b3b80d8
14 files changed:
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/atomic-dagsched.ll
test/CodeGen/X86/atomic-load-store-wide.ll
test/CodeGen/X86/atomic-load-store.ll
test/CodeGen/X86/atomic-minmax-i6432.ll
test/CodeGen/X86/atomic-or.ll
test/CodeGen/X86/atomic-pointer.ll
test/CodeGen/X86/atomic16.ll
test/CodeGen/X86/atomic32.ll
test/CodeGen/X86/atomic64.ll
test/CodeGen/X86/atomic6432.ll
test/CodeGen/X86/atomic8.ll
test/CodeGen/X86/atomic_add.ll
test/CodeGen/X86/atomic_op.ll