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

/freebsd-11-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-11-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();
126 else if (AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(Inst))
127 Changed |= LowerAtomicRMWInst(RMWI);
/freebsd-11-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-11-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());
174 static unsigned getAtomicOpAlign(AtomicRMWInst *RMWI) { argument
178 const DataLayout &DL = RMWI->getModule()->getDataLayout();
179 return DL.getTypeStoreSize(RMWI->getValOperand()->getType());
222 auto RMWI = dyn_cast<AtomicRMWInst>(I); local
224 assert((LI || SI || RMWI || CAS
1317 isIdempotentRMW(AtomicRMWInst* RMWI) argument
1337 simplifyIdempotentRMW(AtomicRMWInst* RMWI) argument
[all...]
/freebsd-11-stable/contrib/llvm-project/llvm/lib/Transforms/Utils/
H A DFunctionComparator.cpp633 if (const AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(L)) {
634 if (int Res = cmpNumbers(RMWI->getOperation(),
637 if (int Res = cmpNumbers(RMWI->isVolatile(),
640 if (int Res = cmpOrderings(RMWI->getOrdering(),
643 return cmpNumbers(RMWI->getSyncScopeID(),
H A DInlineFunction.cpp993 else if (const AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(I))
994 PtrArgs.push_back(RMWI->getPointerOperand());
H A DSimplifyCFG.cpp4243 } else if (auto *RMWI = dyn_cast<AtomicRMWInst>(BBI)) {
4244 if (RMWI->isVolatile())
/freebsd-11-stable/contrib/llvm-project/llvm/lib/IR/
H A DInstruction.cpp432 if (const AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(I1))
433 return RMWI->getOperation() == cast<AtomicRMWInst>(I2)->getOperation() &&
434 RMWI->isVolatile() == cast<AtomicRMWInst>(I2)->isVolatile() &&
435 RMWI->getOrdering() == cast<AtomicRMWInst>(I2)->getOrdering() &&
436 RMWI->getSyncScopeID() == cast<AtomicRMWInst>(I2)->getSyncScopeID();
H A DVerifier.cpp483 void visitAtomicRMWInst(AtomicRMWInst &RMWI);
3546 void Verifier::visitAtomicRMWInst(AtomicRMWInst &RMWI) { argument
3547 Assert(RMWI.getOrdering() != AtomicOrdering::NotAtomic,
3548 "atomicrmw instructions must be atomic.", &RMWI);
3549 Assert(RMWI.getOrdering() != AtomicOrdering::Unordered,
3550 "atomicrmw instructions cannot be unordered.", &RMWI);
3551 auto Op = RMWI.getOperation();
3552 PointerType *PTy = dyn_cast<PointerType>(RMWI.getOperand(0)->getType());
3553 Assert(PTy, "First atomicrmw operand must be a pointer.", &RMWI);
3559 &RMWI, ElT
[all...]
H A DAsmWriter.cpp3721 if (const AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(&I))
3722 Out << ' ' << AtomicRMWInst::getOperationName(RMWI->getOperation());
4079 } else if (const AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(&I)) {
4080 writeAtomic(RMWI->getContext(), RMWI->getOrdering(),
4081 RMWI->getSyncScopeID());
/freebsd-11-stable/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/
H A DThreadSanitizer.cpp660 } else if (AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(I)) {
661 Value *Addr = RMWI->getPointerOperand();
665 FunctionCallee F = TsanAtomicRMW[RMWI->getOperation()][Idx];
673 IRB.CreateIntCast(RMWI->getValOperand(), Ty, false),
674 createOrdering(&IRB, RMWI->getOrdering())};
/freebsd-11-stable/contrib/llvm-project/llvm/include/llvm/Analysis/
H A DMemoryLocation.h203 static MemoryLocation get(const AtomicRMWInst *RMWI);
/freebsd-11-stable/contrib/llvm-project/clang/lib/CodeGen/
H A DCGAtomic.cpp670 llvm::AtomicRMWInst *RMWI = local
672 RMWI->setVolatile(E->isVolatile());
676 llvm::Value *Result = RMWI;
680 RMWI, LoadVal1);
682 Result = CGF.Builder.CreateBinOp((llvm::Instruction::BinaryOps)PostOp, RMWI,
H A DCGBuiltin.cpp8511 AtomicRMWInst *RMWI = Builder.CreateAtomicRMW(
8514 return Builder.CreateAdd(RMWI, Arg1);
/freebsd-11-stable/contrib/llvm-project/llvm/include/llvm/Transforms/IPO/
H A DAttributor.h854 if (auto *RMWI = dyn_cast<AtomicRMWInst>(I)) {
855 if (!AllowVolatile && RMWI->isVolatile())
857 return RMWI->getPointerOperand();
/freebsd-11-stable/contrib/llvm-project/llvm/include/llvm/CodeGen/
H A DTargetLowering.h1854 lowerIdempotentRMWIntoFencedLoad(AtomicRMWInst *RMWI) const {
/freebsd-11-stable/contrib/llvm-project/llvm/lib/AsmParser/
H A DLLParser.cpp7173 AtomicRMWInst *RMWI =
7175 RMWI->setVolatile(isVolatile);
7176 Inst = RMWI;

Completed in 369 milliseconds