| /freebsd/contrib/llvm-project/llvm/include/llvm/Support/ |
| H A D | AtomicOrdering.h | 56 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 D | MachineMemOperand.h | 197 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 D | MachineFunction.h | 1086 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 D | RuntimeLibcallUtil.h | 99 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 D | Atomic.h | 61 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 D | RISCVExpandAtomicPseudoInsts.cpp | 151 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 D | RISCVZacasABIFix.cpp | 63 if (I.getFailureOrdering() != AtomicOrdering::SequentiallyConsistent) in visitAtomicCmpXchgInst() 66 Builder.CreateFence(AtomicOrdering::SequentiallyConsistent); in visitAtomicCmpXchgInst()
|
| /freebsd/contrib/llvm-project/llvm/lib/Target/AMDGPU/ |
| H A D | SIMemoryLegalizer.cpp | 97 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 D | CGAtomic.cpp | 222 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 D | CGBuiltin.cpp | 295 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 D | CGBuiltin.h | 92 llvm::AtomicOrdering Ordering = 93 llvm::AtomicOrdering::SequentiallyConsistent);
|
| H A D | CGStmtOpenMP.cpp | 5621 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 D | GlobalStatus.cpp | 33 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 D | Atomic.cpp | 22 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 D | NVPTX.h | 156 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 D | AtomicExpandPass.cpp | 79 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 D | Instructions.h | 204 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 D | GlobalStatus.h | 80 AtomicOrdering Ordering = AtomicOrdering::NotAtomic;
|
| H A D | FunctionComparator.h | 331 int cmpOrderings(AtomicOrdering L, AtomicOrdering R) const;
|
| /freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/ |
| H A D | LowerAtomicPass.cpp | 30 LI->setAtomic(AtomicOrdering::NotAtomic); in LowerLoadInst() 35 SI->setAtomic(AtomicOrdering::NotAtomic); in LowerStoreInst()
|
| /freebsd/contrib/llvm-project/llvm/lib/Transforms/InstCombine/ |
| H A D | InstCombineAtomicRMW.cpp | 119 assert(RMWI.getOrdering() != AtomicOrdering::NotAtomic && in visitAtomicRMWInst() 120 RMWI.getOrdering() != AtomicOrdering::Unordered && in visitAtomicRMWInst()
|
| /freebsd/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/ |
| H A D | ThreadSanitizer.cpp | 663 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 D | VEISelLowering.cpp | 1050 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 D | AArch64LegalizerInfo.cpp | 467 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 D | SPIRVUtils.cpp | 301 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()
|