Home
last modified time | relevance | path

Searched refs:RMWI (Results 1 – 16 of 16) sorted by relevance

/external/llvm/lib/Transforms/Scalar/
DLowerAtomic.cpp43 static bool LowerAtomicRMWInst(AtomicRMWInst *RMWI) { in LowerAtomicRMWInst() argument
44 IRBuilder<> Builder(RMWI); in LowerAtomicRMWInst()
45 Value *Ptr = RMWI->getPointerOperand(); in LowerAtomicRMWInst()
46 Value *Val = RMWI->getValOperand(); in LowerAtomicRMWInst()
51 switch (RMWI->getOperation()) { in LowerAtomicRMWInst()
92 RMWI->replaceAllUsesWith(Orig); in LowerAtomicRMWInst()
93 RMWI->eraseFromParent(); in LowerAtomicRMWInst()
128 else if (AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(Inst)) in runOnBasicBlock() local
129 Changed |= LowerAtomicRMWInst(RMWI); in runOnBasicBlock()
/external/llvm/lib/CodeGen/
DAtomicExpandPass.cpp97 auto RMWI = dyn_cast<AtomicRMWInst>(I); in runOnFunction() local
99 assert((LI || SI || RMWI || CASI || isa<FenceInst>(I)) && in runOnFunction()
115 } else if (RMWI && (isAtLeastRelease(RMWI->getOrdering()) || in runOnFunction()
116 isAtLeastAcquire(RMWI->getOrdering()))) { in runOnFunction()
117 FenceOrdering = RMWI->getOrdering(); in runOnFunction()
118 RMWI->setOrdering(Monotonic); in runOnFunction()
160 } else if (RMWI) { in runOnFunction()
166 if (isIdempotentRMW(RMWI) && simplifyIdempotentRMW(RMWI)) { in runOnFunction()
169 MadeChange |= tryExpandAtomicRMW(RMWI); in runOnFunction()
595 bool AtomicExpand::isIdempotentRMW(AtomicRMWInst* RMWI) { in isIdempotentRMW() argument
[all …]
/external/llvm/lib/Analysis/
DMemoryLocation.cpp57 MemoryLocation MemoryLocation::get(const AtomicRMWInst *RMWI) { in get() argument
59 RMWI->getAAMetadata(AATags); in get()
60 const auto &DL = RMWI->getModule()->getDataLayout(); in get()
62 return MemoryLocation(RMWI->getPointerOperand(), in get()
63 DL.getTypeStoreSize(RMWI->getValOperand()->getType()), in get()
/external/llvm/lib/IR/
DInstruction.cpp320 if (const AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(I1)) in haveSameSpecialState() local
321 return RMWI->getOperation() == cast<AtomicRMWInst>(I2)->getOperation() && in haveSameSpecialState()
322 RMWI->isVolatile() == cast<AtomicRMWInst>(I2)->isVolatile() && in haveSameSpecialState()
323 RMWI->getOrdering() == cast<AtomicRMWInst>(I2)->getOrdering() && in haveSameSpecialState()
324 RMWI->getSynchScope() == cast<AtomicRMWInst>(I2)->getSynchScope(); in haveSameSpecialState()
DVerifier.cpp396 void visitAtomicRMWInst(AtomicRMWInst &RMWI);
2848 void Verifier::visitAtomicRMWInst(AtomicRMWInst &RMWI) { in visitAtomicRMWInst() argument
2849 Assert(RMWI.getOrdering() != NotAtomic, in visitAtomicRMWInst()
2850 "atomicrmw instructions must be atomic.", &RMWI); in visitAtomicRMWInst()
2851 Assert(RMWI.getOrdering() != Unordered, in visitAtomicRMWInst()
2852 "atomicrmw instructions cannot be unordered.", &RMWI); in visitAtomicRMWInst()
2853 PointerType *PTy = dyn_cast<PointerType>(RMWI.getOperand(0)->getType()); in visitAtomicRMWInst()
2854 Assert(PTy, "First atomicrmw operand must be a pointer.", &RMWI); in visitAtomicRMWInst()
2857 &RMWI, ElTy); in visitAtomicRMWInst()
2858 checkAtomicMemAccessSize(M, ElTy, &RMWI); in visitAtomicRMWInst()
[all …]
DAsmWriter.cpp2802 if (const AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(&I)) in printInstruction() local
2803 writeAtomicRMWOperation(Out, RMWI->getOperation()); in printInstruction()
3105 } else if (const AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(&I)) { in printInstruction() local
3106 writeAtomic(RMWI->getOrdering(), RMWI->getSynchScope()); in printInstruction()
/external/llvm/lib/Transforms/Instrumentation/
DThreadSanitizer.cpp537 } else if (AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(I)) { in instrumentAtomic() local
538 Value *Addr = RMWI->getPointerOperand(); in instrumentAtomic()
542 Function *F = TsanAtomicRMW[RMWI->getOperation()][Idx]; in instrumentAtomic()
550 IRB.CreateIntCast(RMWI->getValOperand(), Ty, false), in instrumentAtomic()
551 createOrdering(&IRB, RMWI->getOrdering())}; in instrumentAtomic()
/external/llvm/lib/Target/SystemZ/
DSystemZPatterns.td43 class RMWI<SDPatternOperator load, SDPatternOperator operator,
53 def : RMWI<anyextloadi8, operator, truncstorei8, mode, imm32, insn>;
54 def : RMWI<anyextloadi8, operator, truncstorei8, mode, imm64, insn>;
/external/llvm/include/llvm/Analysis/
DMemoryLocation.h69 static MemoryLocation get(const AtomicRMWInst *RMWI);
/external/llvm/lib/Transforms/IPO/
DMergeFunctions.cpp1033 if (const AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(L)) { in cmpOperations() local
1034 if (int Res = cmpNumbers(RMWI->getOperation(), in cmpOperations()
1037 if (int Res = cmpNumbers(RMWI->isVolatile(), in cmpOperations()
1040 if (int Res = cmpNumbers(RMWI->getOrdering(), in cmpOperations()
1043 return cmpNumbers(RMWI->getSynchScope(), in cmpOperations()
/external/clang/lib/CodeGen/
DCGAtomic.cpp624 llvm::AtomicRMWInst *RMWI = in EmitAtomicOp() local
626 RMWI->setVolatile(E->isVolatile()); in EmitAtomicOp()
630 llvm::Value *Result = RMWI; in EmitAtomicOp()
632 Result = CGF.Builder.CreateBinOp(PostOp, RMWI, LoadVal1); in EmitAtomicOp()
DCGBuiltin.cpp1862 AtomicRMWInst *RMWI = Builder.CreateAtomicRMW( in EmitBuiltinExpr() local
1867 RMWI->setVolatile(true); in EmitBuiltinExpr()
1868 return RValue::get(Builder.CreateAdd(RMWI, ConstantInt::get(Int32Ty, 1))); in EmitBuiltinExpr()
1871 AtomicRMWInst *RMWI = Builder.CreateAtomicRMW( in EmitBuiltinExpr() local
1876 RMWI->setVolatile(true); in EmitBuiltinExpr()
1877 return RValue::get(Builder.CreateSub(RMWI, ConstantInt::get(Int32Ty, 1))); in EmitBuiltinExpr()
1880 AtomicRMWInst *RMWI = Builder.CreateAtomicRMW( in EmitBuiltinExpr() local
1885 RMWI->setVolatile(true); in EmitBuiltinExpr()
1886 return RValue::get(RMWI); in EmitBuiltinExpr()
/external/llvm/lib/Transforms/Utils/
DInlineFunction.cpp576 else if (const AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(I)) in AddAliasScopeMetadata() local
577 PtrArgs.push_back(RMWI->getPointerOperand()); in AddAliasScopeMetadata()
DSimplifyCFG.cpp3457 } else if (AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(BBI)) { in SimplifyUnreachable() local
3458 if (RMWI->isVolatile()) in SimplifyUnreachable()
/external/llvm/include/llvm/Target/
DTargetLowering.h1165 lowerIdempotentRMWIntoFencedLoad(AtomicRMWInst *RMWI) const { in lowerIdempotentRMWIntoFencedLoad() argument
/external/llvm/lib/AsmParser/
DLLParser.cpp5970 AtomicRMWInst *RMWI = in ParseAtomicRMW() local
5972 RMWI->setVolatile(isVolatile); in ParseAtomicRMW()
5973 Inst = RMWI; in ParseAtomicRMW()