|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
Declarations
lib/Transforms/Vectorize/VPlan.h 59 class VPBasicBlock;
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/ADT/STLExtras.h 643 zippy(Args &&... ts_) : ts(std::forward<Args>(ts_)...) {}
include/llvm/ADT/ilist_node.h 266 const ParentTy *getNodeParent() const {
include/llvm/Support/Casting.h 58 return To::classof(&Val);
66 static inline bool doit(const From &) { return true; }
104 static inline bool doit(const From *Val) {
106 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;
227 static typename cast_retty<To, FromTy>::ret_type doit(const FromTy &Val) {
228 typename cast_retty<To, FromTy>::ret_type Res2
256 inline typename cast_retty<X, Y>::ret_type cast(Y &Val) {
263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
263 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*,
265 return cast_convert_val<X, Y*,
266 typename simplify_type<Y*>::SimpleType>::doit(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 37 VPBasicBlock *BB = nullptr;
38 VPBasicBlock::iterator InsertPt = VPBasicBlock::iterator();
63 VPBasicBlock *getInsertBlock() const { return BB; }
64 VPBasicBlock::iterator getInsertPoint() const { return InsertPt; }
68 VPBasicBlock *Block = nullptr;
69 VPBasicBlock::iterator Point;
76 VPInsertPoint(VPBasicBlock *InsertBlock, VPBasicBlock::iterator InsertPoint)
76 VPInsertPoint(VPBasicBlock *InsertBlock, VPBasicBlock::iterator InsertPoint)
82 VPBasicBlock *getBlock() const { return Block; }
83 VPBasicBlock::iterator getPoint() const { return Point; }
96 void setInsertPoint(VPBasicBlock *TheBB) {
104 void setInsertPoint(VPBasicBlock *TheBB, VPBasicBlock::iterator IP) {
104 void setInsertPoint(VPBasicBlock *TheBB, VPBasicBlock::iterator IP) {
149 VPBasicBlock *Block;
150 VPBasicBlock::iterator Point;
lib/Transforms/Vectorize/LoopVectorize.cpp 6832 bool VPRecipeBuilder::tryToWiden(Instruction *I, VPBasicBlock *VPBB,
6938 VPBasicBlock *VPRecipeBuilder::handleReplication(
6939 Instruction *I, VFRange &Range, VPBasicBlock *VPBB,
6972 auto *RegSucc = new VPBasicBlock();
6972 auto *RegSucc = new VPBasicBlock();
6990 auto *Entry = new VPBasicBlock(Twine(RegionName) + ".entry", BOMRecipe);
6990 auto *Entry = new VPBasicBlock(Twine(RegionName) + ".entry", BOMRecipe);
6993 auto *Exit = new VPBasicBlock(Twine(RegionName) + ".continue", PHIRecipe);
6993 auto *Exit = new VPBasicBlock(Twine(RegionName) + ".continue", PHIRecipe);
6994 auto *Pred = new VPBasicBlock(Twine(RegionName) + ".if", PredRecipe);
6994 auto *Pred = new VPBasicBlock(Twine(RegionName) + ".if", PredRecipe);
7006 VPlanPtr &Plan, VPBasicBlock *VPBB) {
7102 VPBasicBlock *VPBB = new VPBasicBlock("Pre-Entry");
7102 VPBasicBlock *VPBB = new VPBasicBlock("Pre-Entry");
7119 auto *FirstVPBBForBB = new VPBasicBlock(BB->getName());
7119 auto *FirstVPBBForBB = new VPBasicBlock(BB->getName());
7179 VPBasicBlock *NextVPBB = RecipeBuilder.handleReplication(
7192 VPBasicBlock *PreEntry = cast<VPBasicBlock>(Plan->getEntry());
7192 VPBasicBlock *PreEntry = cast<VPBasicBlock>(Plan->getEntry());
lib/Transforms/Vectorize/VPRecipeBuilder.h 95 bool tryToWiden(Instruction *I, VPBasicBlock *VPBB, VFRange &Range);
111 VPBasicBlock *VPBB);
119 VPBasicBlock *handleReplication(
120 Instruction *I, VFRange &Range, VPBasicBlock *VPBB,
lib/Transforms/Vectorize/VPlan.cpp 59 const VPBasicBlock *VPBlockBase::getEntryBasicBlock() const {
63 return cast<VPBasicBlock>(Block);
66 VPBasicBlock *VPBlockBase::getEntryBasicBlock() {
70 return cast<VPBasicBlock>(Block);
74 const VPBasicBlock *VPBlockBase::getExitBasicBlock() const {
78 return cast<VPBasicBlock>(Block);
81 VPBasicBlock *VPBlockBase::getExitBasicBlock() {
85 return cast<VPBasicBlock>(Block);
124 VPBasicBlock *PredVPBB = PredVPBlock->getExitBasicBlock();
164 VPBasicBlock *PrevVPBB = State->CFG.PrevVPBB;
425 VPBasicBlock *SuccVPBB = SuccVPBlock->getEntryBasicBlock();
532 if (const VPBasicBlock *BasicBlock = dyn_cast<VPBasicBlock>(Block))
532 if (const VPBasicBlock *BasicBlock = dyn_cast<VPBasicBlock>(Block))
571 void VPlanPrinter::dumpBasicBlock(const VPBasicBlock *BasicBlock) {
733 if (VPBasicBlock *VPBB = dyn_cast<VPBasicBlock>(Block)) {
733 if (VPBasicBlock *VPBB = dyn_cast<VPBasicBlock>(Block)) {
lib/Transforms/Vectorize/VPlan.h 284 VPBasicBlock *PrevVPBB = nullptr;
296 SmallDenseMap<VPBasicBlock *, BasicBlock *> VPBB2IRBB;
300 SmallVector<VPBasicBlock *, 8> VPBBsToFix;
416 const VPBasicBlock *getEntryBasicBlock() const;
417 VPBasicBlock *getEntryBasicBlock();
422 const VPBasicBlock *getExitBasicBlock() const;
423 VPBasicBlock *getExitBasicBlock();
568 class VPRecipeBase : public ilist_node_with_parent<VPRecipeBase, VPBasicBlock> {
575 VPBasicBlock *Parent = nullptr;
604 VPBasicBlock *getParent() { return Parent; }
605 const VPBasicBlock *getParent() const { return Parent; }
1034 return &VPBasicBlock::Recipes;
1290 void dumpBasicBlock(const VPBasicBlock *BasicBlock);
1629 const VPBasicBlock &BB;
1673 VPlanSlp(VPInterleavedAccessInfo &IAI, VPBasicBlock &BB) : IAI(IAI), BB(BB) {}
lib/Transforms/Vectorize/VPlanHCFGBuilder.cpp 55 DenseMap<BasicBlock *, VPBasicBlock *> BB2VPBB;
63 void setVPBBPredsFromBB(VPBasicBlock *VPBB, BasicBlock *BB);
65 VPBasicBlock *getOrCreateVPBB(BasicBlock *BB);
70 void createVPInstructionsForVPBB(VPBasicBlock *VPBB, BasicBlock *BB);
83 void PlainCFGBuilder::setVPBBPredsFromBB(VPBasicBlock *VPBB, BasicBlock *BB) {
109 VPBasicBlock *PlainCFGBuilder::getOrCreateVPBB(BasicBlock *BB) {
117 VPBasicBlock *VPBB = new VPBasicBlock(BB->getName());
117 VPBasicBlock *VPBB = new VPBasicBlock(BB->getName());
192 void PlainCFGBuilder::createVPInstructionsForVPBB(VPBasicBlock *VPBB,
255 VPBasicBlock *PreheaderVPBB = getOrCreateVPBB(PreheaderBB);
268 VPBasicBlock *VPBB = getOrCreateVPBB(BB);
279 VPBasicBlock *SuccVPBB = getOrCreateVPBB(TI->getSuccessor(0));
283 VPBasicBlock *SuccVPBB0 = getOrCreateVPBB(TI->getSuccessor(0));
285 VPBasicBlock *SuccVPBB1 = getOrCreateVPBB(TI->getSuccessor(1));
312 VPBasicBlock *LoopExitVPBB = BB2VPBB[LoopExitBB];
lib/Transforms/Vectorize/VPlanHCFGTransforms.cpp 31 VPBasicBlock *VPBB = Base->getEntryBasicBlock();
43 VPBasicBlock *VPBB = Base->getEntryBasicBlock();
lib/Transforms/Vectorize/VPlanPredicator.cpp 37 VPValue *VPlanPredicator::getOrCreateNotPredicate(VPBasicBlock *PredBB,
38 VPBasicBlock *CurrBB) {
147 VPBasicBlock *CurrBB = cast<VPBasicBlock>(CurrBlock->getEntryBasicBlock());
147 VPBasicBlock *CurrBB = cast<VPBasicBlock>(CurrBlock->getEntryBasicBlock());
171 getOrCreateNotPredicate(cast<VPBasicBlock>(PredBlock), CurrBB);
188 VPBasicBlock *EntryBlock = cast<VPBasicBlock>(Region->getEntry());
188 VPBasicBlock *EntryBlock = cast<VPBasicBlock>(Region->getEntry());
lib/Transforms/Vectorize/VPlanPredicator.h 50 VPValue *getOrCreateNotPredicate(VPBasicBlock *PredBB, VPBasicBlock *CurrBB);
50 VPValue *getOrCreateNotPredicate(VPBasicBlock *PredBB, VPBasicBlock *CurrBB);
lib/Transforms/Vectorize/VPlanSLP.cpp 123 VPBasicBlock *Parent = cast<VPInstruction>(Operands[0])->getParent();
unittests/Transforms/Vectorize/VPlanHCFGTest.cpp 43 VPBasicBlock *Entry = Plan->getEntry()->getEntryBasicBlock();
49 VPBasicBlock *VecBB = Entry->getSingleSuccessor()->getEntryBasicBlock();
130 VPBasicBlock *VecBB = Entry->getSingleSuccessor()->getEntryBasicBlock();
unittests/Transforms/Vectorize/VPlanSlpTest.cpp 102 VPBasicBlock *Body = Entry->getSingleSuccessor()->getEntryBasicBlock();
169 VPBasicBlock *Body = Entry->getSingleSuccessor()->getEntryBasicBlock();
236 VPBasicBlock *Body = Entry->getSingleSuccessor()->getEntryBasicBlock();
295 VPBasicBlock *Body = Entry->getSingleSuccessor()->getEntryBasicBlock();
307 VPBasicBlock *Body,
423 VPBasicBlock *Body = Entry->getSingleSuccessor()->getEntryBasicBlock();
495 VPBasicBlock *Body = Entry->getSingleSuccessor()->getEntryBasicBlock();
567 VPBasicBlock *Body = Entry->getSingleSuccessor()->getEntryBasicBlock();
643 VPBasicBlock *Body = Entry->getSingleSuccessor()->getEntryBasicBlock();
704 VPBasicBlock *Body = Entry->getSingleSuccessor()->getEntryBasicBlock();
705 VPBasicBlock *BB2 = Body->getSingleSuccessor()->getEntryBasicBlock();
767 VPBasicBlock *Body = Entry->getSingleSuccessor()->getEntryBasicBlock();
768 VPBasicBlock *BB2 = Body->getSingleSuccessor()->getEntryBasicBlock();
827 VPBasicBlock *Body = Entry->getSingleSuccessor()->getEntryBasicBlock();
886 VPBasicBlock *Body = Entry->getSingleSuccessor()->getEntryBasicBlock();
unittests/Transforms/Vectorize/VPlanTest.cpp 32 VPBasicBlock VPBB1;
47 VPBasicBlock VPBB1;
67 VPBasicBlock VPBB1;
78 VPBasicBlock VPBB2;
usr/include/c++/7.4.0/bits/move.h 72 constexpr _Tp&&
83 constexpr _Tp&&
usr/include/c++/7.4.0/bits/range_access.h 58 begin(const _Container& __cont) -> decltype(__cont.begin())
78 end(const _Container& __cont) -> decltype(__cont.end())
usr/include/c++/7.4.0/tuple 125 constexpr _Head_base(const _Head& __h)
132 constexpr _Head_base(_UHead&& __h)
159 static constexpr _Head&
162 static constexpr const _Head&
194 static constexpr _Head&
197 static constexpr const _Head&
210 constexpr _Tuple_impl(const _Head& __head, const _Tail&... __tail)
216 constexpr _Tuple_impl(_UHead&& __head, _UTail&&... __tail)
248 const _Head& __head, const _Tail&... __tail)
473 return __and_<is_constructible<_Elements, const _UElements&>...>::value;
479 return __and_<is_convertible<const _UElements&, _Elements>...>::value;
485 return __and_<is_constructible<_Elements, _UElements&&>...>::value;
491 return __and_<is_convertible<_UElements&&, _Elements>...>::value;
947 constexpr tuple(const _T1& __a1, const _T2& __a2)
956 explicit constexpr tuple(const _T1& __a1, const _T2& __a2)
971 constexpr tuple(_U1&& __a1, _U2&& __a2)
1078 const _T1& __a1, const _T2& __a2)
1090 const _T1& __a1, const _T2& __a2)
1302 constexpr _Head&
1307 constexpr const _Head&
1313 constexpr __tuple_element_t<__i, tuple<_Elements...>>&
1319 constexpr const __tuple_element_t<__i, tuple<_Elements...>>&
1325 constexpr __tuple_element_t<__i, tuple<_Elements...>>&&
usr/include/c++/7.4.0/type_traits 1246 : public is_nothrow_constructible<_Tp, _Tp&&>
1554 { typedef _Tp type; };
1563 { typedef _Tp type; };
1574 remove_const<typename remove_volatile<_Tp>::type>::type type;
1633 { typedef _Tp type; };
1659 { typedef _Tp&& type; };
1983 { typedef _Up type; };
2104 { typedef typename remove_cv<_Up>::type __type; };