Home
last modified time | relevance | path

Searched refs:AtomicRMWInst (Results 1 – 25 of 207) sorted by relevance

123456789

/external/llvm-project/llvm/lib/Transforms/InstCombine/
DInstCombineAtomicRMW.cpp25 bool isIdempotentRMW(AtomicRMWInst& RMWI) { in isIdempotentRMW()
28 case AtomicRMWInst::FAdd: // -0.0 in isIdempotentRMW()
30 case AtomicRMWInst::FSub: // +0.0 in isIdempotentRMW()
41 case AtomicRMWInst::Add: in isIdempotentRMW()
42 case AtomicRMWInst::Sub: in isIdempotentRMW()
43 case AtomicRMWInst::Or: in isIdempotentRMW()
44 case AtomicRMWInst::Xor: in isIdempotentRMW()
46 case AtomicRMWInst::And: in isIdempotentRMW()
48 case AtomicRMWInst::Min: in isIdempotentRMW()
50 case AtomicRMWInst::Max: in isIdempotentRMW()
[all …]
/external/swiftshader/third_party/llvm-10.0/llvm/lib/Transforms/InstCombine/
DInstCombineAtomicRMW.cpp23 bool isIdempotentRMW(AtomicRMWInst& RMWI) { in isIdempotentRMW()
26 case AtomicRMWInst::FAdd: // -0.0 in isIdempotentRMW()
28 case AtomicRMWInst::FSub: // +0.0 in isIdempotentRMW()
39 case AtomicRMWInst::Add: in isIdempotentRMW()
40 case AtomicRMWInst::Sub: in isIdempotentRMW()
41 case AtomicRMWInst::Or: in isIdempotentRMW()
42 case AtomicRMWInst::Xor: in isIdempotentRMW()
44 case AtomicRMWInst::And: in isIdempotentRMW()
46 case AtomicRMWInst::Min: in isIdempotentRMW()
48 case AtomicRMWInst::Max: in isIdempotentRMW()
[all …]
/external/llvm-project/llvm/lib/Target/AMDGPU/
DAMDGPUAtomicOptimizer.cpp35 AtomicRMWInst::BinOp Op;
50 Value *buildScan(IRBuilder<> &B, AtomicRMWInst::BinOp Op, Value *V,
53 void optimizeAtomic(Instruction &I, AtomicRMWInst::BinOp Op, unsigned ValIdx,
69 void visitAtomicRMWInst(AtomicRMWInst &I);
107 void AMDGPUAtomicOptimizer::visitAtomicRMWInst(AtomicRMWInst &I) { in visitAtomicRMWInst()
117 AtomicRMWInst::BinOp Op = I.getOperation(); in visitAtomicRMWInst()
122 case AtomicRMWInst::Add: in visitAtomicRMWInst()
123 case AtomicRMWInst::Sub: in visitAtomicRMWInst()
124 case AtomicRMWInst::And: in visitAtomicRMWInst()
125 case AtomicRMWInst::Or: in visitAtomicRMWInst()
[all …]
/external/swiftshader/third_party/llvm-10.0/llvm/lib/Target/AMDGPU/
DAMDGPUAtomicOptimizer.cpp35 AtomicRMWInst::BinOp Op;
50 Value *buildScan(IRBuilder<> &B, AtomicRMWInst::BinOp Op, Value *V,
53 void optimizeAtomic(Instruction &I, AtomicRMWInst::BinOp Op, unsigned ValIdx,
69 void visitAtomicRMWInst(AtomicRMWInst &I);
107 void AMDGPUAtomicOptimizer::visitAtomicRMWInst(AtomicRMWInst &I) { in visitAtomicRMWInst()
117 AtomicRMWInst::BinOp Op = I.getOperation(); in visitAtomicRMWInst()
122 case AtomicRMWInst::Add: in visitAtomicRMWInst()
123 case AtomicRMWInst::Sub: in visitAtomicRMWInst()
124 case AtomicRMWInst::And: in visitAtomicRMWInst()
125 case AtomicRMWInst::Or: in visitAtomicRMWInst()
[all …]
/external/swiftshader/third_party/llvm-10.0/llvm/lib/Transforms/Scalar/
DLowerAtomic.cpp43 static bool LowerAtomicRMWInst(AtomicRMWInst *RMWI) { in LowerAtomicRMWInst()
53 case AtomicRMWInst::Xchg: in LowerAtomicRMWInst()
56 case AtomicRMWInst::Add: in LowerAtomicRMWInst()
59 case AtomicRMWInst::Sub: in LowerAtomicRMWInst()
62 case AtomicRMWInst::And: in LowerAtomicRMWInst()
65 case AtomicRMWInst::Nand: in LowerAtomicRMWInst()
68 case AtomicRMWInst::Or: in LowerAtomicRMWInst()
71 case AtomicRMWInst::Xor: in LowerAtomicRMWInst()
74 case AtomicRMWInst::Max: in LowerAtomicRMWInst()
78 case AtomicRMWInst::Min: in LowerAtomicRMWInst()
[all …]
/external/llvm-project/llvm/lib/Transforms/Scalar/
DLowerAtomic.cpp43 static bool LowerAtomicRMWInst(AtomicRMWInst *RMWI) { in LowerAtomicRMWInst()
53 case AtomicRMWInst::Xchg: in LowerAtomicRMWInst()
56 case AtomicRMWInst::Add: in LowerAtomicRMWInst()
59 case AtomicRMWInst::Sub: in LowerAtomicRMWInst()
62 case AtomicRMWInst::And: in LowerAtomicRMWInst()
65 case AtomicRMWInst::Nand: in LowerAtomicRMWInst()
68 case AtomicRMWInst::Or: in LowerAtomicRMWInst()
71 case AtomicRMWInst::Xor: in LowerAtomicRMWInst()
74 case AtomicRMWInst::Max: in LowerAtomicRMWInst()
78 case AtomicRMWInst::Min: in LowerAtomicRMWInst()
[all …]
/external/llvm/lib/Transforms/Scalar/
DLowerAtomic.cpp44 static bool LowerAtomicRMWInst(AtomicRMWInst *RMWI) { in LowerAtomicRMWInst()
54 case AtomicRMWInst::Xchg: in LowerAtomicRMWInst()
57 case AtomicRMWInst::Add: in LowerAtomicRMWInst()
60 case AtomicRMWInst::Sub: in LowerAtomicRMWInst()
63 case AtomicRMWInst::And: in LowerAtomicRMWInst()
66 case AtomicRMWInst::Nand: in LowerAtomicRMWInst()
69 case AtomicRMWInst::Or: in LowerAtomicRMWInst()
72 case AtomicRMWInst::Xor: in LowerAtomicRMWInst()
75 case AtomicRMWInst::Max: in LowerAtomicRMWInst()
79 case AtomicRMWInst::Min: in LowerAtomicRMWInst()
[all …]
/external/swiftshader/third_party/llvm-10.0/llvm/lib/CodeGen/
DAtomicExpandPass.cpp80 bool tryExpandAtomicRMW(AtomicRMWInst *AI);
89 AtomicRMWInst *I,
91 AtomicRMWInst *widenPartwordAtomicRMW(AtomicRMWInst *AI);
93 void expandAtomicRMWToMaskedIntrinsic(AtomicRMWInst *AI);
105 bool isIdempotentRMW(AtomicRMWInst *RMWI);
106 bool simplifyIdempotentRMW(AtomicRMWInst *RMWI);
115 void expandAtomicRMWToLibcall(AtomicRMWInst *I);
119 llvm::expandAtomicRMWToCmpXchg(AtomicRMWInst *AI,
145 static unsigned getAtomicOpSize(AtomicRMWInst *RMWI) { in getAtomicOpSize()
174 static unsigned getAtomicOpAlign(AtomicRMWInst *RMWI) { in getAtomicOpAlign()
[all …]
/external/llvm-project/llvm/lib/CodeGen/
DAtomicExpandPass.cpp80 bool tryExpandAtomicRMW(AtomicRMWInst *AI);
89 AtomicRMWInst *I,
91 AtomicRMWInst *widenPartwordAtomicRMW(AtomicRMWInst *AI);
93 void expandAtomicRMWToMaskedIntrinsic(AtomicRMWInst *AI);
105 bool isIdempotentRMW(AtomicRMWInst *RMWI);
106 bool simplifyIdempotentRMW(AtomicRMWInst *RMWI);
115 void expandAtomicRMWToLibcall(AtomicRMWInst *I);
119 llvm::expandAtomicRMWToCmpXchg(AtomicRMWInst *AI,
145 static unsigned getAtomicOpSize(AtomicRMWInst *RMWI) { in getAtomicOpSize()
190 auto RMWI = dyn_cast<AtomicRMWInst>(I); in runOnFunction()
[all …]
/external/llvm/lib/CodeGen/
DAtomicExpandPass.cpp59 bool tryExpandAtomicRMW(AtomicRMWInst *AI);
68 AtomicRMWInst *I,
80 bool isIdempotentRMW(AtomicRMWInst *AI);
81 bool simplifyIdempotentRMW(AtomicRMWInst *AI);
90 void expandAtomicRMWToLibcall(AtomicRMWInst *I);
94 llvm::expandAtomicRMWToCmpXchg(AtomicRMWInst *AI,
120 unsigned getAtomicOpSize(AtomicRMWInst *RMWI) { in getAtomicOpSize()
149 unsigned getAtomicOpAlign(AtomicRMWInst *RMWI) { in getAtomicOpAlign()
194 auto RMWI = dyn_cast<AtomicRMWInst>(I); in runOnFunction()
468 AtomicRMWInst *AI = in expandAtomicStore()
[all …]
/external/mesa3d/src/amd/llvm/
Dac_llvm_helper.cpp277 llvm::AtomicRMWInst::BinOp binop;
280 binop = llvm::AtomicRMWInst::Xchg;
283 binop = llvm::AtomicRMWInst::Add;
286 binop = llvm::AtomicRMWInst::Sub;
289 binop = llvm::AtomicRMWInst::And;
292 binop = llvm::AtomicRMWInst::Nand;
295 binop = llvm::AtomicRMWInst::Or;
298 binop = llvm::AtomicRMWInst::Xor;
301 binop = llvm::AtomicRMWInst::Max;
304 binop = llvm::AtomicRMWInst::Min;
[all …]
/external/llvm-project/llvm/lib/Target/RISCV/
DRISCVExpandAtomicPseudoInsts.cpp51 MachineBasicBlock::iterator MBBI, AtomicRMWInst::BinOp,
56 AtomicRMWInst::BinOp, bool IsMasked, int Width,
94 return expandAtomicBinOp(MBB, MBBI, AtomicRMWInst::Nand, false, 32, in expandMI()
97 return expandAtomicBinOp(MBB, MBBI, AtomicRMWInst::Nand, false, 64, in expandMI()
100 return expandAtomicBinOp(MBB, MBBI, AtomicRMWInst::Xchg, true, 32, in expandMI()
103 return expandAtomicBinOp(MBB, MBBI, AtomicRMWInst::Add, true, 32, NextMBBI); in expandMI()
105 return expandAtomicBinOp(MBB, MBBI, AtomicRMWInst::Sub, true, 32, NextMBBI); in expandMI()
107 return expandAtomicBinOp(MBB, MBBI, AtomicRMWInst::Nand, true, 32, in expandMI()
110 return expandAtomicMinMaxOp(MBB, MBBI, AtomicRMWInst::Max, true, 32, in expandMI()
113 return expandAtomicMinMaxOp(MBB, MBBI, AtomicRMWInst::Min, true, 32, in expandMI()
[all …]
/external/swiftshader/third_party/llvm-10.0/llvm/lib/Target/RISCV/
DRISCVExpandPseudoInsts.cpp47 MachineBasicBlock::iterator MBBI, AtomicRMWInst::BinOp,
52 AtomicRMWInst::BinOp, bool IsMasked, int Width,
103 return expandAtomicBinOp(MBB, MBBI, AtomicRMWInst::Nand, false, 32, in expandMI()
106 return expandAtomicBinOp(MBB, MBBI, AtomicRMWInst::Nand, false, 64, in expandMI()
109 return expandAtomicBinOp(MBB, MBBI, AtomicRMWInst::Xchg, true, 32, in expandMI()
112 return expandAtomicBinOp(MBB, MBBI, AtomicRMWInst::Add, true, 32, NextMBBI); in expandMI()
114 return expandAtomicBinOp(MBB, MBBI, AtomicRMWInst::Sub, true, 32, NextMBBI); in expandMI()
116 return expandAtomicBinOp(MBB, MBBI, AtomicRMWInst::Nand, true, 32, in expandMI()
119 return expandAtomicMinMaxOp(MBB, MBBI, AtomicRMWInst::Max, true, 32, in expandMI()
122 return expandAtomicMinMaxOp(MBB, MBBI, AtomicRMWInst::Min, true, 32, in expandMI()
[all …]
/external/llvm/include/llvm/CodeGen/
DAtomicExpandUtils.h15 class AtomicRMWInst; variable
56 expandAtomicRMWToCmpXchg(AtomicRMWInst *AI, CreateCmpXchgInstFun Factory);
/external/llvm-project/llvm/include/llvm/CodeGen/
DAtomicExpandUtils.h18 class AtomicRMWInst; variable
60 bool expandAtomicRMWToCmpXchg(AtomicRMWInst *AI, CreateCmpXchgInstFun CreateCmpXchg);
/external/swiftshader/third_party/llvm-10.0/llvm/include/llvm/CodeGen/
DAtomicExpandUtils.h18 class AtomicRMWInst; variable
60 bool expandAtomicRMWToCmpXchg(AtomicRMWInst *AI, CreateCmpXchgInstFun CreateCmpXchg);
/external/swiftshader/third_party/llvm-10.0/llvm/lib/Transforms/Instrumentation/
DThreadSanitizer.cpp123 FunctionCallee TsanAtomicRMW[AtomicRMWInst::LAST_BINOP + 1]
249 for (int op = AtomicRMWInst::FIRST_BINOP; in initialize()
250 op <= AtomicRMWInst::LAST_BINOP; ++op) { in initialize()
253 if (op == AtomicRMWInst::Xchg) in initialize()
255 else if (op == AtomicRMWInst::Add) in initialize()
257 else if (op == AtomicRMWInst::Sub) in initialize()
259 else if (op == AtomicRMWInst::And) in initialize()
261 else if (op == AtomicRMWInst::Or) in initialize()
263 else if (op == AtomicRMWInst::Xor) in initialize()
265 else if (op == AtomicRMWInst::Nand) in initialize()
[all …]
/external/llvm/lib/Transforms/Instrumentation/
DThreadSanitizer.cpp116 Function *TsanAtomicRMW[AtomicRMWInst::LAST_BINOP + 1][kNumberOfAccessSizes];
191 for (int op = AtomicRMWInst::FIRST_BINOP; in initializeCallbacks()
192 op <= AtomicRMWInst::LAST_BINOP; ++op) { in initializeCallbacks()
195 if (op == AtomicRMWInst::Xchg) in initializeCallbacks()
197 else if (op == AtomicRMWInst::Add) in initializeCallbacks()
199 else if (op == AtomicRMWInst::Sub) in initializeCallbacks()
201 else if (op == AtomicRMWInst::And) in initializeCallbacks()
203 else if (op == AtomicRMWInst::Or) in initializeCallbacks()
205 else if (op == AtomicRMWInst::Xor) in initializeCallbacks()
207 else if (op == AtomicRMWInst::Nand) in initializeCallbacks()
[all …]
DBoundsChecking.cpp183 isa<AtomicRMWInst>(I)) in runOnFunction()
200 } else if (AtomicRMWInst *AI = dyn_cast<AtomicRMWInst>(Inst)) { in runOnFunction()
/external/llvm-project/llvm/lib/Transforms/Instrumentation/
DThreadSanitizer.cpp166 FunctionCallee TsanAtomicRMW[AtomicRMWInst::LAST_BINOP + 1]
321 for (unsigned Op = AtomicRMWInst::FIRST_BINOP; in initialize()
322 Op <= AtomicRMWInst::LAST_BINOP; ++Op) { in initialize()
325 if (Op == AtomicRMWInst::Xchg) in initialize()
327 else if (Op == AtomicRMWInst::Add) in initialize()
329 else if (Op == AtomicRMWInst::Sub) in initialize()
331 else if (Op == AtomicRMWInst::And) in initialize()
333 else if (Op == AtomicRMWInst::Or) in initialize()
335 else if (Op == AtomicRMWInst::Xor) in initialize()
337 else if (Op == AtomicRMWInst::Nand) in initialize()
[all …]
/external/llvm-project/mlir/lib/Target/LLVMIR/
DModuleTranslation.cpp251 static llvm::AtomicRMWInst::BinOp getLLVMAtomicBinOp(AtomicBinOp op) { in getLLVMAtomicBinOp()
254 return llvm::AtomicRMWInst::BinOp::Xchg; in getLLVMAtomicBinOp()
256 return llvm::AtomicRMWInst::BinOp::Add; in getLLVMAtomicBinOp()
258 return llvm::AtomicRMWInst::BinOp::Sub; in getLLVMAtomicBinOp()
260 return llvm::AtomicRMWInst::BinOp::And; in getLLVMAtomicBinOp()
262 return llvm::AtomicRMWInst::BinOp::Nand; in getLLVMAtomicBinOp()
264 return llvm::AtomicRMWInst::BinOp::Or; in getLLVMAtomicBinOp()
266 return llvm::AtomicRMWInst::BinOp::Xor; in getLLVMAtomicBinOp()
268 return llvm::AtomicRMWInst::BinOp::Max; in getLLVMAtomicBinOp()
270 return llvm::AtomicRMWInst::BinOp::Min; in getLLVMAtomicBinOp()
[all …]
/external/llvm/lib/IR/
DInstruction.cpp388 if (const AtomicRMWInst *RMWI = dyn_cast<AtomicRMWInst>(I1)) in haveSameSpecialState()
389 return RMWI->getOperation() == cast<AtomicRMWInst>(I2)->getOperation() && in haveSameSpecialState()
390 RMWI->isVolatile() == cast<AtomicRMWInst>(I2)->isVolatile() && in haveSameSpecialState()
391 RMWI->getOrdering() == cast<AtomicRMWInst>(I2)->getOrdering() && in haveSameSpecialState()
392 RMWI->getSynchScope() == cast<AtomicRMWInst>(I2)->getSynchScope(); in haveSameSpecialState()
/external/llvm/include/llvm/Analysis/
DMemoryLocation.h69 static MemoryLocation get(const AtomicRMWInst *RMWI);
79 else if (auto *I = dyn_cast<AtomicRMWInst>(Inst)) in get()
/external/tensorflow/tensorflow/compiler/xla/service/gpu/
Dir_emitter.cc301 AtomicRMW(llvm::AtomicRMWInst::FAdd, output_address, source, in MaybeEmitDirectAtomicOperation()
309 AtomicRMW(llvm::AtomicRMWInst::Add, output_address, source, in MaybeEmitDirectAtomicOperation()
319 ? llvm::AtomicRMWInst::Max in MaybeEmitDirectAtomicOperation()
320 : llvm::AtomicRMWInst::UMax; in MaybeEmitDirectAtomicOperation()
329 ? llvm::AtomicRMWInst::Min in MaybeEmitDirectAtomicOperation()
330 : llvm::AtomicRMWInst::UMin; in MaybeEmitDirectAtomicOperation()
/external/llvm-project/llvm/lib/IR/
DCore.cpp3568 static AtomicRMWInst::BinOp mapFromLLVMRMWBinOp(LLVMAtomicRMWBinOp BinOp) { in mapFromLLVMRMWBinOp()
3570 case LLVMAtomicRMWBinOpXchg: return AtomicRMWInst::Xchg; in mapFromLLVMRMWBinOp()
3571 case LLVMAtomicRMWBinOpAdd: return AtomicRMWInst::Add; in mapFromLLVMRMWBinOp()
3572 case LLVMAtomicRMWBinOpSub: return AtomicRMWInst::Sub; in mapFromLLVMRMWBinOp()
3573 case LLVMAtomicRMWBinOpAnd: return AtomicRMWInst::And; in mapFromLLVMRMWBinOp()
3574 case LLVMAtomicRMWBinOpNand: return AtomicRMWInst::Nand; in mapFromLLVMRMWBinOp()
3575 case LLVMAtomicRMWBinOpOr: return AtomicRMWInst::Or; in mapFromLLVMRMWBinOp()
3576 case LLVMAtomicRMWBinOpXor: return AtomicRMWInst::Xor; in mapFromLLVMRMWBinOp()
3577 case LLVMAtomicRMWBinOpMax: return AtomicRMWInst::Max; in mapFromLLVMRMWBinOp()
3578 case LLVMAtomicRMWBinOpMin: return AtomicRMWInst::Min; in mapFromLLVMRMWBinOp()
[all …]

123456789