Misc optimizer+codegen work for 'cmpxchg' and 'atomicrmw'. They appear to be
authorEli Friedman <eli.friedman@gmail.com>
Fri, 29 Jul 2011 03:05:32 +0000 (03:05 +0000)
committerEli Friedman <eli.friedman@gmail.com>
Fri, 29 Jul 2011 03:05:32 +0000 (03:05 +0000)
commit55ba816883842e793cdeb32fcb805c4e011b527f
treeb5e5430210f42121d6ff2696e5495972271bbdf5
parente0058b4b0c4d162a3b3ff2ad8a87c979928ba016
Misc optimizer+codegen work for 'cmpxchg' and 'atomicrmw'.  They appear to be
working on x86 (at least for trivial testcases); other architectures will
need more work so that they actually emit the appropriate instructions for
orderings stricter than 'monotonic'. (As far as I can tell, the ARM, PPC,
Mips, and Alpha backends need such changes.)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136457 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Analysis/AliasAnalysis.h
include/llvm/CodeGen/SelectionDAG.h
include/llvm/CodeGen/SelectionDAGNodes.h
include/llvm/Support/IRBuilder.h
lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
lib/CodeGen/SelectionDAG/SelectionDAG.cpp
lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
lib/Target/X86/X86ISelLowering.cpp
lib/Transforms/IPO/MergeFunctions.cpp
lib/Transforms/Scalar/LowerAtomic.cpp
lib/VMCore/Instruction.cpp