Lines Matching refs:VPBlockBase
422 class VPBlockBase {
435 SmallVector<VPBlockBase *, 1> Predecessors;
438 SmallVector<VPBlockBase *, 1> Successors;
445 void appendSuccessor(VPBlockBase *Successor) { in appendSuccessor()
451 void appendPredecessor(VPBlockBase *Predecessor) { in appendPredecessor()
457 void removePredecessor(VPBlockBase *Predecessor) { in removePredecessor()
464 void removeSuccessor(VPBlockBase *Successor) { in removeSuccessor()
471 VPBlockBase(const unsigned char SC, const std::string &N) in VPBlockBase() function
481 using VPBlocksTy = SmallVectorImpl<VPBlockBase *>;
483 virtual ~VPBlockBase() = default;
522 iterator_range<VPBlockBase **> successors() { return Successors; } in successors()
529 VPBlockBase *getSingleSuccessor() const { in getSingleSuccessor()
535 VPBlockBase *getSinglePredecessor() const { in getSinglePredecessor()
546 VPBlockBase *getEnclosingBlockWithSuccessors();
551 VPBlockBase *getEnclosingBlockWithPredecessors();
565 VPBlockBase *getSingleHierarchicalSuccessor() { in getSingleHierarchicalSuccessor()
581 VPBlockBase *getSingleHierarchicalPredecessor() { in getSingleHierarchicalPredecessor()
588 void setOneSuccessor(VPBlockBase *Successor) { in setOneSuccessor()
599 void setTwoSuccessors(VPBlockBase *IfTrue, VPBlockBase *IfFalse) { in setTwoSuccessors()
608 void setPredecessors(ArrayRef<VPBlockBase *> NewPreds) { in setPredecessors()
625 static void deleteCFG(VPBlockBase *Entry);
2419 class VPBasicBlock : public VPBlockBase {
2429 : VPBlockBase(VPBasicBlockSC, Name.str()) {
2474 static inline bool classof(const VPBlockBase *V) { in classof()
2475 return V->getVPBlockID() == VPBlockBase::VPBasicBlockSC; in classof()
2518 using VPBlockBase::print; // Get the print(raw_stream &O) version.
2543 class VPRegionBlock : public VPBlockBase {
2545 VPBlockBase *Entry;
2549 VPBlockBase *Exiting;
2556 VPRegionBlock(VPBlockBase *Entry, VPBlockBase *Exiting,
2558 : VPBlockBase(VPRegionBlockSC, Name), Entry(Entry), Exiting(Exiting), in VPBlockBase() function
2566 : VPBlockBase(VPRegionBlockSC, Name), Entry(nullptr), Exiting(nullptr), in VPBlockBase() function
2578 static inline bool classof(const VPBlockBase *V) { in classof()
2579 return V->getVPBlockID() == VPBlockBase::VPRegionBlockSC; in classof()
2582 const VPBlockBase *getEntry() const { return Entry; } in getEntry()
2583 VPBlockBase *getEntry() { return Entry; } in getEntry()
2587 void setEntry(VPBlockBase *EntryBlock) { in setEntry()
2594 const VPBlockBase *getExiting() const { return Exiting; } in getExiting()
2595 VPBlockBase *getExiting() { return Exiting; } in getExiting()
2599 void setExiting(VPBlockBase *ExitingBlock) { in setExiting()
2631 using VPBlockBase::print; // Get the print(raw_stream &O) version.
2904 SmallDenseMap<const VPBlockBase *, unsigned> BlockID;
2912 void dumpBlock(const VPBlockBase *Block);
2916 void dumpEdges(const VPBlockBase *Block);
2925 unsigned getOrCreateBID(const VPBlockBase *Block) { in getOrCreateBID()
2929 Twine getOrCreateName(const VPBlockBase *Block);
2931 Twine getUID(const VPBlockBase *Block);
2934 void drawEdge(const VPBlockBase *From, const VPBlockBase *To, bool Hidden,
2977 static void insertBlockAfter(VPBlockBase *NewBlock, VPBlockBase *BlockPtr) { in insertBlockAfter()
2982 SmallVector<VPBlockBase *> Succs(BlockPtr->successors()); in insertBlockAfter()
2983 for (VPBlockBase *Succ : Succs) { in insertBlockAfter()
2996 static void insertTwoBlocksAfter(VPBlockBase *IfTrue, VPBlockBase *IfFalse, in insertTwoBlocksAfter()
2997 VPBlockBase *BlockPtr) { in insertTwoBlocksAfter()
3013 static void connectBlocks(VPBlockBase *From, VPBlockBase *To) { in connectBlocks()
3024 static void disconnectBlocks(VPBlockBase *From, VPBlockBase *To) { in disconnectBlocks()
3036 const VPBlockBase, VPBlockBase>; in blocksOnly()
3065 void visitBlock(VPBlockBase *Block, Old2NewTy &Old2New,