/freebsd-current/contrib/llvm-project/llvm/lib/Transforms/InstCombine/ |
H A D | InstCombineAtomicRMW.cpp | 24 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 D | NVPTXAtomicLower.cpp | 48 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 D | LowerAtomic.h | 26 /// 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 D | LowerAtomic.cpp | 102 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 D | FunctionComparator.cpp | 739 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 D | InlineFunction.cpp | 1178 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 D | LowerAtomicPass.cpp | 47 else if (AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(&Inst)) 48 Changed |= lowerAtomicRMWInst(RMWI);
|
/freebsd-current/contrib/llvm-project/llvm/lib/CodeGen/ |
H A D | AtomicExpandPass.cpp | 86 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 D | MemoryLocation.cpp | 68 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 D | ThreadSanitizer.cpp | 743 } 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 D | Instruction.cpp | 748 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 D | Verifier.cpp | 574 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 D | AsmWriter.cpp | 4179 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 D | Core.cpp | 1993 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 D | MemoryLocation.h | 253 static MemoryLocation get(const AtomicRMWInst *RMWI);
|
/freebsd-current/contrib/llvm-project/llvm/include/llvm/CodeGen/ |
H A D | TargetLowering.h | 2251 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 D | CGAtomic.cpp | 726 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 D | CGBuiltin.cpp | 12053 AtomicRMWInst *RMWI = 12056 return Builder.CreateAdd(RMWI, Val);
|
/freebsd-current/contrib/llvm-project/llvm/lib/Transforms/IPO/ |
H A D | AttributorAttributes.cpp | 286 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 D | LLParser.cpp | 7971 AtomicRMWInst *RMWI = 7974 RMWI->setVolatile(isVolatile); 7975 Inst = RMWI;
|