Home
last modified time | relevance | path

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

123456

/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.h197 AtomicOrdering Ordering = AtomicOrdering::NotAtomic,
198 AtomicOrdering FailureOrdering = AtomicOrdering::NotAtomic);
204 AtomicOrdering Ordering = AtomicOrdering::NotAtomic,
205 AtomicOrdering FailureOrdering = AtomicOrdering::NotAtomic);
282 AtomicOrdering getSuccessOrdering() const { in getSuccessOrdering()
283 return static_cast<AtomicOrdering>(AtomicInfo.Ordering); in getSuccessOrdering()
288 AtomicOrdering getFailureOrdering() const { in getFailureOrdering()
289 return static_cast<AtomicOrdering>(AtomicInfo.FailureOrdering); in getFailureOrdering()
295 AtomicOrdering getMergedOrdering() const { in getMergedOrdering()
309 return getSuccessOrdering() != AtomicOrdering::NotAtomic; in isAtomic()
[all …]
H A DMachineFunction.h1086 AtomicOrdering Ordering = AtomicOrdering::NotAtomic,
1087 AtomicOrdering FailureOrdering = AtomicOrdering::NotAtomic);
1092 AtomicOrdering Ordering = AtomicOrdering::NotAtomic,
1093 AtomicOrdering FailureOrdering = AtomicOrdering::NotAtomic);
1098 AtomicOrdering Ordering = AtomicOrdering::NotAtomic,
1099 AtomicOrdering FailureOrdering = AtomicOrdering::NotAtomic) {
1108 AtomicOrdering Ordering = AtomicOrdering::NotAtomic,
1109 AtomicOrdering FailureOrdering = AtomicOrdering::NotAtomic) {
H A DRuntimeLibcallUtil.h99 AtomicOrdering Order, uint64_t MemSize);
103 LLVM_ABI Libcall getOUTLINE_ATOMIC(unsigned Opc, AtomicOrdering Order, MVT VT);
/freebsd/contrib/llvm-project/llvm/include/llvm/Frontend/Atomic/
H A DAtomic.h61 LLVM_ABI Value *EmitAtomicLoadOp(AtomicOrdering AO, bool IsVolatile,
79 AtomicOrdering Success,
80 AtomicOrdering Failure);
92 AtomicOrdering Success, AtomicOrdering Failure,
97 AtomicOrdering Success, AtomicOrdering Failure,
101 EmitAtomicLoadLibcall(AtomicOrdering AO);
103 LLVM_ABI void EmitAtomicStoreLibcall(AtomicOrdering AO, Value *Source);
/freebsd/contrib/llvm-project/llvm/lib/Target/RISCV/
H A DRISCVExpandAtomicPseudoInsts.cpp151 static unsigned getLRForRMW32(AtomicOrdering Ordering, in getLRForRMW32()
156 case AtomicOrdering::Monotonic: in getLRForRMW32()
158 case AtomicOrdering::Acquire: in getLRForRMW32()
162 case AtomicOrdering::Release: in getLRForRMW32()
164 case AtomicOrdering::AcquireRelease: in getLRForRMW32()
168 case AtomicOrdering::SequentiallyConsistent: in getLRForRMW32()
173 static unsigned getSCForRMW32(AtomicOrdering Ordering, in getSCForRMW32()
178 case AtomicOrdering::Monotonic: in getSCForRMW32()
180 case AtomicOrdering::Acquire: in getSCForRMW32()
182 case AtomicOrdering::Release: in getSCForRMW32()
[all …]
H A DRISCVZacasABIFix.cpp63 if (I.getFailureOrdering() != AtomicOrdering::SequentiallyConsistent) in visitAtomicCmpXchgInst()
66 Builder.CreateFence(AtomicOrdering::SequentiallyConsistent); in visitAtomicCmpXchgInst()
/freebsd/contrib/llvm-project/llvm/lib/Target/AMDGPU/
H A DSIMemoryLegalizer.cpp97 AtomicOrdering Ordering = AtomicOrdering::NotAtomic;
98 AtomicOrdering FailureOrdering = AtomicOrdering::NotAtomic;
108 AtomicOrdering Ordering = AtomicOrdering::SequentiallyConsistent, in SIMemOpInfo()
113 AtomicOrdering FailureOrdering = AtomicOrdering::SequentiallyConsistent, in SIMemOpInfo()
122 if (Ordering == AtomicOrdering::NotAtomic) { in SIMemOpInfo()
126 FailureOrdering == AtomicOrdering::NotAtomic); in SIMemOpInfo()
168 AtomicOrdering getOrdering() const { in getOrdering()
174 AtomicOrdering getFailureOrdering() const { in getFailureOrdering()
215 return Ordering != AtomicOrdering::NotAtomic; in isAtomic()
338 AtomicOrdering Order) const = 0;
[all …]
/freebsd/contrib/llvm-project/clang/lib/CodeGen/
H A DCGAtomic.cpp222 bool AsValue, llvm::AtomicOrdering AO,
235 llvm::AtomicOrdering Success =
236 llvm::AtomicOrdering::SequentiallyConsistent,
237 llvm::AtomicOrdering Failure =
238 llvm::AtomicOrdering::SequentiallyConsistent,
244 void EmitAtomicUpdate(llvm::AtomicOrdering AO,
249 void EmitAtomicUpdate(llvm::AtomicOrdering AO, RValue UpdateRVal,
263 llvm::AtomicOrdering AO, bool IsVolatile);
265 llvm::Value *EmitAtomicLoadOp(llvm::AtomicOrdering AO, bool IsVolatile,
270 llvm::AtomicOrdering Success =
[all …]
H A DCGBuiltin.cpp295 AtomicOrdering Ordering) { in MakeBinaryAtomicValue()
366 Kind, DestAddr, Val, llvm::AtomicOrdering::SequentiallyConsistent); in EmitBinaryAtomicPost()
404 DestAddr, Cmp, New, llvm::AtomicOrdering::SequentiallyConsistent, in MakeAtomicCmpXchgValue()
405 llvm::AtomicOrdering::SequentiallyConsistent); in MakeAtomicCmpXchgValue()
431 AtomicOrdering SuccessOrdering = AtomicOrdering::SequentiallyConsistent) { in EmitAtomicCmpXchgForMSIntrin()
453 auto FailureOrdering = SuccessOrdering == AtomicOrdering::Release ? in EmitAtomicCmpXchgForMSIntrin()
454 AtomicOrdering::Monotonic : in EmitAtomicCmpXchgForMSIntrin()
487 AtomicOrdering SuccessOrdering) { in EmitAtomicCmpXchg128ForMSIntrin()
499 auto FailureOrdering = SuccessOrdering == AtomicOrdering::Release in EmitAtomicCmpXchg128ForMSIntrin()
500 ? AtomicOrdering::Monotonic in EmitAtomicCmpXchg128ForMSIntrin()
[all …]
H A DCGBuiltin.h92 llvm::AtomicOrdering Ordering =
93 llvm::AtomicOrdering::SequentiallyConsistent);
H A DCGStmtOpenMP.cpp5621 llvm::AtomicOrdering AO = S.getSingleClause<OMPFlushClause>() in EmitOMPFlushDirective()
5622 ? llvm::AtomicOrdering::NotAtomic in EmitOMPFlushDirective()
5623 : llvm::AtomicOrdering::AcquireRelease; in EmitOMPFlushDirective()
6273 static void emitSimpleAtomicStore(CodeGenFunction &CGF, llvm::AtomicOrdering AO, in emitSimpleAtomicStore()
6282 llvm::AtomicOrdering AO, LValue LVal, in emitSimpleAtomicLoad()
6309 static void emitOMPAtomicReadExpr(CodeGenFunction &CGF, llvm::AtomicOrdering AO, in emitOMPAtomicReadExpr()
6323 case llvm::AtomicOrdering::Acquire: in emitOMPAtomicReadExpr()
6324 case llvm::AtomicOrdering::AcquireRelease: in emitOMPAtomicReadExpr()
6325 case llvm::AtomicOrdering::SequentiallyConsistent: in emitOMPAtomicReadExpr()
6327 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()
/freebsd/contrib/llvm-project/llvm/lib/Frontend/Atomic/
H A DAtomic.cpp22 Value *AtomicInfo::EmitAtomicLoadOp(AtomicOrdering AO, bool IsVolatile, in EmitAtomicLoadOp()
58 Value *ExpectedVal, Value *DesiredVal, AtomicOrdering Success, in EmitAtomicCompareExchangeLibcall()
59 AtomicOrdering Failure) { in EmitAtomicCompareExchangeLibcall()
90 Value *ExpectedVal, Value *DesiredVal, AtomicOrdering Success, in EmitAtomicCompareExchangeOp()
91 AtomicOrdering Failure, bool IsVolatile, bool IsWeak) { in EmitAtomicCompareExchangeOp()
107 AtomicInfo::EmitAtomicLoadLibcall(AtomicOrdering AO) { in EmitAtomicLoadLibcall()
148 void AtomicInfo::EmitAtomicStoreLibcall(AtomicOrdering AO, Value *Source) { in EmitAtomicStoreLibcall()
185 Value *ExpectedVal, Value *DesiredVal, AtomicOrdering Success, in EmitAtomicCompareExchange()
186 AtomicOrdering Failure, bool IsVolatile, bool IsWeak) { in EmitAtomicCompareExchange()
/freebsd/contrib/llvm-project/llvm/lib/Target/NVPTX/
H A DNVPTX.h156 AtomicOrdering::NotAtomic, // PTX calls these: "Weak"
158 Relaxed = (OrderingUnderlyingType)AtomicOrdering::Monotonic,
160 Acquire = (OrderingUnderlyingType)AtomicOrdering::Acquire,
161 Release = (OrderingUnderlyingType)AtomicOrdering::Release,
162 AcquireRelease = (OrderingUnderlyingType)AtomicOrdering::AcquireRelease,
164 (OrderingUnderlyingType)AtomicOrdering::SequentiallyConsistent,
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/
H A DAtomicExpandPass.cpp79 bool bracketInstWithFences(Instruction *I, AtomicOrdering Order);
92 Align AddrAlign, AtomicOrdering MemOpOrder,
96 AtomicOrdering MemOpOrder,
108 AtomicOrdering MemOpOrder, SyncScope::ID SSID,
119 Value *CASExpected, AtomicOrdering Ordering,
120 AtomicOrdering Ordering2,
316 auto FenceOrdering = AtomicOrdering::Monotonic; in processAtomicInstr()
319 LI->setOrdering(AtomicOrdering::Monotonic); in processAtomicInstr()
322 SI->setOrdering(AtomicOrdering::Monotonic); in processAtomicInstr()
326 RMWI->setOrdering(AtomicOrdering::Monotonic); in processAtomicInstr()
[all …]
/freebsd/contrib/llvm-project/llvm/include/llvm/IR/
H A DInstructions.h204 Align Align, AtomicOrdering Order,
224 AtomicOrdering getOrdering() const { in getOrdering()
229 void setOrdering(AtomicOrdering Ordering) { in setOrdering()
245 void setAtomic(AtomicOrdering Ordering,
254 return (getOrdering() == AtomicOrdering::NotAtomic || in isUnordered()
255 getOrdering() == AtomicOrdering::Unordered) && in isUnordered()
321 AtomicOrdering Order,
347 AtomicOrdering getOrdering() const { in getOrdering()
353 void setOrdering(AtomicOrdering Ordering) { in setOrdering()
369 void setAtomic(AtomicOrdering Ordering,
[all …]
/freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/
H A DGlobalStatus.h80 AtomicOrdering Ordering = AtomicOrdering::NotAtomic;
H A DFunctionComparator.h331 int cmpOrderings(AtomicOrdering L, AtomicOrdering R) const;
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/
H A DLowerAtomicPass.cpp30 LI->setAtomic(AtomicOrdering::NotAtomic); in LowerLoadInst()
35 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.cpp663 static ConstantInt *createOrdering(IRBuilder<> *IRB, AtomicOrdering ord) { in createOrdering()
666 case AtomicOrdering::NotAtomic: in createOrdering()
668 case AtomicOrdering::Unordered: [[fallthrough]]; in createOrdering()
669 case AtomicOrdering::Monotonic: v = 0; break; in createOrdering()
672 case AtomicOrdering::Acquire: v = 2; break; in createOrdering()
673 case AtomicOrdering::Release: v = 3; break; in createOrdering()
674 case AtomicOrdering::AcquireRelease: v = 4; break; in createOrdering()
675 case AtomicOrdering::SequentiallyConsistent: v = 5; break; in createOrdering()
/freebsd/contrib/llvm-project/llvm/lib/Target/VE/
H A DVEISelLowering.cpp1050 AtomicOrdering Ord) const { in emitLeadingFence()
1052 case AtomicOrdering::NotAtomic: in emitLeadingFence()
1053 case AtomicOrdering::Unordered: in emitLeadingFence()
1055 case AtomicOrdering::Monotonic: in emitLeadingFence()
1056 case AtomicOrdering::Acquire: in emitLeadingFence()
1058 case AtomicOrdering::Release: in emitLeadingFence()
1059 case AtomicOrdering::AcquireRelease: in emitLeadingFence()
1060 return Builder.CreateFence(AtomicOrdering::Release); in emitLeadingFence()
1061 case AtomicOrdering::SequentiallyConsistent: in emitLeadingFence()
1064 return Builder.CreateFence(AtomicOrdering::SequentiallyConsistent); in emitLeadingFence()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Target/AArch64/GISel/
H A DAArch64LegalizerInfo.cpp467 Actions.lowerIf(atomicOrderingAtLeastOrStrongerThan(0, AtomicOrdering::Unordered)); in AArch64LegalizerInfo()
497 Query.MMODescrs[0].Ordering == AtomicOrdering::Acquire; in AArch64LegalizerInfo()
501 Query.MMODescrs[0].Ordering != AtomicOrdering::NotAtomic; in AArch64LegalizerInfo()
555 Query.MMODescrs[0].Ordering == AtomicOrdering::Release; in AArch64LegalizerInfo()
559 Query.MMODescrs[0].Ordering != AtomicOrdering::NotAtomic; in AArch64LegalizerInfo()
646 atomicOrderingAtLeastOrStrongerThan(0, AtomicOrdering::Unordered)) in AArch64LegalizerInfo()
651 atomicOrderingAtLeastOrStrongerThan(0, AtomicOrdering::Unordered)) in AArch64LegalizerInfo()
1890 AtomicOrdering Ordering = (*MI.memoperands_begin())->getSuccessOrdering(); in legalizeLoadStore()
1892 bool IsLoadAcquire = IsLoad && Ordering == AtomicOrdering::Acquire; in legalizeLoadStore()
1893 bool IsStoreRelease = !IsLoad && Ordering == AtomicOrdering::Release; in legalizeLoadStore()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Target/SPIRV/
H A DSPIRVUtils.cpp301 SPIRV::MemorySemantics::MemorySemantics getMemSemantics(AtomicOrdering Ord) { in getMemSemantics()
303 case AtomicOrdering::Acquire: in getMemSemantics()
305 case AtomicOrdering::Release: in getMemSemantics()
307 case AtomicOrdering::AcquireRelease: in getMemSemantics()
309 case AtomicOrdering::SequentiallyConsistent: in getMemSemantics()
311 case AtomicOrdering::Unordered: in getMemSemantics()
312 case AtomicOrdering::Monotonic: in getMemSemantics()
313 case AtomicOrdering::NotAtomic: in getMemSemantics()

123456