Lines Matching refs:VPBlockBase

334 class VPBlockBase {
348 SmallVector<VPBlockBase *, 1> Predecessors;
351 SmallVector<VPBlockBase *, 1> Successors;
357 void appendSuccessor(VPBlockBase *Successor) { in appendSuccessor()
363 void appendPredecessor(VPBlockBase *Predecessor) { in appendPredecessor()
369 void removePredecessor(VPBlockBase *Predecessor) { in removePredecessor()
376 void removeSuccessor(VPBlockBase *Successor) { in removeSuccessor()
383 VPBlockBase(const unsigned char SC, const std::string &N) in VPBlockBase() function
393 using VPBlocksTy = SmallVectorImpl<VPBlockBase *>;
395 virtual ~VPBlockBase() = default;
431 VPBlockBase *getSingleSuccessor() const { in getSingleSuccessor()
437 VPBlockBase *getSinglePredecessor() const { in getSinglePredecessor()
448 VPBlockBase *getEnclosingBlockWithSuccessors();
453 VPBlockBase *getEnclosingBlockWithPredecessors();
467 VPBlockBase *getSingleHierarchicalSuccessor() { in getSingleHierarchicalSuccessor()
483 VPBlockBase *getSingleHierarchicalPredecessor() { in getSingleHierarchicalPredecessor()
497 void setOneSuccessor(VPBlockBase *Successor) { in setOneSuccessor()
506 void setTwoSuccessors(VPBlockBase *IfTrue, VPBlockBase *IfFalse, in setTwoSuccessors()
518 void setPredecessors(ArrayRef<VPBlockBase *> NewPreds) { in setPredecessors()
529 static void deleteCFG(VPBlockBase *Entry);
965 class VPBasicBlock : public VPBlockBase {
975 : VPBlockBase(VPBasicBlockSC, Name.str()) {
1017 static inline bool classof(const VPBlockBase *V) { in classof()
1018 return V->getVPBlockID() == VPBlockBase::VPBasicBlockSC; in classof()
1050 class VPRegionBlock : public VPBlockBase {
1053 VPBlockBase *Entry;
1056 VPBlockBase *Exit;
1063 VPRegionBlock(VPBlockBase *Entry, VPBlockBase *Exit,
1065 : VPBlockBase(VPRegionBlockSC, Name), Entry(Entry), Exit(Exit), in VPBlockBase() function
1073 : VPBlockBase(VPRegionBlockSC, Name), Entry(nullptr), Exit(nullptr), in VPBlockBase() function
1082 static inline bool classof(const VPBlockBase *V) { in classof()
1083 return V->getVPBlockID() == VPBlockBase::VPRegionBlockSC; in classof()
1086 const VPBlockBase *getEntry() const { return Entry; } in getEntry()
1087 VPBlockBase *getEntry() { return Entry; } in getEntry()
1091 void setEntry(VPBlockBase *EntryBlock) { in setEntry()
1102 VPBlockBase &front() const { return *Entry; } in front()
1104 const VPBlockBase *getExit() const { return Exit; } in getExit()
1105 VPBlockBase *getExit() { return Exit; } in getExit()
1109 void setExit(VPBlockBase *ExitBlock) { in setExit()
1135 VPBlockBase *Entry;
1165 VPlan(VPBlockBase *Entry = nullptr) : Entry(Entry) {} in Entry()
1169 VPBlockBase::deleteCFG(Entry); in ~VPlan()
1184 VPBlockBase *getEntry() { return Entry; } in getEntry()
1185 const VPBlockBase *getEntry() const { return Entry; } in getEntry()
1187 VPBlockBase *setEntry(VPBlockBase *Block) { return Entry = Block; } in setEntry()
1253 SmallDenseMap<const VPBlockBase *, unsigned> BlockID;
1261 void dumpBlock(const VPBlockBase *Block);
1265 void dumpEdges(const VPBlockBase *Block);
1274 unsigned getOrCreateBID(const VPBlockBase *Block) { in getOrCreateBID()
1278 const Twine getOrCreateName(const VPBlockBase *Block);
1280 const Twine getUID(const VPBlockBase *Block);
1283 void drawEdge(const VPBlockBase *From, const VPBlockBase *To, bool Hidden,
1318 template <> struct GraphTraits<VPBlockBase *> {
1319 using NodeRef = VPBlockBase *;
1320 using ChildIteratorType = SmallVectorImpl<VPBlockBase *>::iterator;
1333 template <> struct GraphTraits<const VPBlockBase *> {
1334 using NodeRef = const VPBlockBase *;
1335 using ChildIteratorType = SmallVectorImpl<VPBlockBase *>::const_iterator;
1350 template <> struct GraphTraits<Inverse<VPBlockBase *>> {
1351 using NodeRef = VPBlockBase *;
1352 using ChildIteratorType = SmallVectorImpl<VPBlockBase *>::iterator;
1373 struct GraphTraits<VPRegionBlock *> : public GraphTraits<VPBlockBase *> {
1392 : public GraphTraits<const VPBlockBase *> {
1411 : public GraphTraits<Inverse<VPBlockBase *>> {
1444 static void insertBlockAfter(VPBlockBase *NewBlock, VPBlockBase *BlockPtr) {
1461 static void insertTwoBlocksAfter(VPBlockBase *IfTrue, VPBlockBase *IfFalse,
1462 VPValue *Condition, VPBlockBase *BlockPtr) {
1478 static void connectBlocks(VPBlockBase *From, VPBlockBase *To) {
1489 static void disconnectBlocks(VPBlockBase *From, VPBlockBase *To) {
1512 void visitBlock(VPBlockBase *Block, Old2NewTy &Old2New,