/openbsd-current/gnu/llvm/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...] |
/openbsd-current/gnu/llvm/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);
|
/openbsd-current/gnu/llvm/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);
|
/openbsd-current/gnu/llvm/llvm/lib/Transforms/Utils/ |
H A D | LowerAtomic.cpp | 103 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 D | FunctionComparator.cpp | 668 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 D | InlineFunction.cpp | 1183 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 D | LowerAtomicPass.cpp | 47 else if (AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(&Inst)) 48 Changed |= lowerAtomicRMWInst(RMWI);
|
/openbsd-current/gnu/llvm/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)) { 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 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());
|
/openbsd-current/gnu/llvm/llvm/lib/Transforms/Instrumentation/ |
H A D | ThreadSanitizer.cpp | 751 } 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 D | Instruction.cpp | 537 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 D | Verifier.cpp | 541 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 D | AsmWriter.cpp | 4088 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 D | Core.cpp | 2009 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 D | MemoryLocation.h | 242 static MemoryLocation get(const AtomicRMWInst *RMWI);
|
/openbsd-current/gnu/llvm/clang/lib/CodeGen/ |
H A D | CGAtomic.cpp | 694 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 D | CGBuiltin.cpp | 11063 AtomicRMWInst *RMWI = Builder.CreateAtomicRMW( 11066 return Builder.CreateAdd(RMWI, Arg1);
|
/openbsd-current/gnu/llvm/llvm/include/llvm/CodeGen/ |
H A D | TargetLowering.h | 2162 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 D | AttributorAttributes.cpp | 258 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 D | LLParser.cpp | 7811 AtomicRMWInst *RMWI = 7814 RMWI->setVolatile(isVolatile); 7815 Inst = RMWI;
|