Home
last modified time | relevance | path

Searched refs:AtomicOrdering (Results 1 – 25 of 111) sorted by relevance

12345

/freebsd/contrib/llvm-project/llvm/include/llvm/Support/
H A DAtomicOrdering.h56 enum class AtomicOrdering : unsigned { enum
68 bool operator<(AtomicOrdering, AtomicOrdering) = delete;
69 bool operator>(AtomicOrdering, AtomicOrdering) = delete;
70 bool operator<=(AtomicOrdering, AtomicOrdering) = delete;
71 bool operator>=(AtomicOrdering, AtomicOrdering) = delete;
76 return static_cast<Int>(AtomicOrdering::NotAtomic) <= I && in isValidAtomicOrdering()
77 I <= static_cast<Int>(AtomicOrdering::SequentiallyConsistent) && in isValidAtomicOrdering()
82 inline const char *toIRString(AtomicOrdering ao) { in toIRString()
91 inline bool isStrongerThan(AtomicOrdering AO, AtomicOrdering Other) { in isStrongerThan()
106 inline bool isAtLeastOrStrongerThan(AtomicOrdering AO, AtomicOrdering Other) { in isAtLeastOrStrongerThan()
[all …]
/freebsd/contrib/llvm-project/llvm/include/llvm/CodeGen/
H A DMachineMemOperand.h194 AtomicOrdering Ordering = AtomicOrdering::NotAtomic,
195 AtomicOrdering FailureOrdering = AtomicOrdering::NotAtomic);
200 AtomicOrdering Ordering = AtomicOrdering::NotAtomic,
201 AtomicOrdering FailureOrdering = AtomicOrdering::NotAtomic);
278 AtomicOrdering getSuccessOrdering() const { in getSuccessOrdering()
279 return static_cast<AtomicOrdering>(AtomicInfo.Ordering); in getSuccessOrdering()
284 AtomicOrdering getFailureOrdering() const { in getFailureOrdering()
285 return static_cast<AtomicOrdering>(AtomicInfo.FailureOrdering); in getFailureOrdering()
291 AtomicOrdering getMergedOrdering() const { in getMergedOrdering()
305 return getSuccessOrdering() != AtomicOrdering::NotAtomic; in isAtomic()
[all …]
H A DMachineFunction.h1033 AtomicOrdering Ordering = AtomicOrdering::NotAtomic,
1034 AtomicOrdering FailureOrdering = AtomicOrdering::NotAtomic);
1039 AtomicOrdering Ordering = AtomicOrdering::NotAtomic,
1040 AtomicOrdering FailureOrdering = AtomicOrdering::NotAtomic);
1045 AtomicOrdering Ordering = AtomicOrdering::NotAtomic,
1046 AtomicOrdering FailureOrdering = AtomicOrdering::NotAtomic) {
H A DRuntimeLibcallUtil.h72 Libcall getOutlineAtomicHelper(const Libcall (&LC)[5][4], AtomicOrdering Order,
77 Libcall getOUTLINE_ATOMIC(unsigned Opc, AtomicOrdering Order, MVT VT);
H A DAtomicExpandUtils.h26 AtomicOrdering, SyncScope::ID, Value *&, Value *&)>;
/freebsd/contrib/llvm-project/llvm/lib/Target/RISCV/
H A DRISCVExpandAtomicPseudoInsts.cpp153 static unsigned getLRForRMW32(AtomicOrdering Ordering, in getLRForRMW32()
157 llvm_unreachable("Unexpected AtomicOrdering"); in getLRForRMW32()
158 case AtomicOrdering::Monotonic: in getLRForRMW32()
160 case AtomicOrdering::Acquire: in getLRForRMW32()
164 case AtomicOrdering::Release: in getLRForRMW32()
166 case AtomicOrdering::AcquireRelease: in getLRForRMW32()
170 case AtomicOrdering::SequentiallyConsistent: in getSCForRMW32()
175 static unsigned getSCForRMW32(AtomicOrdering Ordering, in getSCForRMW32()
179 llvm_unreachable("Unexpected AtomicOrdering"); in getSCForRMW32()
180 case AtomicOrdering in getSCForRMW32()
[all...]
/freebsd/contrib/llvm-project/clang/lib/CodeGen/
H A DCGAtomic.cpp223 bool AsValue, llvm::AtomicOrdering AO,
236 llvm::AtomicOrdering Success =
237 llvm::AtomicOrdering::SequentiallyConsistent,
238 llvm::AtomicOrdering Failure =
239 llvm::AtomicOrdering::SequentiallyConsistent,
245 void EmitAtomicUpdate(llvm::AtomicOrdering AO,
250 void EmitAtomicUpdate(llvm::AtomicOrdering AO, RValue UpdateRVal,
264 llvm::AtomicOrdering AO, bool IsVolatile);
266 llvm::Value *EmitAtomicLoadOp(llvm::AtomicOrdering AO, bool IsVolatile,
271 llvm::AtomicOrdering Success =
[all …]
H A DCGStmtOpenMP.cpp5416 llvm::AtomicOrdering AO = S.getSingleClause<OMPFlushClause>() in EmitOMPFlushDirective()
5417 ? llvm::AtomicOrdering::NotAtomic in EmitOMPFlushDirective()
5418 : llvm::AtomicOrdering::AcquireRelease; in EmitOMPFlushDirective()
6054 static void emitSimpleAtomicStore(CodeGenFunction &CGF, llvm::AtomicOrdering AO, in emitSimpleAtomicStore()
6063 llvm::AtomicOrdering AO, LValue LVal, in emitSimpleAtomicLoad()
6090 static void emitOMPAtomicReadExpr(CodeGenFunction &CGF, llvm::AtomicOrdering AO, in emitOMPAtomicReadExpr()
6104 case llvm::AtomicOrdering::Acquire: in emitOMPAtomicReadExpr()
6105 case llvm::AtomicOrdering::AcquireRelease: in emitOMPAtomicReadExpr()
6106 case llvm::AtomicOrdering::SequentiallyConsistent: in emitOMPAtomicReadExpr()
6108 llvm::AtomicOrdering::Acquire); in emitOMPAtomicReadExpr()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/
H A DGlobalStatus.cpp33 static AtomicOrdering strongerOrdering(AtomicOrdering X, AtomicOrdering Y) { in strongerOrdering()
34 if ((X == AtomicOrdering::Acquire && Y == AtomicOrdering::Release) || in strongerOrdering()
35 (Y == AtomicOrdering::Acquire && X == AtomicOrdering::Release)) in strongerOrdering()
36 return AtomicOrdering::AcquireRelease; in strongerOrdering()
37 return (AtomicOrdering)std::max((unsigned)X, (unsigned)Y); in strongerOrdering()
H A DLowerMemIntrinsics.cpp93 Load->setAtomic(AtomicOrdering::Unordered); in createMemCpyLoopKnownSize()
94 Store->setAtomic(AtomicOrdering::Unordered); in createMemCpyLoopKnownSize()
149 Load->setAtomic(AtomicOrdering::Unordered); in createMemCpyLoopKnownSize()
150 Store->setAtomic(AtomicOrdering::Unordered); in createMemCpyLoopKnownSize()
248 Load->setAtomic(AtomicOrdering::Unordered); in createMemCpyLoopUnknownSize()
249 Store->setAtomic(AtomicOrdering::Unordered); in createMemCpyLoopUnknownSize()
324 Load->setAtomic(AtomicOrdering::Unordered); in createMemCpyLoopUnknownSize()
325 Store->setAtomic(AtomicOrdering::Unordered); in createMemCpyLoopUnknownSize()
/freebsd/contrib/llvm-project/llvm/lib/Target/AMDGPU/
H A DSIMemoryLegalizer.cpp95 AtomicOrdering Ordering = AtomicOrdering::NotAtomic;
96 AtomicOrdering FailureOrdering = AtomicOrdering::NotAtomic;
106 AtomicOrdering Ordering = AtomicOrdering::SequentiallyConsistent, in SIMemOpInfo()
111 AtomicOrdering FailureOrdering = AtomicOrdering::SequentiallyConsistent, in SIMemOpInfo()
120 if (Ordering == AtomicOrdering::NotAtomic) { in SIMemOpInfo()
124 FailureOrdering == AtomicOrdering::NotAtomic); in SIMemOpInfo()
166 AtomicOrdering getOrdering() const { in getOrdering()
172 AtomicOrdering getFailureOrdering() const { in getFailureOrdering()
213 return Ordering != AtomicOrdering::NotAtomic; in isAtomic()
817 AtomicOrdering Ordering = AtomicOrdering::NotAtomic; in constructFromMIWithMMO()
[all …]
H A DAMDGPULowerBufferFatPointers.cpp735 void insertPreMemOpFence(AtomicOrdering Order, SyncScope::ID SSID);
736 void insertPostMemOpFence(AtomicOrdering Order, SyncScope::ID SSID);
738 Align Alignment, AtomicOrdering Order,
1032 void SplitPtrStructs::insertPreMemOpFence(AtomicOrdering Order, in insertPreMemOpFence()
1035 case AtomicOrdering::Release: in insertPreMemOpFence()
1036 case AtomicOrdering::AcquireRelease: in insertPreMemOpFence()
1037 case AtomicOrdering::SequentiallyConsistent: in insertPreMemOpFence()
1038 IRB.CreateFence(AtomicOrdering::Release, SSID); in insertPreMemOpFence()
1045 void SplitPtrStructs::insertPostMemOpFence(AtomicOrdering Order, in insertPostMemOpFence()
1048 case AtomicOrdering::Acquire: in insertPostMemOpFence()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/
H A DAtomicExpandPass.cpp70 bool bracketInstWithFences(Instruction *I, AtomicOrdering Order);
83 Align AddrAlign, AtomicOrdering MemOpOrder,
87 AtomicOrdering MemOpOrder,
99 AtomicOrdering MemOpOrder, SyncScope::ID SSID,
110 Value *CASExpected, AtomicOrdering Ordering,
111 AtomicOrdering Ordering2,
282 auto FenceOrdering = AtomicOrdering::Monotonic; in run()
285 LI->setOrdering(AtomicOrdering::Monotonic); in run()
288 SI->setOrdering(AtomicOrdering::Monotonic); in run()
292 RMWI->setOrdering(AtomicOrdering::Monotonic); in run()
[all …]
/freebsd/contrib/llvm-project/llvm/include/llvm/IR/
H A DInstructions.h198 Align Align, AtomicOrdering Order,
218 AtomicOrdering getOrdering() const { in getOrdering()
223 void setOrdering(AtomicOrdering Ordering) { in setOrdering()
239 void setAtomic(AtomicOrdering Ordering,
248 return (getOrdering() == AtomicOrdering::NotAtomic || in isUnordered()
249 getOrdering() == AtomicOrdering::Unordered) && in isUnordered()
313 AtomicOrdering Order, SyncScope::ID SSID = SyncScope::System,
338 AtomicOrdering getOrdering() const { in getOrdering()
344 void setOrdering(AtomicOrdering Ordering) { in setOrdering()
360 void setAtomic(AtomicOrdering Ordering,
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Target/SPIRV/
H A DSPIRVUtils.cpp236 SPIRV::MemorySemantics::MemorySemantics getMemSemantics(AtomicOrdering Ord) { in getMemSemantics()
238 case AtomicOrdering::Acquire: in getMemSemantics()
240 case AtomicOrdering::Release: in getMemSemantics()
242 case AtomicOrdering::AcquireRelease: in getMemSemantics()
244 case AtomicOrdering::SequentiallyConsistent: in getMemSemantics()
246 case AtomicOrdering::Unordered: in getMemSemantics()
247 case AtomicOrdering::Monotonic: in getMemSemantics()
248 case AtomicOrdering::NotAtomic: in getMemSemantics()
/freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/
H A DGlobalStatus.h80 AtomicOrdering Ordering = AtomicOrdering::NotAtomic;
H A DFunctionComparator.h22 #include "llvm/Support/AtomicOrdering.h"
327 int cmpOrderings(AtomicOrdering L, AtomicOrdering R) const;
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/
H A DLowerAtomicPass.cpp31 LI->setAtomic(AtomicOrdering::NotAtomic); in LowerLoadInst()
36 SI->setAtomic(AtomicOrdering::NotAtomic); in LowerStoreInst()
/freebsd/contrib/llvm-project/llvm/lib/Transforms/InstCombine/
H A DInstCombineAtomicRMW.cpp119 assert(RMWI.getOrdering() != AtomicOrdering::NotAtomic && in visitAtomicRMWInst()
120 RMWI.getOrdering() != AtomicOrdering::Unordered && in visitAtomicRMWInst()
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/
H A DThreadSanitizer.cpp660 static ConstantInt *createOrdering(IRBuilder<> *IRB, AtomicOrdering ord) { in createOrdering()
663 case AtomicOrdering::NotAtomic: in createOrdering()
665 case AtomicOrdering::Unordered: [[fallthrough]]; in createOrdering()
666 case AtomicOrdering::Monotonic: v = 0; break; in createOrdering()
669 case AtomicOrdering::Acquire: v = 2; break; in createOrdering()
670 case AtomicOrdering::Release: v = 3; break; in createOrdering()
671 case AtomicOrdering::AcquireRelease: v = 4; break; in createOrdering()
672 case AtomicOrdering::SequentiallyConsistent: v = 5; break; in createOrdering()
H A DDataFlowSanitizer.cpp2354 static AtomicOrdering addAcquireOrdering(AtomicOrdering AO) { in addAcquireOrdering()
2356 case AtomicOrdering::NotAtomic: in addAcquireOrdering()
2357 return AtomicOrdering::NotAtomic; in addAcquireOrdering()
2358 case AtomicOrdering::Unordered: in addAcquireOrdering()
2359 case AtomicOrdering::Monotonic: in addAcquireOrdering()
2360 case AtomicOrdering::Acquire: in addAcquireOrdering()
2361 return AtomicOrdering::Acquire; in addAcquireOrdering()
2362 case AtomicOrdering::Release: in addAcquireOrdering()
2363 case AtomicOrdering::AcquireRelease: in addAcquireOrdering()
2364 return AtomicOrdering::AcquireRelease; in addAcquireOrdering()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Target/AArch64/GISel/
H A DAArch64LegalizerInfo.cpp309 Actions.lowerIf(atomicOrderingAtLeastOrStrongerThan(0, AtomicOrdering::Unordered)); in AArch64LegalizerInfo()
363 Query.MMODescrs[0].Ordering == AtomicOrdering::Acquire; in AArch64LegalizerInfo()
367 Query.MMODescrs[0].Ordering != AtomicOrdering::NotAtomic; in AArch64LegalizerInfo()
413 Query.MMODescrs[0].Ordering == AtomicOrdering::Release; in AArch64LegalizerInfo()
417 Query.MMODescrs[0].Ordering != AtomicOrdering::NotAtomic; in AArch64LegalizerInfo()
487 atomicOrderingAtLeastOrStrongerThan(0, AtomicOrdering::Unordered)) in AArch64LegalizerInfo()
492 atomicOrderingAtLeastOrStrongerThan(0, AtomicOrdering::Unordered)) in AArch64LegalizerInfo()
1749 AtomicOrdering Ordering = (*MI.memoperands_begin())->getSuccessOrdering(); in legalizeLoadStore()
1751 bool IsLoadAcquire = IsLoad && Ordering == AtomicOrdering::Acquire; in legalizeLoadStore()
1752 bool IsStoreRelease = !IsLoad && Ordering == AtomicOrdering::Release; in legalizeLoadStore()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Target/VE/
H A DVEISelLowering.cpp1061 AtomicOrdering Ord) const { in emitLeadingFence()
1063 case AtomicOrdering::NotAtomic: in emitLeadingFence()
1064 case AtomicOrdering::Unordered: in emitLeadingFence()
1066 case AtomicOrdering::Monotonic: in emitLeadingFence()
1067 case AtomicOrdering::Acquire: in emitLeadingFence()
1069 case AtomicOrdering::Release: in emitLeadingFence()
1070 case AtomicOrdering::AcquireRelease: in emitLeadingFence()
1071 return Builder.CreateFence(AtomicOrdering::Release); in emitLeadingFence()
1072 case AtomicOrdering::SequentiallyConsistent: in emitLeadingFence()
1075 return Builder.CreateFence(AtomicOrdering::SequentiallyConsistent); in emitLeadingFence()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Target/LoongArch/
H A DLoongArchExpandAtomicPseudoInsts.cpp574 AtomicOrdering FailureOrdering = in expandAtomicCmpXchg()
575 static_cast<AtomicOrdering>(MI.getOperand(IsMasked ? 6 : 5).getImm()); in expandAtomicCmpXchg()
579 case AtomicOrdering::Acquire: in expandAtomicCmpXchg()
580 case AtomicOrdering::AcquireRelease: in expandAtomicCmpXchg()
581 case AtomicOrdering::SequentiallyConsistent: in expandAtomicCmpXchg()
/freebsd/contrib/llvm-project/llvm/lib/Target/RISCV/GISel/
H A DRISCVInstructionSelector.cpp80 void emitFence(AtomicOrdering FenceOrdering, SyncScope::ID FenceSSID,
705 AtomicOrdering FenceOrdering = in select()
706 static_cast<AtomicOrdering>(MI.getOperand(0).getImm()); in select()
1273 void RISCVInstructionSelector::emitFence(AtomicOrdering FenceOrdering, in emitFence()
1279 if (FenceOrdering == AtomicOrdering::SequentiallyConsistent && in emitFence()
1307 case AtomicOrdering::AcquireRelease: in emitFence()
1311 case AtomicOrdering::Acquire: in emitFence()
1316 case AtomicOrdering::Release: in emitFence()
1321 case AtomicOrdering::SequentiallyConsistent: in emitFence()

12345