/external/llvm/lib/Transforms/Scalar/ |
D | LowerAtomic.cpp | 43 static bool LowerAtomicRMWInst(AtomicRMWInst *RMWI) { in LowerAtomicRMWInst() argument 44 IRBuilder<> Builder(RMWI->getParent(), 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/ |
D | AtomicExpandPass.cpp | 88 auto RMWI = dyn_cast<AtomicRMWInst>(I); in runOnFunction() local 90 assert((LI || SI || RMWI || CASI || isa<FenceInst>(I)) && in runOnFunction() 106 } else if (RMWI && (isAtLeastRelease(RMWI->getOrdering()) || in runOnFunction() 107 isAtLeastAcquire(RMWI->getOrdering()))) { in runOnFunction() 108 FenceOrdering = RMWI->getOrdering(); in runOnFunction() 109 RMWI->setOrdering(Monotonic); in runOnFunction() 133 } else if (RMWI) { in runOnFunction() 139 if (isIdempotentRMW(RMWI) && simplifyIdempotentRMW(RMWI)) { in runOnFunction() 142 MadeChange |= tryExpandAtomicRMW(RMWI); in runOnFunction() 537 bool AtomicExpand::isIdempotentRMW(AtomicRMWInst* RMWI) { in isIdempotentRMW() argument [all …]
|
/external/llvm/lib/IR/ |
D | Instruction.cpp | 303 if (const AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(I1)) in haveSameSpecialState() local 304 return RMWI->getOperation() == cast<AtomicRMWInst>(I2)->getOperation() && in haveSameSpecialState() 305 RMWI->isVolatile() == cast<AtomicRMWInst>(I2)->isVolatile() && in haveSameSpecialState() 306 RMWI->getOrdering() == cast<AtomicRMWInst>(I2)->getOrdering() && in haveSameSpecialState() 307 RMWI->getSynchScope() == cast<AtomicRMWInst>(I2)->getSynchScope(); in haveSameSpecialState()
|
D | Verifier.cpp | 381 void visitAtomicRMWInst(AtomicRMWInst &RMWI); 2645 void Verifier::visitAtomicRMWInst(AtomicRMWInst &RMWI) { in visitAtomicRMWInst() argument 2646 Assert(RMWI.getOrdering() != NotAtomic, in visitAtomicRMWInst() 2647 "atomicrmw instructions must be atomic.", &RMWI); in visitAtomicRMWInst() 2648 Assert(RMWI.getOrdering() != Unordered, in visitAtomicRMWInst() 2649 "atomicrmw instructions cannot be unordered.", &RMWI); in visitAtomicRMWInst() 2650 PointerType *PTy = dyn_cast<PointerType>(RMWI.getOperand(0)->getType()); in visitAtomicRMWInst() 2651 Assert(PTy, "First atomicrmw operand must be a pointer.", &RMWI); in visitAtomicRMWInst() 2654 &RMWI, ElTy); in visitAtomicRMWInst() 2657 "atomicrmw operand must be power-of-two byte-sized integer", &RMWI, in visitAtomicRMWInst() [all …]
|
D | AsmWriter.cpp | 2690 if (const AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(&I)) in printInstruction() local 2691 writeAtomicRMWOperation(Out, RMWI->getOperation()); in printInstruction() 2953 } else if (const AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(&I)) { in printInstruction() local 2954 writeAtomic(RMWI->getOrdering(), RMWI->getSynchScope()); in printInstruction()
|
/external/llvm/lib/Analysis/ |
D | AliasAnalysis.cpp | 304 AliasAnalysis::getLocation(const AtomicRMWInst *RMWI) { in getLocation() argument 306 RMWI->getAAMetadata(AATags); in getLocation() 308 return Location(RMWI->getPointerOperand(), in getLocation() 309 getTypeStoreSize(RMWI->getValOperand()->getType()), AATags); in getLocation()
|
/external/llvm/lib/Transforms/Instrumentation/ |
D | ThreadSanitizer.cpp | 530 } else if (AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(I)) { in instrumentAtomic() local 531 Value *Addr = RMWI->getPointerOperand(); in instrumentAtomic() 535 Function *F = TsanAtomicRMW[RMWI->getOperation()][Idx]; in instrumentAtomic() 543 IRB.CreateIntCast(RMWI->getValOperand(), Ty, false), in instrumentAtomic() 544 createOrdering(&IRB, RMWI->getOrdering())}; in instrumentAtomic()
|
/external/llvm/lib/Target/SystemZ/ |
D | SystemZPatterns.td | 43 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/lib/Transforms/IPO/ |
D | MergeFunctions.cpp | 825 if (const AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(L)) { in cmpOperations() local 826 if (int Res = cmpNumbers(RMWI->getOperation(), in cmpOperations() 829 if (int Res = cmpNumbers(RMWI->isVolatile(), in cmpOperations() 832 if (int Res = cmpNumbers(RMWI->getOrdering(), in cmpOperations() 835 return cmpNumbers(RMWI->getSynchScope(), in cmpOperations()
|
/external/clang/lib/CodeGen/ |
D | CGAtomic.cpp | 597 llvm::AtomicRMWInst *RMWI = in EmitAtomicOp() local 599 RMWI->setVolatile(E->isVolatile()); in EmitAtomicOp() 603 llvm::Value *Result = RMWI; in EmitAtomicOp() 605 Result = CGF.Builder.CreateBinOp(PostOp, RMWI, LoadVal1); in EmitAtomicOp()
|
D | CGBuiltin.cpp | 1650 AtomicRMWInst *RMWI = Builder.CreateAtomicRMW( in EmitBuiltinExpr() local 1655 RMWI->setVolatile(true); in EmitBuiltinExpr() 1656 return RValue::get(Builder.CreateAdd(RMWI, ConstantInt::get(Int32Ty, 1))); in EmitBuiltinExpr() 1659 AtomicRMWInst *RMWI = Builder.CreateAtomicRMW( in EmitBuiltinExpr() local 1664 RMWI->setVolatile(true); in EmitBuiltinExpr() 1665 return RValue::get(Builder.CreateSub(RMWI, ConstantInt::get(Int32Ty, 1))); in EmitBuiltinExpr() 1668 AtomicRMWInst *RMWI = Builder.CreateAtomicRMW( in EmitBuiltinExpr() local 1673 RMWI->setVolatile(true); in EmitBuiltinExpr() 1674 return RValue::get(RMWI); in EmitBuiltinExpr()
|
/external/llvm/include/llvm/Analysis/ |
D | AliasAnalysis.h | 145 Location getLocation(const AtomicRMWInst *RMWI);
|
/external/llvm/lib/Transforms/Utils/ |
D | InlineFunction.cpp | 473 else if (const AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(I)) in AddAliasScopeMetadata() local 474 PtrArgs.push_back(RMWI->getPointerOperand()); in AddAliasScopeMetadata()
|
D | SimplifyCFG.cpp | 3031 } else if (AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(BBI)) { in SimplifyUnreachable() local 3032 if (RMWI->isVolatile()) in SimplifyUnreachable()
|
/external/llvm/include/llvm/Target/ |
D | TargetLowering.h | 1112 virtual LoadInst *lowerIdempotentRMWIntoFencedLoad(AtomicRMWInst *RMWI) const { in lowerIdempotentRMWIntoFencedLoad() argument
|
/external/llvm/lib/AsmParser/ |
D | LLParser.cpp | 5473 AtomicRMWInst *RMWI = in ParseAtomicRMW() local 5475 RMWI->setVolatile(isVolatile); in ParseAtomicRMW() 5476 Inst = RMWI; in ParseAtomicRMW()
|