/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 | 194 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 D | MachineFunction.h | 1033 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 D | RuntimeLibcallUtil.h | 72 Libcall getOutlineAtomicHelper(const Libcall (&LC)[5][4], AtomicOrdering Order, 77 Libcall getOUTLINE_ATOMIC(unsigned Opc, AtomicOrdering Order, MVT VT);
|
H A D | AtomicExpandUtils.h | 26 AtomicOrdering, SyncScope::ID, Value *&, Value *&)>;
|
/freebsd/contrib/llvm-project/llvm/lib/Target/RISCV/ |
H A D | RISCVExpandAtomicPseudoInsts.cpp | 153 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 D | CGAtomic.cpp | 223 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 D | CGStmtOpenMP.cpp | 5416 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 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()
|
H A D | LowerMemIntrinsics.cpp | 93 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 D | SIMemoryLegalizer.cpp | 95 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 D | AMDGPULowerBufferFatPointers.cpp | 735 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 D | AtomicExpandPass.cpp | 70 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 D | Instructions.h | 198 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 D | SPIRVUtils.cpp | 236 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 D | GlobalStatus.h | 80 AtomicOrdering Ordering = AtomicOrdering::NotAtomic;
|
H A D | FunctionComparator.h | 22 #include "llvm/Support/AtomicOrdering.h" 327 int cmpOrderings(AtomicOrdering L, AtomicOrdering R) const;
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/ |
H A D | LowerAtomicPass.cpp | 31 LI->setAtomic(AtomicOrdering::NotAtomic); in LowerLoadInst() 36 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 | 660 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 D | DataFlowSanitizer.cpp | 2354 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 D | AArch64LegalizerInfo.cpp | 309 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 D | VEISelLowering.cpp | 1061 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 D | LoongArchExpandAtomicPseudoInsts.cpp | 574 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 D | RISCVInstructionSelector.cpp | 80 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()
|