Home | History | Annotate | Download | only in Analysis

Lines Matching defs:RegionT

36                            RegionT *Parent)
59 std::vector<RegionT *> RegionQueue;
62 RegionQueue.push_back(static_cast<RegionT *>(this));
64 RegionT *R = RegionQueue.back();
68 for (std::unique_ptr<RegionT> &Child : *R) {
77 std::vector<RegionT *> RegionQueue;
80 RegionQueue.push_back(static_cast<RegionT *>(this));
82 RegionT *R = RegionQueue.back();
86 for (std::unique_ptr<RegionT> &Child : *R) {
274 for (const std::unique_ptr<RegionT> &R : *this)
282 return GraphTraits<RegionT *>::nodes_begin(static_cast<RegionT *>(this));
287 return GraphTraits<RegionT *>::nodes_end(static_cast<RegionT *>(this));
293 return GraphTraits<const RegionT *>::nodes_begin(
294 static_cast<const RegionT *>(this));
300 return GraphTraits<const RegionT *>::nodes_end(
301 static_cast<const RegionT *>(this));
305 typename Tr::RegionT *RegionBase<Tr>::getSubRegionNode(BlockT *BB) const {
306 typedef typename Tr::RegionT RegionT;
307 RegionT *R = RI->getRegionFor(BB);
333 BB, make_unique<RegionNodeT>(static_cast<RegionT *>(Deconst), BB)};
342 if (RegionT *Child = getSubRegionNode(BB))
349 void RegionBase<Tr>::transferChildrenTo(RegionT *To) {
350 for (std::unique_ptr<RegionT> &R : *this) {
358 void RegionBase<Tr>::addSubRegion(RegionT *SubRegion, bool moveChildren) {
361 [&](const std::unique_ptr<RegionT> &R) {
366 SubRegion->parent = static_cast<RegionT *>(this);
367 children.push_back(std::unique_ptr<RegionT>(SubRegion));
384 std::vector<std::unique_ptr<RegionT>> Keep;
385 for (std::unique_ptr<RegionT> &R : *this) {
401 typename Tr::RegionT *RegionBase<Tr>::removeSubRegion(RegionT *Child) {
405 find_if(children, [&](const std::unique_ptr<RegionT> &R) {
417 for (RegionT *R = getParent(); R != nullptr; R = R->getParent())
424 typename Tr::RegionT *RegionBase<Tr>::getExpandedRegion() const {
430 RegionT *R = RI->getRegionFor(exit);
438 return new RegionT(getEntry(), *BlockTraits::child_begin(exit), RI, DT);
451 return new RegionT(getEntry(), R->getExit(), RI, DT);
481 for (const std::unique_ptr<RegionT> &R : *this)
499 for (std::unique_ptr<RegionT> &R : *this)
517 void RegionInfoBase<Tr>::verifyBBMap(const RegionT *R) const {
521 const RegionT *SR = Element->template getNodeAs<RegionT>();
628 typename Tr::RegionT *RegionInfoBase<Tr>::createRegion(BlockT *entry,
635 RegionT *region =
636 new RegionT(entry, exit, static_cast<RegionInfoT *>(this), DT);
658 RegionT *lastRegion = nullptr;
670 RegionT *newRegion = createRegion(entry, exit);
705 typename Tr::RegionT *RegionInfoBase<Tr>::getTopMostParent(RegionT *region) {
713 void RegionInfoBase<Tr>::buildRegionsTree(DomTreeNodeT *N, RegionT *region) {
725 RegionT *newRegion = it->second;
746 typename Tr::RegionT::PrintStyle RegionInfoBase<Tr>::printStyle =
783 typename Tr::RegionT *RegionInfoBase<Tr>::getRegionFor(BlockT *BB) const {
789 void RegionInfoBase<Tr>::setRegionFor(BlockT *BB, RegionT *R) {
794 typename Tr::RegionT *RegionInfoBase<Tr>::operator[](BlockT *BB) const {
805 RegionT *R = getRegionFor(BB);
818 RegionT *ExitR = getRegionFor(Exit);
840 typename Tr::RegionT *RegionInfoBase<Tr>::getCommonRegion(RegionT *A,
841 RegionT *B) const {
854 typename Tr::RegionT *
855 RegionInfoBase<Tr>::getCommonRegion(SmallVectorImpl<RegionT *> &Regions) const {
856 RegionT *ret = Regions.back();
859 for (RegionT *R : Regions)
866 typename Tr::RegionT *
868 RegionT *ret = getRegionFor(BBs.back());