Home
last modified time | relevance | path

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

12

/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.cpp586 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 DR600ISelLowering.h119 shouldExpandAtomicRMWInIR(AtomicRMWInst *RMW) const override;
H A DSIISelLowering.cpp16065 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 DAMDGPUPromoteAlloca.cpp1180 } else if (AtomicRMWInst *RMW = dyn_cast<AtomicRMWInst>(UseInst)) { in collectUsesWithPtrTypes() local
1181 if (RMW->isVolatile()) in collectUsesWithPtrTypes()
H A DR600ISelLowering.cpp2176 R600TargetLowering::shouldExpandAtomicRMWInIR(AtomicRMWInst *RMW) const { in shouldExpandAtomicRMWInIR()
2177 switch (RMW->getOperation()) { in shouldExpandAtomicRMWInIR()
2187 return AMDGPUTargetLowering::shouldExpandAtomicRMWInIR(RMW); in shouldExpandAtomicRMWInIR()
H A DAMDGPULowerBufferFatPointers.cpp1100 else if (auto *RMW = dyn_cast<AtomicRMWInst>(I)) { in handleMemoryInst() local
1101 switch (RMW->getOperation()) { in handleMemoryInst()
H A DAMDGPUISelLowering.cpp6012 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 DBPFCheckAndAdjustIR.cpp509 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 DHWAddressSanitizer.cpp839 } 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 DMemProfiler.cpp347 } 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 DAddressSanitizer.cpp1420 } 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 DInferAddressSpaces.cpp503 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 DLoopStrengthReduce.cpp1023 } 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 DM68kISelLowering.h178 shouldExpandAtomicRMWInIR(AtomicRMWInst *RMW) const override;
/freebsd/contrib/llvm-project/llvm/include/llvm/Analysis/
H A DAliasAnalysis.h599 ModRefInfo getModRefInfo(const AtomicRMWInst *RMW, const MemoryLocation &Loc,
/freebsd/contrib/llvm-project/llvm/lib/Target/SystemZ/
H A DSystemZISelLowering.h483 shouldExpandAtomicRMWInIR(AtomicRMWInst *RMW) const override;
H A DSystemZISelLowering.cpp947 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 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
H A DX86Schedule.td160 def WriteXCHG : SchedWrite; // Compare+Exchange - TODO RMW support.
H A DX86SchedSandyBridge.td1056 def : SchedAlias<WriteBitTestRegLd, SBWriteResGroup100>; // TODO - this is incorrect - no RMW
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/
H A DTargetLoweringBase.cpp2267 if (const AtomicRMWInst *RMW = dyn_cast<AtomicRMWInst>(&AI)) { in getAtomicMemOperandFlags() local
2268 if (RMW->isVolatile()) in getAtomicMemOperandFlags()
H A DCodeGenPrepare.cpp5241 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 DAutoUpgrade.cpp4096 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 DTargetLowering.h2320 virtual AtomicExpansionKind shouldExpandAtomicRMWInIR(AtomicRMWInst *RMW) const { in shouldExpandAtomicRMWInIR() argument
2321 return RMW->isFloatingPointOperation() ? in shouldExpandAtomicRMWInIR()

12