diff options
author | James Y Knight <jyknight@google.com> | 2016-03-16 22:12:04 +0000 |
---|---|---|
committer | James Y Knight <jyknight@google.com> | 2016-03-16 22:12:04 +0000 |
commit | f44fc5219f9e16f51de8eaa50a93fc6e7afcacba (patch) | |
tree | 28e01cc65e659c5de43f6426133f57f26fd15222 /llvm/lib/Target/Sparc/SparcISelLowering.h | |
parent | b321050a9360ade08460b4b7eeeafeb95569b937 (diff) | |
download | bcm5719-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.h | 7 |
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; |