/freebsd/contrib/llvm-project/llvm/lib/Target/WebAssembly/ |
H A D | WebAssemblyInstrAtomics.td | 367 // Truncating & zero-extending binary RMW patterns. 379 // Truncating & sign-extending binary RMW patterns. 382 // 64-bit) and select a zext RMW; the next instruction will be sext_inreg which 391 // 32->64 sext RMW gets selected as i32.atomic.rmw.***, i64.extend_i32_s 491 // Truncating & zero-extending ternary RMW patterns. 510 // Truncating & sign-extending ternary RMW patterns. 512 // zext RMW; the next instruction will be sext_inreg which is selected by 525 // 32->64 sext RMW gets selected as i32.atomic.rmw.***, i64.extend_i32_s
|
/freebsd/contrib/llvm-project/llvm/lib/Analysis/ |
H A D | AliasAnalysis.cpp | 586 ModRefInfo AAResults::getModRefInfo(const AtomicRMWInst *RMW, in getModRefInfo() argument 590 if (isStrongerThanMonotonic(RMW->getOrdering())) in getModRefInfo() 594 AliasResult AR = alias(MemoryLocation::get(RMW), Loc, AAQI, RMW); in getModRefInfo()
|
/freebsd/contrib/llvm-project/llvm/lib/Target/AMDGPU/ |
H A D | R600ISelLowering.h | 119 shouldExpandAtomicRMWInIR(AtomicRMWInst *RMW) const override;
|
H A D | SIISelLowering.cpp | 16065 static bool fpModeMatchesGlobalFPAtomicMode(const AtomicRMWInst *RMW) { 16066 const fltSemantics &Flt = RMW->getType()->getScalarType()->getFltSemantics(); 16067 auto DenormMode = RMW->getParent()->getParent()->getDenormalMode(Flt); 16083 static OptimizationRemark emitAtomicRMWLegalRemark(const AtomicRMWInst *RMW) { in emitAtomicRMWLegalRemark() argument 16084 LLVMContext &Ctx = RMW->getContext(); in emitAtomicRMWLegalRemark() 16087 StringRef MemScope = SSNs[RMW->getSyncScopeID()].empty() in emitAtomicRMWLegalRemark() 16089 : SSNs[RMW->getSyncScopeID()]; in emitAtomicRMWLegalRemark() 16091 return OptimizationRemark(DEBUG_TYPE, "Passed", RMW) in emitAtomicRMWLegalRemark() 16093 << RMW->getOperationName(RMW->getOperation()) in emitAtomicRMWLegalRemark() 16118 SITargetLowering::shouldExpandAtomicRMWInIR(AtomicRMWInst *RMW) const { in shouldExpandAtomicRMWInIR() [all …]
|
H A D | AMDGPUPromoteAlloca.cpp | 1180 } else if (AtomicRMWInst *RMW = dyn_cast<AtomicRMWInst>(UseInst)) { in collectUsesWithPtrTypes() local 1181 if (RMW->isVolatile()) in collectUsesWithPtrTypes()
|
H A D | R600ISelLowering.cpp | 2176 R600TargetLowering::shouldExpandAtomicRMWInIR(AtomicRMWInst *RMW) const { in shouldExpandAtomicRMWInIR() 2177 switch (RMW->getOperation()) { in shouldExpandAtomicRMWInIR() 2187 return AMDGPUTargetLowering::shouldExpandAtomicRMWInIR(RMW); in shouldExpandAtomicRMWInIR()
|
H A D | AMDGPULowerBufferFatPointers.cpp | 1100 else if (auto *RMW = dyn_cast<AtomicRMWInst>(I)) { in handleMemoryInst() local 1101 switch (RMW->getOperation()) { in handleMemoryInst()
|
H A D | AMDGPUISelLowering.cpp | 6012 AMDGPUTargetLowering::shouldExpandAtomicRMWInIR(AtomicRMWInst *RMW) const { in shouldExpandAtomicRMWInIR() 6013 switch (RMW->getOperation()) { in shouldExpandAtomicRMWInIR() 6021 const DataLayout &DL = RMW->getFunction()->getDataLayout(); in shouldExpandAtomicRMWInIR() 6022 unsigned ValSize = DL.getTypeSizeInBits(RMW->getType()); in shouldExpandAtomicRMWInIR() 6028 if (auto *IntTy = dyn_cast<IntegerType>(RMW->getType())) { in shouldExpandAtomicRMWInIR()
|
/freebsd/contrib/llvm-project/llvm/lib/Target/BPF/ |
H A D | BPFCheckAndAdjustIR.cpp | 509 else if (auto *RMW = dyn_cast<AtomicRMWInst>(&I)) in insertASpaceCasts() local 510 PtrOpNum = RMW->getPointerOperandIndex(); in insertASpaceCasts()
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/ |
H A D | HWAddressSanitizer.cpp | 839 } else if (AtomicRMWInst *RMW = dyn_cast<AtomicRMWInst>(I)) { in getInterestingMemoryOperands() local 840 if (!ClInstrumentAtomics || ignoreAccess(ORE, I, RMW->getPointerOperand())) in getInterestingMemoryOperands() 842 Interesting.emplace_back(I, RMW->getPointerOperandIndex(), true, in getInterestingMemoryOperands() 843 RMW->getValOperand()->getType(), std::nullopt); in getInterestingMemoryOperands() 867 if (AtomicRMWInst *RMW = dyn_cast<AtomicRMWInst>(I)) in getPointerOperandIndex() local 868 return RMW->getPointerOperandIndex(); in getPointerOperandIndex()
|
H A D | MemProfiler.cpp | 347 } else if (AtomicRMWInst *RMW = dyn_cast<AtomicRMWInst>(I)) { in isInterestingMemoryAccess() local 351 Access.AccessTy = RMW->getValOperand()->getType(); in isInterestingMemoryAccess() 352 Access.Addr = RMW->getPointerOperand(); in isInterestingMemoryAccess()
|
H A D | AddressSanitizer.cpp | 1420 } else if (AtomicRMWInst *RMW = dyn_cast<AtomicRMWInst>(I)) { in getInterestingMemoryOperands() local 1421 if (!ClInstrumentAtomics || ignoreAccess(I, RMW->getPointerOperand())) in getInterestingMemoryOperands() 1423 Interesting.emplace_back(I, RMW->getPointerOperandIndex(), true, in getInterestingMemoryOperands() 1424 RMW->getValOperand()->getType(), std::nullopt); in getInterestingMemoryOperands()
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/ |
H A D | InferAddressSpaces.cpp | 503 else if (auto *RMW = dyn_cast<AtomicRMWInst>(&I)) in collectFlatAddressExpressions() local 504 PushPtrOperand(RMW->getPointerOperand()); in collectFlatAddressExpressions() 1026 if (auto *RMW = dyn_cast<AtomicRMWInst>(Inst)) in isSimplePointerUseValidToReplace() local 1028 (VolatileIsAllowed || !RMW->isVolatile()); in isSimplePointerUseValidToReplace()
|
H A D | LoopStrengthReduce.cpp | 1023 } else if (AtomicRMWInst *RMW = dyn_cast<AtomicRMWInst>(Inst)) { in isAddressUse() local 1024 if (RMW->getPointerOperand() == OperandVal) in isAddressUse() 1047 } else if (const AtomicRMWInst *RMW = dyn_cast<AtomicRMWInst>(Inst)) { in getAccessType() local 1048 AccessTy.AddrSpace = RMW->getPointerAddressSpace(); in getAccessType()
|
/freebsd/contrib/llvm-project/llvm/lib/Target/M68k/ |
H A D | M68kISelLowering.h | 178 shouldExpandAtomicRMWInIR(AtomicRMWInst *RMW) const override;
|
/freebsd/contrib/llvm-project/llvm/include/llvm/Analysis/ |
H A D | AliasAnalysis.h | 599 ModRefInfo getModRefInfo(const AtomicRMWInst *RMW, const MemoryLocation &Loc,
|
/freebsd/contrib/llvm-project/llvm/lib/Target/SystemZ/ |
H A D | SystemZISelLowering.h | 483 shouldExpandAtomicRMWInIR(AtomicRMWInst *RMW) const override;
|
H A D | SystemZISelLowering.cpp | 947 SystemZTargetLowering::shouldExpandAtomicRMWInIR(AtomicRMWInst *RMW) const { in shouldExpandAtomicRMWInIR() 949 if (RMW->getType()->isIntegerTy(8) || RMW->getType()->isIntegerTy(16)) in shouldExpandAtomicRMWInIR() 954 (RMW->getType()->isIntegerTy(32) || RMW->getType()->isIntegerTy(64)) && in shouldExpandAtomicRMWInIR() 955 (RMW->getOperation() == AtomicRMWInst::BinOp::Add || in shouldExpandAtomicRMWInIR() 956 RMW->getOperation() == AtomicRMWInst::BinOp::Sub || in shouldExpandAtomicRMWInIR() 957 RMW->getOperation() == AtomicRMWInst::BinOp::And || in shouldExpandAtomicRMWInIR() 958 RMW->getOperation() == AtomicRMWInst::BinOp::Or || in shouldExpandAtomicRMWInIR() 959 RMW->getOperation() == AtomicRMWInst::BinOp::Xor)) in shouldExpandAtomicRMWInIR()
|
/freebsd/contrib/llvm-project/llvm/lib/Target/X86/ |
H A D | X86ScheduleBtVer2.td | 183 // A folded store needs a cycle on the SAGU for the store data, most RMW 184 // instructions don't need an extra uop. ALU RMW operations don't seem to
|
H A D | X86Schedule.td | 160 def WriteXCHG : SchedWrite; // Compare+Exchange - TODO RMW support.
|
H A D | X86SchedSandyBridge.td | 1056 def : SchedAlias<WriteBitTestRegLd, SBWriteResGroup100>; // TODO - this is incorrect - no RMW
|
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/ |
H A D | TargetLoweringBase.cpp | 2267 if (const AtomicRMWInst *RMW = dyn_cast<AtomicRMWInst>(&AI)) { in getAtomicMemOperandFlags() local 2268 if (RMW->isVolatile()) in getAtomicMemOperandFlags()
|
H A D | CodeGenPrepare.cpp | 5241 if (AtomicRMWInst *RMW = dyn_cast<AtomicRMWInst>(UserI)) { in FindAllMemoryUses() local 5244 MemoryUses.push_back({&U, RMW->getValOperand()->getType()}); in FindAllMemoryUses() 8380 if (AtomicRMWInst *RMW = dyn_cast<AtomicRMWInst>(I)) { in optimizeInst() local 8381 unsigned AS = RMW->getPointerAddressSpace(); in optimizeInst() 8382 return optimizeMemoryInst(I, RMW->getPointerOperand(), RMW->getType(), AS); in optimizeInst()
|
/freebsd/contrib/llvm-project/llvm/lib/IR/ |
H A D | AutoUpgrade.cpp | 4096 AtomicRMWInst *RMW = in upgradeAMDGCNIntrinsicCall() local 4100 RMW->setMetadata("amdgpu.no.fine.grained.memory", in upgradeAMDGCNIntrinsicCall() 4105 RMW->setVolatile(true); in upgradeAMDGCNIntrinsicCall() 4107 return Builder.CreateBitCast(RMW, RetTy); in upgradeAMDGCNIntrinsicCall()
|
/freebsd/contrib/llvm-project/llvm/include/llvm/CodeGen/ |
H A D | TargetLowering.h | 2320 virtual AtomicExpansionKind shouldExpandAtomicRMWInIR(AtomicRMWInst *RMW) const { in shouldExpandAtomicRMWInIR() argument 2321 return RMW->isFloatingPointOperation() ? in shouldExpandAtomicRMWInIR()
|