Searched refs:RMWI (Results 1 - 17 of 17) sorted by relevance

/freebsd-13-stable/contrib/llvm-project/llvm/lib/Transforms/InstCombine/
H A DInstCombineAtomicRMW.cpp23 bool isIdempotentRMW(AtomicRMWInst& RMWI) { argument
24 if (auto CF = dyn_cast<ConstantFP>(RMWI.getValOperand()))
25 switch(RMWI.getOperation()) {
34 auto C = dyn_cast<ConstantInt>(RMWI.getValOperand());
38 switch(RMWI.getOperation()) {
61 bool isSaturating(AtomicRMWInst& RMWI) { argument
62 if (auto CF = dyn_cast<ConstantFP>(RMWI.getValOperand()))
63 switch(RMWI.getOperation()) {
71 auto C = dyn_cast<ConstantInt>(RMWI.getValOperand());
75 switch(RMWI
96 visitAtomicRMWInst(AtomicRMWInst &RMWI) argument
[all...]
/freebsd-13-stable/contrib/llvm-project/llvm/lib/Transforms/Scalar/
H A DLowerAtomic.cpp43 static bool LowerAtomicRMWInst(AtomicRMWInst *RMWI) { argument
44 IRBuilder<> Builder(RMWI);
45 Value *Ptr = RMWI->getPointerOperand();
46 Value *Val = RMWI->getValOperand();
51 switch (RMWI->getOperation()) {
98 RMWI->replaceAllUsesWith(Orig);
99 RMWI->eraseFromParent();
125 else if (AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(&Inst))
126 Changed |= LowerAtomicRMWInst(RMWI);
/freebsd-13-stable/contrib/llvm-project/llvm/lib/Analysis/
H A DMemoryLocation.cpp75 MemoryLocation MemoryLocation::get(const AtomicRMWInst *RMWI) { argument
77 RMWI->getAAMetadata(AATags);
78 const auto &DL = RMWI->getModule()->getDataLayout();
80 return MemoryLocation(RMWI->getPointerOperand(),
82 RMWI->getValOperand()->getType())),
/freebsd-13-stable/contrib/llvm-project/llvm/lib/CodeGen/
H A DAtomicExpandPass.cpp105 bool isIdempotentRMW(AtomicRMWInst *RMWI);
106 bool simplifyIdempotentRMW(AtomicRMWInst *RMWI);
145 static unsigned getAtomicOpSize(AtomicRMWInst *RMWI) { argument
146 const DataLayout &DL = RMWI->getModule()->getDataLayout();
147 return DL.getTypeStoreSize(RMWI->getValOperand()->getType());
190 auto RMWI = dyn_cast<AtomicRMWInst>(I); local
192 assert((LI || SI || RMWI || CASI) && "Unknown atomic instruction");
207 } else if (RMWI) {
208 if (!atomicSizeSupported(TLI, RMWI)) {
209 expandAtomicRMWToLibcall(RMWI);
1353 isIdempotentRMW(AtomicRMWInst* RMWI) argument
1373 simplifyIdempotentRMW(AtomicRMWInst* RMWI) argument
[all...]
/freebsd-13-stable/contrib/llvm-project/llvm/lib/IR/
H A DInstruction.cpp459 if (const AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(I1))
460 return RMWI->getOperation() == cast<AtomicRMWInst>(I2)->getOperation() &&
461 RMWI->isVolatile() == cast<AtomicRMWInst>(I2)->isVolatile() &&
462 RMWI->getOrdering() == cast<AtomicRMWInst>(I2)->getOrdering() &&
463 RMWI->getSyncScopeID() == cast<AtomicRMWInst>(I2)->getSyncScopeID();
H A DVerifier.cpp486 void visitAtomicRMWInst(AtomicRMWInst &RMWI);
3661 void Verifier::visitAtomicRMWInst(AtomicRMWInst &RMWI) { argument
3662 Assert(RMWI.getOrdering() != AtomicOrdering::NotAtomic,
3663 "atomicrmw instructions must be atomic.", &RMWI);
3664 Assert(RMWI.getOrdering() != AtomicOrdering::Unordered,
3665 "atomicrmw instructions cannot be unordered.", &RMWI);
3666 auto Op = RMWI.getOperation();
3667 PointerType *PTy = dyn_cast<PointerType>(RMWI.getOperand(0)->getType());
3668 Assert(PTy, "First atomicrmw operand must be a pointer.", &RMWI);
3674 &RMWI, ElT
[all...]
H A DAsmWriter.cpp3845 if (const AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(&I))
3846 Out << ' ' << AtomicRMWInst::getOperationName(RMWI->getOperation());
4203 } else if (const AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(&I)) {
4204 writeAtomic(RMWI->getContext(), RMWI->getOrdering(),
4205 RMWI->getSyncScopeID());
/freebsd-13-stable/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/
H A DThreadSanitizer.cpp708 } else if (AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(I)) {
709 Value *Addr = RMWI->getPointerOperand();
713 FunctionCallee F = TsanAtomicRMW[RMWI->getOperation()][Idx];
721 IRB.CreateIntCast(RMWI->getValOperand(), Ty, false),
722 createOrdering(&IRB, RMWI->getOrdering())};
/freebsd-13-stable/contrib/llvm-project/llvm/lib/Transforms/Utils/
H A DFunctionComparator.cpp646 if (const AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(L)) {
647 if (int Res = cmpNumbers(RMWI->getOperation(),
650 if (int Res = cmpNumbers(RMWI->isVolatile(),
653 if (int Res = cmpOrderings(RMWI->getOrdering(),
656 return cmpNumbers(RMWI->getSyncScopeID(),
H A DInlineFunction.cpp995 else if (const AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(I))
996 PtrArgs.push_back(RMWI->getPointerOperand());
H A DSimplifyCFG.cpp4297 } else if (auto *RMWI = dyn_cast<AtomicRMWInst>(BBI)) {
4298 if (RMWI->isVolatile())
/freebsd-13-stable/contrib/llvm-project/llvm/include/llvm/Analysis/
H A DMemoryLocation.h220 static MemoryLocation get(const AtomicRMWInst *RMWI);
/freebsd-13-stable/contrib/llvm-project/clang/lib/CodeGen/
H A DCGAtomic.cpp671 llvm::AtomicRMWInst *RMWI = local
673 RMWI->setVolatile(E->isVolatile());
677 llvm::Value *Result = RMWI;
681 RMWI, LoadVal1);
683 Result = CGF.Builder.CreateBinOp((llvm::Instruction::BinaryOps)PostOp, RMWI,
H A DCGBuiltin.cpp9806 AtomicRMWInst *RMWI = Builder.CreateAtomicRMW(
9809 return Builder.CreateAdd(RMWI, Arg1);
/freebsd-13-stable/contrib/llvm-project/llvm/lib/Transforms/IPO/
H A DAttributorAttributes.cpp159 if (auto *RMWI = dyn_cast<AtomicRMWInst>(I)) {
160 if (!AllowVolatile && RMWI->isVolatile())
162 return RMWI->getPointerOperand();
/freebsd-13-stable/contrib/llvm-project/llvm/include/llvm/CodeGen/
H A DTargetLowering.h1969 lowerIdempotentRMWIntoFencedLoad(AtomicRMWInst *RMWI) const {
/freebsd-13-stable/contrib/llvm-project/llvm/lib/AsmParser/
H A DLLParser.cpp7312 AtomicRMWInst *RMWI =
7314 RMWI->setVolatile(isVolatile);
7315 Inst = RMWI;

Completed in 396 milliseconds