[PATCH] IR: add failure ordering to the cmpxchg instruction

JF Bastien jfb at chromium.org
Mon Mar 10 12:55:58 PDT 2014


I don't know about the .bc file version: won't old files continue to work?
Your cmpxchg-upgrade.ll and cmpxchg-upgrade.ll.bc tests lead me to believe
that they will?

Other than this, the change looks good to me.

I assume you'll add code that recognizes the looser failure ordering and
generates better code?


On Mon, Mar 10, 2014 at 11:52 AM, Tim Northover <t.p.northover at gmail.com>wrote:

>   Thanks for taking a look. I've implemented all of those suggestions,
> which looked completely sensible.
>
>   Cheers.
>
>   Tim.
>
> http://llvm-reviews.chandlerc.com/D3023
>
> CHANGE SINCE LAST DIFF
>   http://llvm-reviews.chandlerc.com/D3023?vs=7687&id=7709#toc
>
> Files:
>   docs/LangRef.rst
>   include/llvm/CodeGen/SelectionDAG.h
>   include/llvm/CodeGen/SelectionDAGNodes.h
>   include/llvm/IR/IRBuilder.h
>   include/llvm/IR/Instructions.h
>   lib/Analysis/AliasAnalysis.cpp
>   lib/AsmParser/LLParser.cpp
>   lib/AsmParser/LLParser.h
>   lib/Bitcode/Reader/BitcodeReader.cpp
>   lib/Bitcode/Writer/BitcodeWriter.cpp
>   lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
>   lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
>   lib/CodeGen/SelectionDAG/SelectionDAG.cpp
>   lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
>   lib/IR/AsmWriter.cpp
>   lib/IR/AsmWriter.h
>   lib/IR/Instruction.cpp
>   lib/IR/Instructions.cpp
>   lib/IR/Verifier.cpp
>   lib/Target/ARM/ARMISelLowering.cpp
>   lib/Target/CppBackend/CPPBackend.cpp
>   lib/Target/X86/X86ISelLowering.cpp
>   lib/Transforms/IPO/MergeFunctions.cpp
>   lib/Transforms/Instrumentation/MemorySanitizer.cpp
>   lib/Transforms/Instrumentation/ThreadSanitizer.cpp
>   test/Assembler/atomic.ll
>   test/Bitcode/cmpxchg-upgrade.ll
>   test/Bitcode/cmpxchg-upgrade.ll.bc
>   test/Bitcode/memInstructions.3.2.ll
>   test/CodeGen/AArch64/atomic-ops.ll
>   test/CodeGen/ARM/atomic-64bit.ll
>   test/CodeGen/ARM/atomic-cmp.ll
>   test/CodeGen/ARM/atomic-ops-v8.ll
>   test/CodeGen/Mips/atomic.ll
>   test/CodeGen/Mips/atomicops.ll
>   test/CodeGen/PowerPC/Atomics-32.ll
>   test/CodeGen/PowerPC/Atomics-64.ll
>   test/CodeGen/PowerPC/atomic-1.ll
>   test/CodeGen/PowerPC/atomic-2.ll
>   test/CodeGen/SPARC/atomics.ll
>   test/CodeGen/SystemZ/cmpxchg-01.ll
>   test/CodeGen/SystemZ/cmpxchg-02.ll
>   test/CodeGen/SystemZ/cmpxchg-03.ll
>   test/CodeGen/SystemZ/cmpxchg-04.ll
>   test/CodeGen/X86/2010-10-08-cmpxchg8b.ll
>   test/CodeGen/X86/Atomics-64.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_op.ll
>   test/CodeGen/X86/cmpxchg16b.ll
>   test/CodeGen/X86/coalescer-remat.ll
>   test/CodeGen/X86/nocx16.ll
>   test/Instrumentation/AddressSanitizer/test64.ll
>   test/Instrumentation/MemorySanitizer/atomics.ll
>   test/Instrumentation/ThreadSanitizer/atomic.ll
>   test/Transforms/LowerAtomic/atomic-swap.ll
>   test/Transforms/SimplifyCFG/trapping-load-unreachable.ll
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140310/10799516/attachment.html>


More information about the llvm-commits mailing list