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

/openbsd-current/gnu/llvm/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...]
/openbsd-current/gnu/llvm/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);
/openbsd-current/gnu/llvm/llvm/include/llvm/Transforms/Utils/
H A DLowerAtomic.h26 /// Convert the given RMWI into primitive load and stores,
29 bool lowerAtomicRMWInst(AtomicRMWInst *RMWI);
/openbsd-current/gnu/llvm/llvm/lib/Transforms/Utils/
H A DLowerAtomic.cpp103 bool llvm::lowerAtomicRMWInst(AtomicRMWInst *RMWI) { argument
104 IRBuilder<> Builder(RMWI);
105 Value *Ptr = RMWI->getPointerOperand();
106 Value *Val = RMWI->getValOperand();
109 Value *Res = buildAtomicRMWValue(RMWI->getOperation(), Builder, Orig, Val);
111 RMWI->replaceAllUsesWith(Orig);
112 RMWI->eraseFromParent();
H A DFunctionComparator.cpp668 if (const AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(L)) {
669 if (int Res = cmpNumbers(RMWI->getOperation(),
672 if (int Res = cmpNumbers(RMWI->isVolatile(),
675 if (int Res = cmpOrderings(RMWI->getOrdering(),
678 return cmpNumbers(RMWI->getSyncScopeID(),
H A DInlineFunction.cpp1183 else if (const AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(I))
1184 PtrArgs.push_back(RMWI->getPointerOperand());
/openbsd-current/gnu/llvm/llvm/lib/Transforms/Scalar/
H A DLowerAtomicPass.cpp47 else if (AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(&Inst))
48 Changed |= lowerAtomicRMWInst(RMWI);
/openbsd-current/gnu/llvm/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)) {
392 convertAtomicXchgToIntegerType(AtomicRMWInst *RMWI) argument
1464 isIdempotentRMW(AtomicRMWInst *RMWI) argument
1484 simplifyIdempotentRMW(AtomicRMWInst *RMWI) argument
[all...]
/openbsd-current/gnu/llvm/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());
/openbsd-current/gnu/llvm/llvm/lib/Transforms/Instrumentation/
H A DThreadSanitizer.cpp751 } else if (AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(I)) {
752 Value *Addr = RMWI->getPointerOperand();
754 getMemoryAccessFuncIndex(RMWI->getValOperand()->getType(), Addr, DL);
757 FunctionCallee F = TsanAtomicRMW[RMWI->getOperation()][Idx];
765 IRB.CreateIntCast(RMWI->getValOperand(), Ty, false),
766 createOrdering(&IRB, RMWI->getOrdering())};
/openbsd-current/gnu/llvm/llvm/lib/IR/
H A DInstruction.cpp537 if (const AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(I1))
538 return RMWI->getOperation() == cast<AtomicRMWInst>(I2)->getOperation() &&
539 RMWI->isVolatile() == cast<AtomicRMWInst>(I2)->isVolatile() &&
540 RMWI->getOrdering() == cast<AtomicRMWInst>(I2)->getOrdering() &&
541 RMWI->getSyncScopeID() == cast<AtomicRMWInst>(I2)->getSyncScopeID();
H A DVerifier.cpp541 void visitAtomicRMWInst(AtomicRMWInst &RMWI);
4007 void Verifier::visitAtomicRMWInst(AtomicRMWInst &RMWI) { argument
4008 Check(RMWI.getOrdering() != AtomicOrdering::Unordered,
4009 "atomicrmw instructions cannot be unordered.", &RMWI);
4010 auto Op = RMWI.getOperation();
4011 Type *ElTy = RMWI.getOperand(1)->getType();
4017 &RMWI, ElTy);
4022 &RMWI, ElTy);
4027 &RMWI, ElTy);
4029 checkAtomicMemAccessSize(ElTy, &RMWI);
[all...]
H A DAsmWriter.cpp4088 if (const AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(&I))
4089 Out << ' ' << AtomicRMWInst::getOperationName(RMWI->getOperation());
4450 } else if (const AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(&I)) {
4451 writeAtomic(RMWI->getContext(), RMWI->getOrdering(),
4452 RMWI->getSyncScopeID());
4453 Out << ", align " << RMWI->getAlign().value();
H A DCore.cpp2009 if (AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(P))
2010 return RMWI->getAlign().value();
2029 else if (AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(P))
2030 RMWI->setAlignment(Align(Bytes));
/openbsd-current/gnu/llvm/llvm/include/llvm/Analysis/
H A DMemoryLocation.h242 static MemoryLocation get(const AtomicRMWInst *RMWI);
/openbsd-current/gnu/llvm/clang/lib/CodeGen/
H A DCGAtomic.cpp694 llvm::AtomicRMWInst *RMWI = local
696 RMWI->setVolatile(E->isVolatile());
700 llvm::Value *Result = RMWI;
704 RMWI, LoadVal1);
706 Result = CGF.Builder.CreateBinOp((llvm::Instruction::BinaryOps)PostOp, RMWI,
H A DCGBuiltin.cpp11063 AtomicRMWInst *RMWI = Builder.CreateAtomicRMW(
11066 return Builder.CreateAdd(RMWI, Arg1);
/openbsd-current/gnu/llvm/llvm/include/llvm/CodeGen/
H A DTargetLowering.h2162 shouldCastAtomicRMWIInIR(AtomicRMWInst *RMWI) const {
2163 if (RMWI->getOperation() == AtomicRMWInst::Xchg &&
2164 (RMWI->getValOperand()->getType()->isFloatingPointTy() ||
2165 RMWI->getValOperand()->getType()->isPointerTy()))
2183 lowerIdempotentRMWIntoFencedLoad(AtomicRMWInst *RMWI) const {
/openbsd-current/gnu/llvm/llvm/lib/Transforms/IPO/
H A DAttributorAttributes.cpp258 if (auto *RMWI = dyn_cast<AtomicRMWInst>(I)) {
259 return RMWI->getPointerOperand();
1779 if (auto *RMWI = dyn_cast<AtomicRMWInst>(Usr))
1780 return HandleStoreLike(*RMWI, nullptr, *RMWI->getValOperand()->getType(),
1781 {RMWI->getValOperand()}, AccessKind::AK_RW);
/openbsd-current/gnu/llvm/llvm/lib/AsmParser/
H A DLLParser.cpp7811 AtomicRMWInst *RMWI =
7814 RMWI->setVolatile(isVolatile);
7815 Inst = RMWI;

Completed in 321 milliseconds