summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Sparc/SparcISelLowering.h
diff options
context:
space:
mode:
authorJames Y Knight <jyknight@google.com>2016-03-16 22:12:04 +0000
committerJames Y Knight <jyknight@google.com>2016-03-16 22:12:04 +0000
commitf44fc5219f9e16f51de8eaa50a93fc6e7afcacba (patch)
tree28e01cc65e659c5de43f6426133f57f26fd15222 /llvm/lib/Target/Sparc/SparcISelLowering.h
parentb321050a9360ade08460b4b7eeeafeb95569b937 (diff)
downloadbcm5719-llvm-f44fc5219f9e16f51de8eaa50a93fc6e7afcacba.tar.gz
bcm5719-llvm-f44fc5219f9e16f51de8eaa50a93fc6e7afcacba.zip
Tweak some atomics functions in preparation for larger changes; NFC.
- Rename getATOMIC to getSYNC, as llvm will soon be able to emit both '__sync' libcalls and '__atomic' libcalls, and this function is for the '__sync' ones. - getInsertFencesForAtomic() has been replaced with shouldInsertFencesForAtomic(Instruction), so that the decision can be made per-instruction. This functionality will be used soon. - emitLeadingFence/emitTrailingFence are no longer called if shouldInsertFencesForAtomic returns false, and thus don't need to check the condition themselves. llvm-svn: 263665
Diffstat (limited to 'llvm/lib/Target/Sparc/SparcISelLowering.h')
-rw-r--r--llvm/lib/Target/Sparc/SparcISelLowering.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/llvm/lib/Target/Sparc/SparcISelLowering.h b/llvm/lib/Target/Sparc/SparcISelLowering.h
index 4e46709cfc0..c470fa8d661 100644
--- a/llvm/lib/Target/Sparc/SparcISelLowering.h
+++ b/llvm/lib/Target/Sparc/SparcISelLowering.h
@@ -180,6 +180,13 @@ namespace llvm {
return VT != MVT::f128;
}
+ bool shouldInsertFencesForAtomic(const Instruction *I) const override {
+ // FIXME: We insert fences for each atomics and generate
+ // sub-optimal code for PSO/TSO. (Approximately nobody uses any
+ // mode but TSO, which makes this even more silly)
+ return true;
+ }
+
void ReplaceNodeResults(SDNode *N,
SmallVectorImpl<SDValue>& Results,
SelectionDAG &DAG) const override;
OpenPOWER on IntegriCloud