|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
References
include/llvm/ADT/DenseMapInfo.h 39 static inline T* getEmptyKey() {
41 Val <<= PointerLikeTypeTraits<T*>::NumLowBitsAvailable;
45 static inline T* getTombstoneKey() {
47 Val <<= PointerLikeTypeTraits<T*>::NumLowBitsAvailable;
51 static unsigned getHashValue(const T *PtrVal) {
56 static bool isEqual(const T *LHS, const T *RHS) { return LHS == RHS; }
56 static bool isEqual(const T *LHS, const T *RHS) { return LHS == RHS; }
include/llvm/Analysis/VectorUtils.h 388 InterleaveGroup(InstTy *Instr, int32_t Stride, Align Alignment)
407 bool insertMember(InstTy *Instr, int32_t Index, Align NewAlign) {
447 InstTy *getMember(uint32_t Index) const {
458 uint32_t getIndex(const InstTy *Instr) const {
467 InstTy *getInsertPos() const { return InsertPos; }
468 void setInsertPos(InstTy *Inst) { InsertPos = Inst; }
476 void addMetadata(InstTy *NewInst) const;
499 DenseMap<int32_t, InstTy *> Members;
514 InstTy *InsertPos;
include/llvm/Support/Casting.h 58 return To::classof(&Val);
92 return isa_impl<To, From>::doit(*Val);
106 return isa_impl<To, From>::doit(*Val);
122 return isa_impl_wrap<To, SimpleFrom,
132 return isa_impl_cl<To,FromTy>::doit(Val);
142 return isa_impl_wrap<X, const Y,
172 using ret_type = To *; // Pointer arg case, return Ty*
176 using ret_type = const To *; // Constant pointer arg case, return const Ty*
198 using ret_type = typename cast_retty<To, SimpleFrom>::ret_type;
204 using ret_type = typename cast_retty_impl<To,FromTy>::ret_type;
210 To, From, typename simplify_type<From>::SimpleType>::ret_type;
218 static typename cast_retty<To, From>::ret_type doit(From &Val) {
219 return cast_convert_val<To, SimpleFrom,
227 static typename cast_retty<To, FromTy>::ret_type doit(const FromTy &Val) {
228 typename cast_retty<To, FromTy>::ret_type Res2
248 typename cast_retty<X, const Y>::ret_type>::type
252 X, const Y, typename simplify_type<const Y>::SimpleType>::doit(Val);
256 inline typename cast_retty<X, Y>::ret_type cast(Y &Val) {
263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
265 return cast_convert_val<X, Y*,
305 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
309 return cast<X>(Val);
337 LLVM_NODISCARD inline typename cast_retty<X, Y>::ret_type dyn_cast(Y &Val) {
342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
343 return isa<X>(Val) ? cast<X>(Val) : nullptr;
343 return isa<X>(Val) ? cast<X>(Val) : nullptr;
include/llvm/Support/PointerLikeTypeTraits.h 56 static inline void *getAsVoidPointer(T *P) { return P; }
57 static inline T *getFromVoidPointer(void *P) { return static_cast<T *>(P); }
59 enum { NumLowBitsAvailable = detail::ConstantLog2<alignof(T)>::value };
lib/Transforms/Vectorize/LoopVectorizationPlanner.h 40 VPInstruction *createInstruction(unsigned Opcode,
42 VPInstruction *Instr = new VPInstruction(Opcode, Operands);
42 VPInstruction *Instr = new VPInstruction(Opcode, Operands);
48 VPInstruction *createInstruction(unsigned Opcode,
110 VPInstruction *insert(VPInstruction *I) const {
110 VPInstruction *insert(VPInstruction *I) const {
119 VPInstruction *NewVPInst = createInstruction(Opcode, Operands);
130 return createInstruction(VPInstruction::Not, {Operand});
lib/Transforms/Vectorize/LoopVectorize.cpp 6692 BlockMask = Builder.createNaryOp(VPInstruction::ICmpULE, {IV, BTC});
lib/Transforms/Vectorize/VPlan.cpp 51 if (const VPInstruction *Instr = dyn_cast<VPInstruction>(&V))
51 if (const VPInstruction *Instr = dyn_cast<VPInstruction>(&V))
305 case VPInstruction::Not: {
311 case VPInstruction::ICmpULE: {
348 case VPInstruction::Not:
351 case VPInstruction::ICmpULE:
354 case VPInstruction::SLPLoad:
357 case VPInstruction::SLPStore:
581 if (const VPInstruction *PredI = dyn_cast<VPInstruction>(Pred)) {
581 if (const VPInstruction *PredI = dyn_cast<VPInstruction>(Pred)) {
596 if (const VPInstruction *CBI = dyn_cast<VPInstruction>(CBV)) {
596 if (const VPInstruction *CBI = dyn_cast<VPInstruction>(CBV)) {
736 auto *VPInst = cast<VPInstruction>(&VPI);
736 auto *VPInst = cast<VPInstruction>(&VPI);
744 Old2New[IG] = new InterleaveGroup<VPInstruction>(
lib/Transforms/Vectorize/VPlan.h 673 VPInstruction *clone() const {
675 return new VPInstruction(Opcode, Operands);
1554 DenseMap<VPInstruction *, InterleaveGroup<VPInstruction> *>
1554 DenseMap<VPInstruction *, InterleaveGroup<VPInstruction> *>
1560 InterleaveGroup<VPInstruction> *>;
1575 SmallPtrSet<InterleaveGroup<VPInstruction> *, 4> DelSet;
1586 InterleaveGroup<VPInstruction> *
1587 getInterleaveGroup(VPInstruction *Instr) const {
1638 typename std::pair<VPInstruction *, SmallVector<VPValue *, 4>>;
1653 void addCombined(ArrayRef<VPValue *> Operands, VPInstruction *New);
1656 VPInstruction *markFailed();
1682 VPInstruction *buildGraph(ArrayRef<VPValue *> Operands);
lib/Transforms/Vectorize/VPlanHCFGBuilder.cpp 98 auto *VPPhi = cast<VPInstruction>(VPVal);
98 auto *VPPhi = cast<VPInstruction>(VPVal);
213 VPInstruction *NewVPInst;
218 NewVPInst = cast<VPInstruction>(VPIRBuilder.createNaryOp(
230 NewVPInst = cast<VPInstruction>(
lib/Transforms/Vectorize/VPlanHCFGTransforms.cpp 49 VPInstruction *VPInst = cast<VPInstruction>(Ingredient);
49 VPInstruction *VPInst = cast<VPInstruction>(Ingredient);
lib/Transforms/Vectorize/VPlanSLP.cpp 50 VPInstruction *VPlanSlp::markFailed() {
57 void VPlanSlp::addCombined(ArrayRef<VPValue *> Operands, VPInstruction *New) {
59 return cast<VPInstruction>(V)->getUnderlyingInstr();
63 Type *T = cast<VPInstruction>(V)->getUnderlyingInstr()->getType();
79 return Op && isa<VPInstruction>(Op) &&
80 cast<VPInstruction>(Op)->getUnderlyingInstr();
91 cast<VPInstruction>(Operands[0])->getUnderlyingInstr();
95 const Instruction *I = cast<VPInstruction>(Op)->getUnderlyingInstr();
105 return cast<VPInstruction>(Op)->getParent() != &this->BB;
123 VPBasicBlock *Parent = cast<VPInstruction>(Operands[0])->getParent();
125 auto *VPI = cast<VPInstruction>(&I);
125 auto *VPI = cast<VPInstruction>(&I);
140 return cast<LoadInst>(cast<VPInstruction>(Op)->getUnderlyingInstr())
150 return cast<StoreInst>(cast<VPInstruction>(Op)->getUnderlyingInstr())
172 cast<VPInstruction>(Values[0])->getOpcode());
178 auto *VPI = cast<VPInstruction>(Values[0]);
178 auto *VPI = cast<VPInstruction>(Values[0]);
197 unsigned Opcode = cast<VPInstruction>(Values[0])->getOpcode();
199 return cast<VPInstruction>(V)->getOpcode() != Opcode;
207 static bool areConsecutiveOrMatch(VPInstruction *A, VPInstruction *B,
207 static bool areConsecutiveOrMatch(VPInstruction *A, VPInstruction *B,
225 if (!isa<VPInstruction>(V1) || !isa<VPInstruction>(V2))
225 if (!isa<VPInstruction>(V1) || !isa<VPInstruction>(V2))
229 return (unsigned)areConsecutiveOrMatch(cast<VPInstruction>(V1),
230 cast<VPInstruction>(V2), IAI);
252 auto *LastI = cast<VPInstruction>(Last);
252 auto *LastI = cast<VPInstruction>(Last);
253 auto *CandidateI = cast<VPInstruction>(Candidate);
253 auto *CandidateI = cast<VPInstruction>(Candidate);
309 if (cast<VPInstruction>(Operands.second[0])->getOpcode() ==
350 if (auto *VPInstr = cast_or_null<VPInstruction>(Op))
350 if (auto *VPInstr = cast_or_null<VPInstruction>(Op))
360 VPInstruction *VPlanSlp::buildGraph(ArrayRef<VPValue *> Values) {
412 VPInstruction *Op = new VPInstruction(0, {});
412 VPInstruction *Op = new VPInstruction(0, {});
426 VPInstruction *NewOp = buildGraph(Ops.second);
440 CombinedOperands.push_back(cast<VPInstruction>(V)->getOperand(0));
449 Opcode = VPInstruction::SLPLoad;
452 Opcode = VPInstruction::SLPStore;
463 auto *VPI = new VPInstruction(Opcode, CombinedOperands);
463 auto *VPI = new VPInstruction(Opcode, CombinedOperands);
464 VPI->setUnderlyingInstr(cast<VPInstruction>(Values[0])->getUnderlyingInstr());
unittests/Transforms/Vectorize/VPlanHCFGTest.cpp 55 VPInstruction *Phi = dyn_cast<VPInstruction>(&*Iter++);
55 VPInstruction *Phi = dyn_cast<VPInstruction>(&*Iter++);
58 VPInstruction *Idx = dyn_cast<VPInstruction>(&*Iter++);
58 VPInstruction *Idx = dyn_cast<VPInstruction>(&*Iter++);
63 VPInstruction *Load = dyn_cast<VPInstruction>(&*Iter++);
63 VPInstruction *Load = dyn_cast<VPInstruction>(&*Iter++);
68 VPInstruction *Add = dyn_cast<VPInstruction>(&*Iter++);
68 VPInstruction *Add = dyn_cast<VPInstruction>(&*Iter++);
73 VPInstruction *Store = dyn_cast<VPInstruction>(&*Iter++);
73 VPInstruction *Store = dyn_cast<VPInstruction>(&*Iter++);
79 VPInstruction *IndvarAdd = dyn_cast<VPInstruction>(&*Iter++);
79 VPInstruction *IndvarAdd = dyn_cast<VPInstruction>(&*Iter++);
84 VPInstruction *ICmp = dyn_cast<VPInstruction>(&*Iter++);
84 VPInstruction *ICmp = dyn_cast<VPInstruction>(&*Iter++);
unittests/Transforms/Vectorize/VPlanPredicatorTest.cpp 87 VPInstruction *InnerAnd =
88 cast<VPInstruction>(InnerIf->getEntryBasicBlock()->begin());
180 VPInstruction *And =
181 cast<VPInstruction>(InnerIfTSucc->getEntryBasicBlock()->begin());
182 VPInstruction *Not =
183 cast<VPInstruction>(InnerIfFSucc->getEntryBasicBlock()->begin());
184 VPInstruction *NotAnd = cast<VPInstruction>(
184 VPInstruction *NotAnd = cast<VPInstruction>(
186 VPInstruction *Or =
187 cast<VPInstruction>(TSuccSucc->getEntryBasicBlock()->begin());
217 VPInstruction *OrOp0Inst = cast<VPInstruction>(Or->getOperand(0));
217 VPInstruction *OrOp0Inst = cast<VPInstruction>(Or->getOperand(0));
218 VPInstruction *OrOp1Inst = cast<VPInstruction>(Or->getOperand(1));
218 VPInstruction *OrOp1Inst = cast<VPInstruction>(Or->getOperand(1));
unittests/Transforms/Vectorize/VPlanSlpTest.cpp 104 VPInstruction *Store1 = cast<VPInstruction>(&*std::next(Body->begin(), 12));
104 VPInstruction *Store1 = cast<VPInstruction>(&*std::next(Body->begin(), 12));
105 VPInstruction *Store2 = cast<VPInstruction>(&*std::next(Body->begin(), 14));
105 VPInstruction *Store2 = cast<VPInstruction>(&*std::next(Body->begin(), 14));
109 VPInstruction *CombinedStore = Slp.buildGraph(StoreRoot);
113 auto *CombinedAdd = cast<VPInstruction>(CombinedStore->getOperand(0));
113 auto *CombinedAdd = cast<VPInstruction>(CombinedStore->getOperand(0));
116 auto *CombinedLoadA = cast<VPInstruction>(CombinedAdd->getOperand(0));
116 auto *CombinedLoadA = cast<VPInstruction>(CombinedAdd->getOperand(0));
117 auto *CombinedLoadB = cast<VPInstruction>(CombinedAdd->getOperand(1));
117 auto *CombinedLoadB = cast<VPInstruction>(CombinedAdd->getOperand(1));
171 VPInstruction *Store1 = cast<VPInstruction>(&*std::next(Body->begin(), 12));
171 VPInstruction *Store1 = cast<VPInstruction>(&*std::next(Body->begin(), 12));
172 VPInstruction *Store2 = cast<VPInstruction>(&*std::next(Body->begin(), 14));
172 VPInstruction *Store2 = cast<VPInstruction>(&*std::next(Body->begin(), 14));
178 VPInstruction *CombinedStore = Slp.buildGraph(StoreRoot);
182 auto *CombinedAdd = cast<VPInstruction>(CombinedStore->getOperand(0));
182 auto *CombinedAdd = cast<VPInstruction>(CombinedStore->getOperand(0));
185 auto *CombinedLoadA = cast<VPInstruction>(CombinedAdd->getOperand(0));
185 auto *CombinedLoadA = cast<VPInstruction>(CombinedAdd->getOperand(0));
186 auto *CombinedLoadB = cast<VPInstruction>(CombinedAdd->getOperand(1));
186 auto *CombinedLoadB = cast<VPInstruction>(CombinedAdd->getOperand(1));
190 VPInstruction *GetA = cast<VPInstruction>(&*std::next(Body->begin(), 1));
190 VPInstruction *GetA = cast<VPInstruction>(&*std::next(Body->begin(), 1));
191 VPInstruction *GetB = cast<VPInstruction>(&*std::next(Body->begin(), 3));
191 VPInstruction *GetB = cast<VPInstruction>(&*std::next(Body->begin(), 3));
238 VPInstruction *Store1 = cast<VPInstruction>(&*std::next(Body->begin(), 8));
238 VPInstruction *Store1 = cast<VPInstruction>(&*std::next(Body->begin(), 8));
239 VPInstruction *Store2 = cast<VPInstruction>(&*std::next(Body->begin(), 10));
239 VPInstruction *Store2 = cast<VPInstruction>(&*std::next(Body->begin(), 10));
243 VPInstruction *CombinedStore = Slp.buildGraph(StoreRoot);
247 auto *CombinedAdd = cast<VPInstruction>(CombinedStore->getOperand(0));
247 auto *CombinedAdd = cast<VPInstruction>(CombinedStore->getOperand(0));
250 auto *CombinedLoadA = cast<VPInstruction>(CombinedAdd->getOperand(0));
250 auto *CombinedLoadA = cast<VPInstruction>(CombinedAdd->getOperand(0));
297 VPInstruction *Store1 = cast<VPInstruction>(&*std::next(Body->begin(), 5));
297 VPInstruction *Store1 = cast<VPInstruction>(&*std::next(Body->begin(), 5));
298 VPInstruction *Store2 = cast<VPInstruction>(&*std::next(Body->begin(), 10));
298 VPInstruction *Store2 = cast<VPInstruction>(&*std::next(Body->begin(), 10));
306 static void checkReorderExample(VPInstruction *Store1, VPInstruction *Store2,
306 static void checkReorderExample(VPInstruction *Store1, VPInstruction *Store2,
311 VPInstruction *CombinedStore = Slp.buildGraph(StoreRoot);
316 VPInstruction *CombinedAdd =
317 cast<VPInstruction>(CombinedStore->getOperand(0));
320 VPInstruction *CombinedMulAB =
321 cast<VPInstruction>(CombinedAdd->getOperand(0));
322 VPInstruction *CombinedMulCD =
323 cast<VPInstruction>(CombinedAdd->getOperand(1));
326 VPInstruction *CombinedLoadA =
327 cast<VPInstruction>(CombinedMulAB->getOperand(0));
329 VPInstruction *LoadvA0 = cast<VPInstruction>(&*std::next(Body->begin(), 2));
329 VPInstruction *LoadvA0 = cast<VPInstruction>(&*std::next(Body->begin(), 2));
330 VPInstruction *LoadvA1 = cast<VPInstruction>(&*std::next(Body->begin(), 12));
330 VPInstruction *LoadvA1 = cast<VPInstruction>(&*std::next(Body->begin(), 12));
334 VPInstruction *CombinedLoadB =
335 cast<VPInstruction>(CombinedMulAB->getOperand(1));
337 VPInstruction *LoadvB0 = cast<VPInstruction>(&*std::next(Body->begin(), 4));
337 VPInstruction *LoadvB0 = cast<VPInstruction>(&*std::next(Body->begin(), 4));
338 VPInstruction *LoadvB1 = cast<VPInstruction>(&*std::next(Body->begin(), 14));
338 VPInstruction *LoadvB1 = cast<VPInstruction>(&*std::next(Body->begin(), 14));
344 VPInstruction *CombinedLoadC =
345 cast<VPInstruction>(CombinedMulCD->getOperand(0));
347 VPInstruction *LoadvC0 = cast<VPInstruction>(&*std::next(Body->begin(), 7));
347 VPInstruction *LoadvC0 = cast<VPInstruction>(&*std::next(Body->begin(), 7));
348 VPInstruction *LoadvC1 = cast<VPInstruction>(&*std::next(Body->begin(), 17));
348 VPInstruction *LoadvC1 = cast<VPInstruction>(&*std::next(Body->begin(), 17));
352 VPInstruction *CombinedLoadD =
353 cast<VPInstruction>(CombinedMulCD->getOperand(1));
355 VPInstruction *LoadvD0 = cast<VPInstruction>(&*std::next(Body->begin(), 9));
355 VPInstruction *LoadvD0 = cast<VPInstruction>(&*std::next(Body->begin(), 9));
356 VPInstruction *LoadvD1 = cast<VPInstruction>(&*std::next(Body->begin(), 19));
356 VPInstruction *LoadvD1 = cast<VPInstruction>(&*std::next(Body->begin(), 19));
425 VPInstruction *Store1 = cast<VPInstruction>(&*std::next(Body->begin(), 24));
425 VPInstruction *Store1 = cast<VPInstruction>(&*std::next(Body->begin(), 24));
426 VPInstruction *Store2 = cast<VPInstruction>(&*std::next(Body->begin(), 26));
426 VPInstruction *Store2 = cast<VPInstruction>(&*std::next(Body->begin(), 26));
497 VPInstruction *Store1 = cast<VPInstruction>(&*std::next(Body->begin(), 24));
497 VPInstruction *Store1 = cast<VPInstruction>(&*std::next(Body->begin(), 24));
498 VPInstruction *Store2 = cast<VPInstruction>(&*std::next(Body->begin(), 26));
498 VPInstruction *Store2 = cast<VPInstruction>(&*std::next(Body->begin(), 26));
569 VPInstruction *Store1 = cast<VPInstruction>(&*std::next(Body->begin(), 24));
569 VPInstruction *Store1 = cast<VPInstruction>(&*std::next(Body->begin(), 24));
570 VPInstruction *Store2 = cast<VPInstruction>(&*std::next(Body->begin(), 26));
570 VPInstruction *Store2 = cast<VPInstruction>(&*std::next(Body->begin(), 26));
645 VPInstruction *Store1 = cast<VPInstruction>(&*std::next(Body->begin(), 24));
645 VPInstruction *Store1 = cast<VPInstruction>(&*std::next(Body->begin(), 24));
646 VPInstruction *Store2 = cast<VPInstruction>(&*std::next(Body->begin(), 26));
646 VPInstruction *Store2 = cast<VPInstruction>(&*std::next(Body->begin(), 26));
707 VPInstruction *Store1 = cast<VPInstruction>(&*std::next(BB2->begin(), 3));
707 VPInstruction *Store1 = cast<VPInstruction>(&*std::next(BB2->begin(), 3));
708 VPInstruction *Store2 = cast<VPInstruction>(&*std::next(BB2->begin(), 5));
708 VPInstruction *Store2 = cast<VPInstruction>(&*std::next(BB2->begin(), 5));
770 VPInstruction *Store1 = cast<VPInstruction>(&*std::next(BB2->begin(), 1));
770 VPInstruction *Store1 = cast<VPInstruction>(&*std::next(BB2->begin(), 1));
771 VPInstruction *Store2 = cast<VPInstruction>(&*std::next(BB2->begin(), 3));
771 VPInstruction *Store2 = cast<VPInstruction>(&*std::next(BB2->begin(), 3));
829 VPInstruction *Store1 = cast<VPInstruction>(&*std::next(Body->begin(), 12));
829 VPInstruction *Store1 = cast<VPInstruction>(&*std::next(Body->begin(), 12));
830 VPInstruction *Store2 = cast<VPInstruction>(&*std::next(Body->begin(), 14));
830 VPInstruction *Store2 = cast<VPInstruction>(&*std::next(Body->begin(), 14));
888 VPInstruction *Store1 = cast<VPInstruction>(&*std::next(Body->begin(), 12));
888 VPInstruction *Store1 = cast<VPInstruction>(&*std::next(Body->begin(), 12));
889 VPInstruction *Store2 = cast<VPInstruction>(&*std::next(Body->begin(), 14));
889 VPInstruction *Store2 = cast<VPInstruction>(&*std::next(Body->begin(), 14));
unittests/Transforms/Vectorize/VPlanTest.cpp 28 VPInstruction *I1 = new VPInstruction(0, {});
28 VPInstruction *I1 = new VPInstruction(0, {});
29 VPInstruction *I2 = new VPInstruction(1, {});
29 VPInstruction *I2 = new VPInstruction(1, {});
30 VPInstruction *I3 = new VPInstruction(2, {});
30 VPInstruction *I3 = new VPInstruction(2, {});
43 VPInstruction *I1 = new VPInstruction(0, {});
43 VPInstruction *I1 = new VPInstruction(0, {});
44 VPInstruction *I2 = new VPInstruction(1, {});
44 VPInstruction *I2 = new VPInstruction(1, {});
45 VPInstruction *I3 = new VPInstruction(2, {});
45 VPInstruction *I3 = new VPInstruction(2, {});
63 VPInstruction *I1 = new VPInstruction(0, {});
63 VPInstruction *I1 = new VPInstruction(0, {});
64 VPInstruction *I2 = new VPInstruction(1, {});
64 VPInstruction *I2 = new VPInstruction(1, {});
65 VPInstruction *I3 = new VPInstruction(2, {});
65 VPInstruction *I3 = new VPInstruction(2, {});
76 VPInstruction *I4 = new VPInstruction(4, {});
76 VPInstruction *I4 = new VPInstruction(4, {});
77 VPInstruction *I5 = new VPInstruction(5, {});
77 VPInstruction *I5 = new VPInstruction(5, {});
usr/include/c++/7.4.0/type_traits 1983 { typedef _Up type; };
utils/unittest/googletest/include/gtest/gtest-printers.h 407 T* p, ::std::ostream* os) {
416 if (IsTrue(ImplicitlyConvertible<T*, const void*>::value)) {
utils/unittest/googletest/include/gtest/gtest.h 1475 T* rhs) {