<div dir="ltr"><div>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?</div><div><br></div><div>Other than this, the change looks good to me.</div>
<div><br></div><div>I assume you'll add code that recognizes the looser failure ordering and generates better code?</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Mar 10, 2014 at 11:52 AM, Tim Northover <span dir="ltr"><<a href="mailto:t.p.northover@gmail.com" target="_blank">t.p.northover@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">  Thanks for taking a look. I've implemented all of those suggestions, which looked completely sensible.<br>
<br>
  Cheers.<br>
<br>
  Tim.<br>
<br>
<a href="http://llvm-reviews.chandlerc.com/D3023" target="_blank">http://llvm-reviews.chandlerc.com/D3023</a><br>
<br>
CHANGE SINCE LAST DIFF<br>
  <a href="http://llvm-reviews.chandlerc.com/D3023?vs=7687&id=7709#toc" target="_blank">http://llvm-reviews.chandlerc.com/D3023?vs=7687&id=7709#toc</a><br>
<div class="HOEnZb"><div class="h5"><br>
Files:<br>
  docs/LangRef.rst<br>
  include/llvm/CodeGen/SelectionDAG.h<br>
  include/llvm/CodeGen/SelectionDAGNodes.h<br>
  include/llvm/IR/IRBuilder.h<br>
  include/llvm/IR/Instructions.h<br>
  lib/Analysis/AliasAnalysis.cpp<br>
  lib/AsmParser/LLParser.cpp<br>
  lib/AsmParser/LLParser.h<br>
  lib/Bitcode/Reader/BitcodeReader.cpp<br>
  lib/Bitcode/Writer/BitcodeWriter.cpp<br>
  lib/CodeGen/SelectionDAG/LegalizeDAG.cpp<br>
  lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp<br>
  lib/CodeGen/SelectionDAG/SelectionDAG.cpp<br>
  lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp<br>
  lib/IR/AsmWriter.cpp<br>
  lib/IR/AsmWriter.h<br>
  lib/IR/Instruction.cpp<br>
  lib/IR/Instructions.cpp<br>
  lib/IR/Verifier.cpp<br>
  lib/Target/ARM/ARMISelLowering.cpp<br>
  lib/Target/CppBackend/CPPBackend.cpp<br>
  lib/Target/X86/X86ISelLowering.cpp<br>
  lib/Transforms/IPO/MergeFunctions.cpp<br>
  lib/Transforms/Instrumentation/MemorySanitizer.cpp<br>
  lib/Transforms/Instrumentation/ThreadSanitizer.cpp<br>
  test/Assembler/atomic.ll<br>
  test/Bitcode/cmpxchg-upgrade.ll<br>
  test/Bitcode/cmpxchg-upgrade.ll.bc<br>
  test/Bitcode/memInstructions.3.2.ll<br>
  test/CodeGen/AArch64/atomic-ops.ll<br>
  test/CodeGen/ARM/atomic-64bit.ll<br>
  test/CodeGen/ARM/atomic-cmp.ll<br>
  test/CodeGen/ARM/atomic-ops-v8.ll<br>
  test/CodeGen/Mips/atomic.ll<br>
  test/CodeGen/Mips/atomicops.ll<br>
  test/CodeGen/PowerPC/Atomics-32.ll<br>
  test/CodeGen/PowerPC/Atomics-64.ll<br>
  test/CodeGen/PowerPC/atomic-1.ll<br>
  test/CodeGen/PowerPC/atomic-2.ll<br>
  test/CodeGen/SPARC/atomics.ll<br>
  test/CodeGen/SystemZ/cmpxchg-01.ll<br>
  test/CodeGen/SystemZ/cmpxchg-02.ll<br>
  test/CodeGen/SystemZ/cmpxchg-03.ll<br>
  test/CodeGen/SystemZ/cmpxchg-04.ll<br>
  test/CodeGen/X86/2010-10-08-cmpxchg8b.ll<br>
  test/CodeGen/X86/Atomics-64.ll<br>
  test/CodeGen/X86/atomic16.ll<br>
  test/CodeGen/X86/atomic32.ll<br>
  test/CodeGen/X86/atomic64.ll<br>
  test/CodeGen/X86/atomic6432.ll<br>
  test/CodeGen/X86/atomic8.ll<br>
  test/CodeGen/X86/atomic_op.ll<br>
  test/CodeGen/X86/cmpxchg16b.ll<br>
  test/CodeGen/X86/coalescer-remat.ll<br>
  test/CodeGen/X86/nocx16.ll<br>
  test/Instrumentation/AddressSanitizer/test64.ll<br>
  test/Instrumentation/MemorySanitizer/atomics.ll<br>
  test/Instrumentation/ThreadSanitizer/atomic.ll<br>
  test/Transforms/LowerAtomic/atomic-swap.ll<br>
  test/Transforms/SimplifyCFG/trapping-load-unreachable.ll<br>
</div></div></blockquote></div><br></div>