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)
commitda22b30be5376ed9ca2fbc3024b4cc8365843ac4
treeb71e5612e28786ab25d2e3a6f7580d9764e16adc
parentb7129f21488682d3f61d84c19d169c92ff1d8c59
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)

llvm-svn: 176538
14 files changed:
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/test/CodeGen/X86/atomic-dagsched.ll
llvm/test/CodeGen/X86/atomic-load-store-wide.ll
llvm/test/CodeGen/X86/atomic-load-store.ll
llvm/test/CodeGen/X86/atomic-minmax-i6432.ll
llvm/test/CodeGen/X86/atomic-or.ll
llvm/test/CodeGen/X86/atomic-pointer.ll
llvm/test/CodeGen/X86/atomic16.ll
llvm/test/CodeGen/X86/atomic32.ll
llvm/test/CodeGen/X86/atomic64.ll
llvm/test/CodeGen/X86/atomic6432.ll
llvm/test/CodeGen/X86/atomic8.ll
llvm/test/CodeGen/X86/atomic_add.ll
llvm/test/CodeGen/X86/atomic_op.ll