[PATCH] Add AtomicExpandPass::bracketInstWithFences, and use it whenever getInsertFencesForAtomic would trigger in SelectionDAGBuilder
JF Bastien
jfb at chromium.org
Mon Sep 22 09:03:02 PDT 2014
================
Comment at: include/llvm/Target/TargetLowering.h:963
@@ -962,2 +962,3 @@
/// RMW and CmpXchg set both IsStore and IsLoad to true.
/// Backends with !getInsertFencesForAtomic() should keep a no-op here.
+ virtual Instruction* emitLeadingFence(IRBuilder<> &Builder, AtomicOrdering Ord,
----------------
What should the return value be? Are there cases where a backend emits more than one instruction?
================
Comment at: lib/CodeGen/AtomicExpandPass.cpp:167
@@ -117,3 +166,3 @@
// The only 64-bit load guaranteed to be single-copy atomic by ARM is
// an ldrexd (A3.5.3).
Value *Val =
----------------
Should this still be here, since the code wants to handle more than just ARM?
http://reviews.llvm.org/D5179
More information about the llvm-commits
mailing list