Home
last modified time | relevance | path

Searched refs:RMW (Results 1 – 25 of 37) sorted by relevance

12

/freebsd/contrib/llvm-project/clang/lib/CodeGen/Targets/
H A DAMDGPU.cpp530 auto *RMW = dyn_cast<llvm::AtomicRMWInst>(&AtomicInst); in setTargetAtomicMetadata() local
538 if (((RMW && RMW->getPointerAddressSpace() == llvm::AMDGPUAS::FLAT_ADDRESS) || in setTargetAtomicMetadata()
549 if (!RMW) in setTargetAtomicMetadata()
555 RMW->setMetadata("amdgpu.no.fine.grained.memory", Empty); in setTargetAtomicMetadata()
557 RMW->setMetadata("amdgpu.no.remote.memory", Empty); in setTargetAtomicMetadata()
559 RMW->getOperation() == llvm::AtomicRMWInst::FAdd && in setTargetAtomicMetadata()
560 RMW->getType()->isFloatTy()) in setTargetAtomicMetadata()
561 RMW->setMetadata("amdgpu.ignore.denormal.mode", Empty); in setTargetAtomicMetadata()
/freebsd/contrib/llvm-project/llvm/lib/Target/AMDGPU/
H A DAMDGPUSwLowerLDS.cpp649 } else if (AtomicRMWInst *RMW = dyn_cast<AtomicRMWInst>(&Inst)) { in getLDSMemoryInstructions() local
650 if (RMW->getPointerAddressSpace() == AMDGPUAS::LOCAL_ADDRESS) in getLDSMemoryInstructions()
708 } else if (AtomicRMWInst *RMW = dyn_cast<AtomicRMWInst>(Inst)) { in translateLDSMemoryOperationsToGlobalMemory() local
709 Value *RMWPtrOperand = RMW->getPointerOperand(); in translateLDSMemoryOperationsToGlobalMemory()
710 Value *RMWValOperand = RMW->getValOperand(); in translateLDSMemoryOperationsToGlobalMemory()
714 RMW->getOperation(), Replacement, RMWValOperand, RMW->getAlign(), in translateLDSMemoryOperationsToGlobalMemory()
715 RMW->getOrdering(), RMW->getSyncScopeID()); in translateLDSMemoryOperationsToGlobalMemory()
716 NewRMW->setVolatile(RMW->isVolatile()); in translateLDSMemoryOperationsToGlobalMemory()
718 RMW->replaceAllUsesWith(NewRMW); in translateLDSMemoryOperationsToGlobalMemory()
719 RMW->eraseFromParent(); in translateLDSMemoryOperationsToGlobalMemory()
H A DAMDGPUAsanInstrumentation.cpp230 } else if (AtomicRMWInst *RMW = dyn_cast<AtomicRMWInst>(I)) { in getInterestingMemoryOperands() local
231 Interesting.emplace_back(I, RMW->getPointerOperandIndex(), true, in getInterestingMemoryOperands()
232 RMW->getValOperand()->getType(), std::nullopt); in getInterestingMemoryOperands()
H A DR600ISelLowering.h119 shouldExpandAtomicRMWInIR(AtomicRMWInst *RMW) const override;
H A DSIISelLowering.cpp17142 static bool atomicIgnoresDenormalModeOrFPModeIsFTZ(const AtomicRMWInst *RMW) { in atomicIgnoresDenormalModeOrFPModeIsFTZ() argument
17143 if (RMW->hasMetadata("amdgpu.ignore.denormal.mode")) in atomicIgnoresDenormalModeOrFPModeIsFTZ()
17146 const fltSemantics &Flt = RMW->getType()->getScalarType()->getFltSemantics(); in atomicIgnoresDenormalModeOrFPModeIsFTZ()
17147 auto DenormMode = RMW->getFunction()->getDenormalMode(Flt); in atomicIgnoresDenormalModeOrFPModeIsFTZ()
17152 return RMW->getFunction() in atomicIgnoresDenormalModeOrFPModeIsFTZ()
17157 static OptimizationRemark emitAtomicRMWLegalRemark(const AtomicRMWInst *RMW) { in emitAtomicRMWLegalRemark() argument
17158 LLVMContext &Ctx = RMW->getContext(); in emitAtomicRMWLegalRemark()
17160 Ctx.getSyncScopeName(RMW->getSyncScopeID()).value_or("system"); in emitAtomicRMWLegalRemark()
17162 return OptimizationRemark(DEBUG_TYPE, "Passed", RMW) in emitAtomicRMWLegalRemark()
17164 << RMW->getOperationName(RMW->getOperation()) in emitAtomicRMWLegalRemark()
[all …]
H A DR600ISelLowering.cpp2181 R600TargetLowering::shouldExpandAtomicRMWInIR(AtomicRMWInst *RMW) const { in shouldExpandAtomicRMWInIR()
2182 switch (RMW->getOperation()) { in shouldExpandAtomicRMWInIR()
2195 const DataLayout &DL = RMW->getFunction()->getDataLayout(); in shouldExpandAtomicRMWInIR()
2196 unsigned ValSize = DL.getTypeSizeInBits(RMW->getType()); in shouldExpandAtomicRMWInIR()
2202 if (auto *IntTy = dyn_cast<IntegerType>(RMW->getType())) { in shouldExpandAtomicRMWInIR()
H A DAMDGPUAttributor.cpp1430 else if (auto *RMW = dyn_cast<AtomicRMWInst>(&I)) in runImpl() local
1431 Ptr = RMW->getPointerOperand(); in runImpl()
H A DAMDGPUPromoteAlloca.cpp1280 if (AtomicRMWInst *RMW = dyn_cast<AtomicRMWInst>(UseInst)) { in collectUsesWithPtrTypes() local
1281 if (RMW->isVolatile()) in collectUsesWithPtrTypes()
/freebsd/contrib/llvm-project/llvm/lib/Target/WebAssembly/
H A DWebAssemblyInstrAtomics.td367 // 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 DAliasAnalysis.cpp538 ModRefInfo AAResults::getModRefInfo(const AtomicRMWInst *RMW, in getModRefInfo() argument
542 if (isStrongerThanMonotonic(RMW->getOrdering())) in getModRefInfo()
546 AliasResult AR = alias(MemoryLocation::get(RMW), Loc, AAQI, RMW); in getModRefInfo()
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/
H A DMemProfInstrumentation.cpp309 } else if (AtomicRMWInst *RMW = dyn_cast<AtomicRMWInst>(I)) { in isInterestingMemoryAccess() local
313 Access.AccessTy = RMW->getValOperand()->getType(); in isInterestingMemoryAccess()
314 Access.Addr = RMW->getPointerOperand(); in isInterestingMemoryAccess()
H A DHWAddressSanitizer.cpp877 } else if (AtomicRMWInst *RMW = dyn_cast<AtomicRMWInst>(I)) { in getInterestingMemoryOperands() local
878 if (!ClInstrumentAtomics || ignoreAccess(ORE, I, RMW->getPointerOperand())) in getInterestingMemoryOperands()
880 Interesting.emplace_back(I, RMW->getPointerOperandIndex(), true, in getInterestingMemoryOperands()
881 RMW->getValOperand()->getType(), std::nullopt); in getInterestingMemoryOperands()
905 if (AtomicRMWInst *RMW = dyn_cast<AtomicRMWInst>(I)) in getPointerOperandIndex() local
906 return RMW->getPointerOperandIndex(); in getPointerOperandIndex()
H A DAddressSanitizer.cpp1487 } else if (AtomicRMWInst *RMW = dyn_cast<AtomicRMWInst>(I)) { in getInterestingMemoryOperands() local
1488 if (!ClInstrumentAtomics || ignoreAccess(I, RMW->getPointerOperand())) in getInterestingMemoryOperands()
1490 Interesting.emplace_back(I, RMW->getPointerOperandIndex(), true, in getInterestingMemoryOperands()
1491 RMW->getValOperand()->getType(), std::nullopt); in getInterestingMemoryOperands()
/freebsd/contrib/llvm-project/llvm/lib/Target/BPF/
H A DBPFCheckAndAdjustIR.cpp505 else if (auto *RMW = dyn_cast<AtomicRMWInst>(&I)) in insertASpaceCasts() local
506 PtrOpNum = RMW->getPointerOperandIndex(); in insertASpaceCasts()
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/
H A DInferAddressSpaces.cpp564 else if (auto *RMW = dyn_cast<AtomicRMWInst>(&I)) in collectFlatAddressExpressions() local
565 PushPtrOperand(RMW->getPointerOperand()); in collectFlatAddressExpressions()
1123 if (auto *RMW = dyn_cast<AtomicRMWInst>(Inst)) in replaceIfSimplePointerUse() local
1124 return replaceSimplePointerUse(TTI, RMW, AddrSpace, OldV, NewV); in replaceIfSimplePointerUse()
/freebsd/contrib/llvm-project/clang/lib/CodeGen/TargetBuiltins/
H A DAMDGPU.cpp1131 llvm::AtomicRMWInst *RMW = in EmitAMDGPUBuiltinExpr() local
1134 RMW->setVolatile(true); in EmitAMDGPUBuiltinExpr()
1141 RMW->setMetadata("amdgpu.no.fine.grained.memory", EmptyMD); in EmitAMDGPUBuiltinExpr()
1146 RMW->setMetadata("amdgpu.ignore.denormal.mode", EmptyMD); in EmitAMDGPUBuiltinExpr()
1149 return Builder.CreateBitCast(RMW, OrigTy); in EmitAMDGPUBuiltinExpr()
/freebsd/contrib/llvm-project/llvm/lib/Target/M68k/
H A DM68kISelLowering.h105 shouldExpandAtomicRMWInIR(AtomicRMWInst *RMW) const override;
/freebsd/contrib/llvm-project/llvm/lib/IR/
H A DAutoUpgrade.cpp4413 AtomicRMWInst *RMW = in upgradeAMDGCNIntrinsicCall() local
4419 RMW->setMetadata("amdgpu.no.fine.grained.memory", EmptyMD); in upgradeAMDGCNIntrinsicCall()
4421 RMW->setMetadata("amdgpu.ignore.denormal.mode", EmptyMD); in upgradeAMDGCNIntrinsicCall()
4429 RMW->setMetadata(LLVMContext::MD_noalias_addrspace, RangeNotPrivate); in upgradeAMDGCNIntrinsicCall()
4433 RMW->setVolatile(true); in upgradeAMDGCNIntrinsicCall()
4435 return Builder.CreateBitCast(RMW, RetTy); in upgradeAMDGCNIntrinsicCall()
5732 void visitAtomicRMWInst(AtomicRMWInst &RMW) { in visitAtomicRMWInst()
5733 if (!RMW.isFloatingPointOperation()) in visitAtomicRMWInst()
5736 MDNode *Empty = MDNode::get(RMW.getContext(), {}); in visitAtomicRMWInst()
5737 RMW.setMetadata("amdgpu.no.fine.grained.host.memory", Empty); in visitAtomicRMWInst()
[all …]
/freebsd/contrib/llvm-project/clang/lib/CodeGen/
H A DCGAtomic.cpp2086 llvm::AtomicRMWInst *RMW = in emitAtomicRMWInst() local
2088 getTargetHooks().setTargetAtomicMetadata(*this, *RMW, AE); in emitAtomicRMWInst()
2089 return RMW; in emitAtomicRMWInst()
/freebsd/contrib/llvm-project/llvm/include/llvm/Analysis/
H A DAliasAnalysis.h614 LLVM_ABI ModRefInfo getModRefInfo(const AtomicRMWInst *RMW,
/freebsd/contrib/llvm-project/llvm/lib/Target/SystemZ/
H A DSystemZISelLowering.h503 shouldExpandAtomicRMWInIR(AtomicRMWInst *RMW) const override;
H A DSystemZISelLowering.cpp1248 SystemZTargetLowering::shouldExpandAtomicRMWInIR(AtomicRMWInst *RMW) const { in shouldExpandAtomicRMWInIR()
1250 if (RMW->getType()->isIntegerTy(8) || RMW->getType()->isIntegerTy(16)) in shouldExpandAtomicRMWInIR()
1255 (RMW->getType()->isIntegerTy(32) || RMW->getType()->isIntegerTy(64)) && in shouldExpandAtomicRMWInIR()
1256 (RMW->getOperation() == AtomicRMWInst::BinOp::Add || in shouldExpandAtomicRMWInIR()
1257 RMW->getOperation() == AtomicRMWInst::BinOp::Sub || in shouldExpandAtomicRMWInIR()
1258 RMW->getOperation() == AtomicRMWInst::BinOp::And || in shouldExpandAtomicRMWInIR()
1259 RMW->getOperation() == AtomicRMWInst::BinOp::Or || in shouldExpandAtomicRMWInIR()
1260 RMW->getOperation() == AtomicRMWInst::BinOp::Xor)) in shouldExpandAtomicRMWInIR()
/freebsd/contrib/llvm-project/llvm/lib/Target/X86/
H A DX86ScheduleBtVer2.td183 // 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
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/
H A DTargetLoweringBase.cpp2374 if (const AtomicRMWInst *RMW = dyn_cast<AtomicRMWInst>(&AI)) { in getAtomicMemOperandFlags() local
2375 if (RMW->isVolatile()) in getAtomicMemOperandFlags()
H A DCodeGenPrepare.cpp5586 if (AtomicRMWInst *RMW = dyn_cast<AtomicRMWInst>(UserI)) { in FindAllMemoryUses() local
5589 MemoryUses.push_back({&U, RMW->getValOperand()->getType()}); in FindAllMemoryUses()
8780 if (AtomicRMWInst *RMW = dyn_cast<AtomicRMWInst>(I)) { in optimizeInst() local
8781 unsigned AS = RMW->getPointerAddressSpace(); in optimizeInst()
8782 return optimizeMemoryInst(I, RMW->getPointerOperand(), RMW->getType(), AS); in optimizeInst()

12