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

/freebsd-current/contrib/llvm-project/llvm/lib/Transforms/InstCombine/
H A DInstCombineAtomicRMW.cpp24 bool isIdempotentRMW(AtomicRMWInst& RMWI) { argument
25 if (auto CF = dyn_cast<ConstantFP>(RMWI.getValOperand()))
26 switch(RMWI.getOperation()) {
35 auto C = dyn_cast<ConstantInt>(RMWI.getValOperand());
39 switch(RMWI.getOperation()) {
62 bool isSaturating(AtomicRMWInst& RMWI) { argument
63 if (auto CF = dyn_cast<ConstantFP>(RMWI.getValOperand()))
64 switch (RMWI.getOperation()) {
78 auto C = dyn_cast<ConstantInt>(RMWI.getValOperand());
82 switch(RMWI
103 visitAtomicRMWInst(AtomicRMWInst &RMWI) argument
[all...]
/freebsd-current/contrib/llvm-project/llvm/lib/Target/NVPTX/
H A DNVPTXAtomicLower.cpp48 if (AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(&I))
49 if (RMWI->getPointerAddressSpace() == ADDRESS_SPACE_LOCAL)
50 LocalMemoryAtomics.push_back(RMWI);
53 for (AtomicRMWInst *RMWI : LocalMemoryAtomics)
54 Changed |= lowerAtomicRMWInst(RMWI);
/freebsd-current/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/
H A DLowerAtomic.h26 /// Convert the given RMWI into primitive load and stores,
29 bool lowerAtomicRMWInst(AtomicRMWInst *RMWI);
/freebsd-current/contrib/llvm-project/llvm/lib/Transforms/Utils/
H A DLowerAtomic.cpp102 bool llvm::lowerAtomicRMWInst(AtomicRMWInst *RMWI) { argument
103 IRBuilder<> Builder(RMWI);
105 RMWI->getFunction()->hasFnAttribute(Attribute::StrictFP));
107 Value *Ptr = RMWI->getPointerOperand();
108 Value *Val = RMWI->getValOperand();
111 Value *Res = buildAtomicRMWValue(RMWI->getOperation(), Builder, Orig, Val);
113 RMWI->replaceAllUsesWith(Orig);
114 RMWI->eraseFromParent();
H A DFunctionComparator.cpp739 if (const AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(L)) {
740 if (int Res = cmpNumbers(RMWI->getOperation(),
743 if (int Res = cmpNumbers(RMWI->isVolatile(),
746 if (int Res = cmpOrderings(RMWI->getOrdering(),
749 return cmpNumbers(RMWI->getSyncScopeID(),
H A DInlineFunction.cpp1178 else if (const AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(I))
1179 PtrArgs.push_back(RMWI->getPointerOperand());
/freebsd-current/contrib/llvm-project/llvm/lib/Transforms/Scalar/
H A DLowerAtomicPass.cpp47 else if (AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(&Inst))
48 Changed |= lowerAtomicRMWInst(RMWI);
/freebsd-current/contrib/llvm-project/llvm/lib/CodeGen/
H A DAtomicExpandPass.cpp86 AtomicRMWInst *convertAtomicXchgToIntegerType(AtomicRMWInst *RMWI);
111 bool isIdempotentRMW(AtomicRMWInst *RMWI);
112 bool simplifyIdempotentRMW(AtomicRMWInst *RMWI);
161 static unsigned getAtomicOpSize(AtomicRMWInst *RMWI) { argument
162 const DataLayout &DL = RMWI->getModule()->getDataLayout();
163 return DL.getTypeStoreSize(RMWI->getValOperand()->getType());
206 auto RMWI = dyn_cast<AtomicRMWInst>(I); local
208 assert((LI || SI || RMWI || CASI) && "Unknown atomic instruction");
223 } else if (RMWI) {
224 if (!atomicSizeSupported(TLI, RMWI)) {
390 convertAtomicXchgToIntegerType(AtomicRMWInst *RMWI) argument
1450 isIdempotentRMW(AtomicRMWInst *RMWI) argument
1470 simplifyIdempotentRMW(AtomicRMWInst *RMWI) argument
[all...]
/freebsd-current/contrib/llvm-project/llvm/lib/Analysis/
H A DMemoryLocation.cpp68 MemoryLocation MemoryLocation::get(const AtomicRMWInst *RMWI) { argument
69 const auto &DL = RMWI->getModule()->getDataLayout();
71 return MemoryLocation(RMWI->getPointerOperand(),
73 RMWI->getValOperand()->getType())),
74 RMWI->getAAMetadata());
/freebsd-current/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/
H A DThreadSanitizer.cpp743 } else if (AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(I)) {
744 Value *Addr = RMWI->getPointerOperand();
746 getMemoryAccessFuncIndex(RMWI->getValOperand()->getType(), Addr, DL);
749 FunctionCallee F = TsanAtomicRMW[RMWI->getOperation()][Idx];
755 Value *Val = RMWI->getValOperand();
757 createOrdering(&IRB, RMWI->getOrdering())};
/freebsd-current/contrib/llvm-project/llvm/lib/IR/
H A DInstruction.cpp748 if (const AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(I1))
749 return RMWI->getOperation() == cast<AtomicRMWInst>(I2)->getOperation() &&
750 RMWI->isVolatile() == cast<AtomicRMWInst>(I2)->isVolatile() &&
751 RMWI->getOrdering() == cast<AtomicRMWInst>(I2)->getOrdering() &&
752 RMWI->getSyncScopeID() == cast<AtomicRMWInst>(I2)->getSyncScopeID();
H A DVerifier.cpp574 void visitAtomicRMWInst(AtomicRMWInst &RMWI);
4176 void Verifier::visitAtomicRMWInst(AtomicRMWInst &RMWI) { argument
4177 Check(RMWI.getOrdering() != AtomicOrdering::Unordered,
4178 "atomicrmw instructions cannot be unordered.", &RMWI);
4179 auto Op = RMWI.getOperation();
4180 Type *ElTy = RMWI.getOperand(1)->getType();
4186 &RMWI, ElTy);
4191 &RMWI, ElTy);
4196 &RMWI, ElTy);
4198 checkAtomicMemAccessSize(ElTy, &RMWI);
[all...]
H A DAsmWriter.cpp4179 if (const AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(&I))
4180 Out << ' ' << AtomicRMWInst::getOperationName(RMWI->getOperation());
4541 } else if (const AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(&I)) {
4542 writeAtomic(RMWI->getContext(), RMWI->getOrdering(),
4543 RMWI->getSyncScopeID());
4544 Out << ", align " << RMWI->getAlign().value();
H A DCore.cpp1993 if (AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(P))
1994 return RMWI->getAlign().value();
2013 else if (AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(P))
2014 RMWI->setAlignment(Align(Bytes));
/freebsd-current/contrib/llvm-project/llvm/include/llvm/Analysis/
H A DMemoryLocation.h253 static MemoryLocation get(const AtomicRMWInst *RMWI);
/freebsd-current/contrib/llvm-project/llvm/include/llvm/CodeGen/
H A DTargetLowering.h2251 shouldCastAtomicRMWIInIR(AtomicRMWInst *RMWI) const {
2252 if (RMWI->getOperation() == AtomicRMWInst::Xchg &&
2253 (RMWI->getValOperand()->getType()->isFloatingPointTy() ||
2254 RMWI->getValOperand()->getType()->isPointerTy()))
2272 lowerIdempotentRMWIntoFencedLoad(AtomicRMWInst *RMWI) const {
/freebsd-current/contrib/llvm-project/clang/lib/CodeGen/
H A DCGAtomic.cpp726 llvm::AtomicRMWInst *RMWI = local
728 RMWI->setVolatile(E->isVolatile());
732 llvm::Value *Result = RMWI;
736 RMWI, LoadVal1);
738 Result = CGF.Builder.CreateBinOp((llvm::Instruction::BinaryOps)PostOp, RMWI,
H A DCGBuiltin.cpp12053 AtomicRMWInst *RMWI =
12056 return Builder.CreateAdd(RMWI, Val);
/freebsd-current/contrib/llvm-project/llvm/lib/Transforms/IPO/
H A DAttributorAttributes.cpp286 if (auto *RMWI = dyn_cast<AtomicRMWInst>(I)) {
287 return RMWI->getPointerOperand();
1870 if (auto *RMWI = dyn_cast<AtomicRMWInst>(Usr))
1871 return HandleStoreLike(*RMWI, nullptr, *RMWI->getValOperand()->getType(),
1872 {RMWI->getValOperand()}, AccessKind::AK_RW);
/freebsd-current/contrib/llvm-project/llvm/lib/AsmParser/
H A DLLParser.cpp7971 AtomicRMWInst *RMWI =
7974 RMWI->setVolatile(isVolatile);
7975 Inst = RMWI;

Completed in 603 milliseconds