Searched refs:AtomicRMWInst (Results 1 - 25 of 30) sorted by relevance

12

/external/llvm/lib/Target/X86/
H A DX86AtomicExpandPass.cpp59 bool shouldExpandAtomicRMW(AtomicRMWInst *AI);
61 bool expandAtomicRMW(AtomicRMWInst *AI);
79 if (isa<AtomicRMWInst>(&Inst) ||
89 if (AtomicRMWInst *AI = dyn_cast<AtomicRMWInst>(Inst))
120 bool X86AtomicExpandPass::shouldExpandAtomicRMW(AtomicRMWInst *AI) {
130 AtomicRMWInst::BinOp Op = AI->getOperation();
134 case AtomicRMWInst::Xchg:
135 case AtomicRMWInst::Add:
136 case AtomicRMWInst
[all...]
/external/llvm/lib/Transforms/Scalar/
H A DLowerAtomic.cpp43 static bool LowerAtomicRMWInst(AtomicRMWInst *RMWI) {
53 case AtomicRMWInst::Xchg:
56 case AtomicRMWInst::Add:
59 case AtomicRMWInst::Sub:
62 case AtomicRMWInst::And:
65 case AtomicRMWInst::Nand:
68 case AtomicRMWInst::Or:
71 case AtomicRMWInst::Xor:
74 case AtomicRMWInst::Max:
78 case AtomicRMWInst
[all...]
/external/llvm/lib/CodeGen/
H A DAtomicExpandLoadLinkedPass.cpp45 bool expandAtomicRMW(AtomicRMWInst *AI);
73 if (isa<AtomicRMWInst>(&Inst) || isa<AtomicCmpXchgInst>(&Inst) ||
84 if (AtomicRMWInst *AI = dyn_cast<AtomicRMWInst>(Inst))
125 AtomicRMWInst *AI =
126 Builder.CreateAtomicRMW(AtomicRMWInst::Xchg, SI->getPointerOperand(),
134 bool AtomicExpandLoadLinked::expandAtomicRMW(AtomicRMWInst *AI) {
176 case AtomicRMWInst::Xchg:
179 case AtomicRMWInst::Add:
182 case AtomicRMWInst
[all...]
/external/llvm/lib/Transforms/Instrumentation/
H A DThreadSanitizer.cpp104 Function *TsanAtomicRMW[AtomicRMWInst::LAST_BINOP + 1][kNumberOfAccessSizes];
166 for (int op = AtomicRMWInst::FIRST_BINOP;
167 op <= AtomicRMWInst::LAST_BINOP; ++op) {
170 if (op == AtomicRMWInst::Xchg)
172 else if (op == AtomicRMWInst::Add)
174 else if (op == AtomicRMWInst::Sub)
176 else if (op == AtomicRMWInst::And)
178 else if (op == AtomicRMWInst::Or)
180 else if (op == AtomicRMWInst::Xor)
182 else if (op == AtomicRMWInst
[all...]
H A DBoundsChecking.cpp184 isa<AtomicRMWInst>(I))
200 } else if (AtomicRMWInst *AI = dyn_cast<AtomicRMWInst>(Inst)) {
H A DAddressSanitizer.cpp671 if (AtomicRMWInst *RMW = dyn_cast<AtomicRMWInst>(I)) {
/external/llvm/lib/IR/
H A DInstruction.cpp309 if (const AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(I1))
310 return RMWI->getOperation() == cast<AtomicRMWInst>(I2)->getOperation() &&
311 RMWI->isVolatile() == cast<AtomicRMWInst>(I2)->isVolatile() &&
312 RMWI->getOrdering() == cast<AtomicRMWInst>(I2)->getOrdering() &&
313 RMWI->getSynchScope() == cast<AtomicRMWInst>(I2)->getSynchScope();
H A DAsmWriter.cpp715 AtomicRMWInst::BinOp Op) {
718 case AtomicRMWInst::Xchg: Out << " xchg"; break;
719 case AtomicRMWInst::Add: Out << " add"; break;
720 case AtomicRMWInst::Sub: Out << " sub"; break;
721 case AtomicRMWInst::And: Out << " and"; break;
722 case AtomicRMWInst::Nand: Out << " nand"; break;
723 case AtomicRMWInst::Or: Out << " or"; break;
724 case AtomicRMWInst::Xor: Out << " xor"; break;
725 case AtomicRMWInst::Max: Out << " max"; break;
726 case AtomicRMWInst
[all...]
H A DInstructions.cpp1276 // AtomicRMWInst Implementation
1279 void AtomicRMWInst::Init(BinOp Operation, Value *Ptr, Value *Val,
1299 AtomicRMWInst::AtomicRMWInst(BinOp Operation, Value *Ptr, Value *Val, function in class:AtomicRMWInst
1304 OperandTraits<AtomicRMWInst>::op_begin(this),
1305 OperandTraits<AtomicRMWInst>::operands(this),
1310 AtomicRMWInst::AtomicRMWInst(BinOp Operation, Value *Ptr, Value *Val, function in class:AtomicRMWInst
1315 OperandTraits<AtomicRMWInst>::op_begin(this),
1316 OperandTraits<AtomicRMWInst>
[all...]
H A DCore.cpp2571 AtomicRMWInst::BinOp intop;
2573 case LLVMAtomicRMWBinOpXchg: intop = AtomicRMWInst::Xchg; break;
2574 case LLVMAtomicRMWBinOpAdd: intop = AtomicRMWInst::Add; break;
2575 case LLVMAtomicRMWBinOpSub: intop = AtomicRMWInst::Sub; break;
2576 case LLVMAtomicRMWBinOpAnd: intop = AtomicRMWInst::And; break;
2577 case LLVMAtomicRMWBinOpNand: intop = AtomicRMWInst::Nand; break;
2578 case LLVMAtomicRMWBinOpOr: intop = AtomicRMWInst::Or; break;
2579 case LLVMAtomicRMWBinOpXor: intop = AtomicRMWInst::Xor; break;
2580 case LLVMAtomicRMWBinOpMax: intop = AtomicRMWInst::Max; break;
2581 case LLVMAtomicRMWBinOpMin: intop = AtomicRMWInst
[all...]
/external/llvm/include/llvm/Analysis/
H A DAliasAnalysis.h148 Location getLocation(const AtomicRMWInst *RMWI);
371 return getModRefInfo((const AtomicRMWInst*)I, Loc);
462 ModRefResult getModRefInfo(const AtomicRMWInst *RMW, const Location &Loc);
465 ModRefResult getModRefInfo(const AtomicRMWInst *RMW,
/external/clang/lib/CodeGen/
H A DCGAtomic.cpp310 llvm::AtomicRMWInst::BinOp Op = llvm::AtomicRMWInst::Add;
383 Op = llvm::AtomicRMWInst::Xchg;
391 Op = llvm::AtomicRMWInst::Add;
399 Op = llvm::AtomicRMWInst::Sub;
407 Op = llvm::AtomicRMWInst::And;
415 Op = llvm::AtomicRMWInst::Or;
423 Op = llvm::AtomicRMWInst::Xor;
430 Op = llvm::AtomicRMWInst::Nand;
436 llvm::AtomicRMWInst *RMW
[all...]
H A DCGBuiltin.cpp81 llvm::AtomicRMWInst::BinOp Kind,
114 llvm::AtomicRMWInst::BinOp Kind,
882 return EmitBinaryAtomic(*this, llvm::AtomicRMWInst::Add, E);
888 return EmitBinaryAtomic(*this, llvm::AtomicRMWInst::Sub, E);
894 return EmitBinaryAtomic(*this, llvm::AtomicRMWInst::Or, E);
900 return EmitBinaryAtomic(*this, llvm::AtomicRMWInst::And, E);
906 return EmitBinaryAtomic(*this, llvm::AtomicRMWInst::Xor, E);
910 return EmitBinaryAtomic(*this, llvm::AtomicRMWInst::Min, E);
912 return EmitBinaryAtomic(*this, llvm::AtomicRMWInst::Max, E);
914 return EmitBinaryAtomic(*this, llvm::AtomicRMWInst
[all...]
H A DCGExprScalar.cpp1567 return Builder.CreateAtomicRMW(llvm::AtomicRMWInst::Xchg,
1578 llvm::AtomicRMWInst::BinOp aop = isInc ? llvm::AtomicRMWInst::Add :
1579 llvm::AtomicRMWInst::Sub;
2020 llvm::AtomicRMWInst::BinOp aop = llvm::AtomicRMWInst::BAD_BINOP;
2029 aop = llvm::AtomicRMWInst::Add;
2032 aop = llvm::AtomicRMWInst::Sub;
2035 aop = llvm::AtomicRMWInst::And;
2038 aop = llvm::AtomicRMWInst
[all...]
/external/llvm/lib/Bitcode/Writer/
H A DBitcodeWriter.cpp109 static unsigned GetEncodedRMWOperation(AtomicRMWInst::BinOp Op) {
112 case AtomicRMWInst::Xchg: return bitc::RMW_XCHG;
113 case AtomicRMWInst::Add: return bitc::RMW_ADD;
114 case AtomicRMWInst::Sub: return bitc::RMW_SUB;
115 case AtomicRMWInst::And: return bitc::RMW_AND;
116 case AtomicRMWInst::Nand: return bitc::RMW_NAND;
117 case AtomicRMWInst::Or: return bitc::RMW_OR;
118 case AtomicRMWInst::Xor: return bitc::RMW_XOR;
119 case AtomicRMWInst::Max: return bitc::RMW_MAX;
120 case AtomicRMWInst
[all...]
/external/llvm/lib/Target/CppBackend/
H A DCPPBackend.cpp1587 const AtomicRMWInst *rmwi = cast<AtomicRMWInst>(I);
1592 case AtomicRMWInst::Xchg: Operation = "AtomicRMWInst::Xchg"; break;
1593 case AtomicRMWInst::Add: Operation = "AtomicRMWInst::Add"; break;
1594 case AtomicRMWInst::Sub: Operation = "AtomicRMWInst::Sub"; break;
1595 case AtomicRMWInst::And: Operation = "AtomicRMWInst
[all...]
/external/llvm/lib/Transforms/IPO/
H A DMergeFunctions.cpp820 if (const AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(L)) {
822 cast<AtomicRMWInst>(R)->getOperation()))
825 cast<AtomicRMWInst>(R)->isVolatile()))
828 cast<AtomicRMWInst>(R)->getOrdering()))
831 cast<AtomicRMWInst>(R)->getSynchScope());
/external/llvm/lib/Analysis/
H A DAliasAnalysis.cpp275 AliasAnalysis::getLocation(const AtomicRMWInst *RMWI) {
374 AliasAnalysis::getModRefInfo(const AtomicRMWInst *RMW, const Location &Loc) {
/external/llvm/lib/Bitcode/Reader/
H A DBitcodeReader.cpp169 static AtomicRMWInst::BinOp GetDecodedRMWOperation(unsigned Val) {
171 default: return AtomicRMWInst::BAD_BINOP;
172 case bitc::RMW_XCHG: return AtomicRMWInst::Xchg;
173 case bitc::RMW_ADD: return AtomicRMWInst::Add;
174 case bitc::RMW_SUB: return AtomicRMWInst::Sub;
175 case bitc::RMW_AND: return AtomicRMWInst::And;
176 case bitc::RMW_NAND: return AtomicRMWInst::Nand;
177 case bitc::RMW_OR: return AtomicRMWInst::Or;
178 case bitc::RMW_XOR: return AtomicRMWInst::Xor;
179 case bitc::RMW_MAX: return AtomicRMWInst
[all...]
/external/llvm/include/llvm/IR/
H A DInstVisitor.h178 RetTy visitAtomicRMWInst(AtomicRMWInst &I) { DELEGATE(Instruction);}
H A DInstructions.h615 // AtomicRMWInst Class
618 /// AtomicRMWInst - an instruction that atomically reads a memory location,
622 class AtomicRMWInst : public Instruction { class in namespace:llvm
625 AtomicRMWInst *clone_impl() const override;
664 AtomicRMWInst(BinOp Operation, Value *Ptr, Value *Val,
667 AtomicRMWInst(BinOp Operation, Value *Ptr, Value *Val,
754 struct OperandTraits<AtomicRMWInst>
755 : public FixedNumOperandTraits<AtomicRMWInst,2> {
758 DEFINE_TRANSPARENT_OPERAND_ACCESSORS(AtomicRMWInst, Value)
H A DIRBuilder.h952 AtomicRMWInst *CreateAtomicRMW(AtomicRMWInst::BinOp Op, Value *Ptr, Value *Val,
955 return Insert(new AtomicRMWInst(Op, Ptr, Val, Ordering, SynchScope));
/external/llvm/lib/AsmParser/
H A DLLParser.cpp4418 AtomicRMWInst::BinOp Operation;
4425 case lltok::kw_xchg: Operation = AtomicRMWInst::Xchg; break;
4426 case lltok::kw_add: Operation = AtomicRMWInst::Add; break;
4427 case lltok::kw_sub: Operation = AtomicRMWInst::Sub; break;
4428 case lltok::kw_and: Operation = AtomicRMWInst::And; break;
4429 case lltok::kw_nand: Operation = AtomicRMWInst::Nand; break;
4430 case lltok::kw_or: Operation = AtomicRMWInst::Or; break;
4431 case lltok::kw_xor: Operation = AtomicRMWInst::Xor; break;
4432 case lltok::kw_max: Operation = AtomicRMWInst::Max; break;
4433 case lltok::kw_min: Operation = AtomicRMWInst
[all...]
/external/llvm/lib/CodeGen/SelectionDAG/
H A DSelectionDAGBuilder.h747 void visitAtomicRMW(const AtomicRMWInst &I);
H A DSelectionDAGBuilder.cpp3652 void SelectionDAGBuilder::visitAtomicRMW(const AtomicRMWInst &I) {
3657 case AtomicRMWInst::Xchg: NT = ISD::ATOMIC_SWAP; break;
3658 case AtomicRMWInst::Add: NT = ISD::ATOMIC_LOAD_ADD; break;
3659 case AtomicRMWInst::Sub: NT = ISD::ATOMIC_LOAD_SUB; break;
3660 case AtomicRMWInst::And: NT = ISD::ATOMIC_LOAD_AND; break;
3661 case AtomicRMWInst::Nand: NT = ISD::ATOMIC_LOAD_NAND; break;
3662 case AtomicRMWInst::Or: NT = ISD::ATOMIC_LOAD_OR; break;
3663 case AtomicRMWInst::Xor: NT = ISD::ATOMIC_LOAD_XOR; break;
3664 case AtomicRMWInst::Max: NT = ISD::ATOMIC_LOAD_MAX; break;
3665 case AtomicRMWInst
[all...]

Completed in 477 milliseconds

12