Lines Matching defs:VPRegionBlock
11 /// 1. VPBasicBlock and VPRegionBlock that inherit from a common pure virtual
64 class VPRegionBlock;
391 /// A VPBlockBase can be either a VPBasicBlock or a VPRegionBlock.
400 /// The immediate VPRegionBlock which this VPBlockBase belongs to, or null if
402 VPRegionBlock *Parent = nullptr;
484 VPRegionBlock *getParent() { return Parent; }
485 const VPRegionBlock *getParent() const { return Parent; }
495 void setParent(VPRegionBlock *P) { Parent = P; }
498 /// recursively, if the latter is a VPRegionBlock. Otherwise, if this
504 /// recursively, if the latter is a VPRegionBlock. Otherwise, if this
545 /// this VPBlockBase is the exit block of a VPRegionBlock and has no
547 /// VPRegionBlock that has successors and return them. If no such
548 /// VPRegionBlock exists, return the (empty) successors of the topmost
561 /// if this VPBlockBase is the entry block of a VPRegionBlock and has no
563 /// VPRegionBlock that has predecessors and return them. If no such
564 /// VPRegionBlock exists, return the (empty) predecessors of the topmost
3638 VPRegionBlock *getEnclosingLoopRegion();
3639 const VPRegionBlock *getEnclosingLoopRegion() const;
3710 /// VPRegionBlock represents a collection of VPBasicBlocks and VPRegionBlocks
3712 /// A VPRegionBlock may indicate that its contents are to be replicated several
3718 class VPRegionBlock : public VPBlockBase {
3721 /// Hold the Single Entry of the SESE region modelled by the VPRegionBlock.
3725 /// VPRegionBlock.
3733 VPRegionBlock(VPBlockBase *Entry, VPBlockBase *Exiting,
3742 VPRegionBlock(const std::string &Name = "", bool IsReplicator = false)
3747 ~VPRegionBlock() override {}
3757 /// Set \p EntryBlock as the entry VPBlockBase of this VPRegionBlock. \p
3769 /// Set \p ExitingBlock as the exiting VPBlockBase of this VPRegionBlock. \p
3789 /// this VPRegionBlock, thereby "executing" the VPlan.
3796 /// Print this VPRegionBlock to \p O (recursively), prefixing all lines with
3809 VPRegionBlock *clone() override;
3936 VPRegionBlock *VectorRegion = getVectorLoopRegion();
3942 /// Returns the VPRegionBlock of the vector loop.
3943 VPRegionBlock *getVectorLoopRegion();
3944 const VPRegionBlock *getVectorLoopRegion() const;
4107 /// Create a new VPRegionBlock with \p Entry, \p Exiting and \p Name. If \p
4110 VPRegionBlock *createVPRegionBlock(VPBlockBase *Entry, VPBlockBase *Exiting,
4113 auto *VPB = new VPRegionBlock(Entry, Exiting, Name, IsReplicator);
4118 /// Create a new VPRegionBlock with \p Name and entry and exiting blocks set
4122 VPRegionBlock *createVPRegionBlock(const std::string &Name = "",
4124 auto *VPB = new VPRegionBlock(Name, IsReplicator);
4170 void dumpRegion(const VPRegionBlock *Region);
4221 void visitRegion(VPRegionBlock *Region, Old2NewTy &Old2New,