Polly 19.0.0git
Public Types | Public Member Functions | Private Attributes | List of all members
polly::ScopInfo Class Reference

#include <ScopInfo.h>

Public Types

using RegionToScopMapTy = MapVector< Region *, std::unique_ptr< Scop > >
 
using reverse_iterator = RegionToScopMapTy::reverse_iterator
 
using const_reverse_iterator = RegionToScopMapTy::const_reverse_iterator
 
using iterator = RegionToScopMapTy::iterator
 
using const_iterator = RegionToScopMapTy::const_iterator
 

Public Member Functions

 ScopInfo (const DataLayout &DL, ScopDetection &SD, ScalarEvolution &SE, LoopInfo &LI, AAResults &AA, DominatorTree &DT, AssumptionCache &AC, OptimizationRemarkEmitter &ORE)
 
ScopgetScop (Region *R) const
 Get the Scop object for the given Region.
 
void recompute ()
 Recompute the Scop-Information for a function.
 
bool invalidate (Function &F, const PreservedAnalyses &PA, FunctionAnalysisManager::Invalidator &Inv)
 Handle invalidation explicitly.
 
iterator begin ()
 
iterator end ()
 
const_iterator begin () const
 
const_iterator end () const
 
reverse_iterator rbegin ()
 
reverse_iterator rend ()
 
const_reverse_iterator rbegin () const
 
const_reverse_iterator rend () const
 
bool empty () const
 

Private Attributes

RegionToScopMapTy RegionToScopMap
 A map of Region to its Scop object containing Polly IR of static control part.
 
const DataLayout & DL
 
ScopDetectionSD
 
ScalarEvolution & SE
 
LoopInfo & LI
 
AAResults & AA
 
DominatorTree & DT
 
AssumptionCache & AC
 
OptimizationRemarkEmitter & ORE
 

Detailed Description

Definition at line 2708 of file ScopInfo.h.

Member Typedef Documentation

◆ const_iterator

using polly::ScopInfo::const_iterator = RegionToScopMapTy::const_iterator

Definition at line 2714 of file ScopInfo.h.

◆ const_reverse_iterator

using polly::ScopInfo::const_reverse_iterator = RegionToScopMapTy::const_reverse_iterator

Definition at line 2712 of file ScopInfo.h.

◆ iterator

using polly::ScopInfo::iterator = RegionToScopMapTy::iterator

Definition at line 2713 of file ScopInfo.h.

◆ RegionToScopMapTy

using polly::ScopInfo::RegionToScopMapTy = MapVector<Region *, std::unique_ptr<Scop> >

Definition at line 2710 of file ScopInfo.h.

◆ reverse_iterator

using polly::ScopInfo::reverse_iterator = RegionToScopMapTy::reverse_iterator

Definition at line 2711 of file ScopInfo.h.

Constructor & Destructor Documentation

◆ ScopInfo()

polly::ScopInfo::ScopInfo ( const DataLayout &  DL,
ScopDetection SD,
ScalarEvolution &  SE,
LoopInfo &  LI,
AAResults &  AA,
DominatorTree &  DT,
AssumptionCache &  AC,
OptimizationRemarkEmitter &  ORE 
)

Member Function Documentation

◆ begin() [1/2]

iterator polly::ScopInfo::begin ( )
inline

Definition at line 2756 of file ScopInfo.h.

References RegionToScopMap.

◆ begin() [2/2]

const_iterator polly::ScopInfo::begin ( ) const
inline

Definition at line 2758 of file ScopInfo.h.

References RegionToScopMap.

◆ empty()

bool polly::ScopInfo::empty ( ) const
inline

Definition at line 2764 of file ScopInfo.h.

References RegionToScopMap.

◆ end() [1/2]

iterator polly::ScopInfo::end ( )
inline

Definition at line 2757 of file ScopInfo.h.

References RegionToScopMap.

◆ end() [2/2]

const_iterator polly::ScopInfo::end ( ) const
inline

Definition at line 2759 of file ScopInfo.h.

References RegionToScopMap.

◆ getScop()

Scop * polly::ScopInfo::getScop ( Region *  R) const
inline

Get the Scop object for the given Region.

Returns
If the given region is the maximal region within a scop, return the scop object. If the given region is a subregion, return a nullptr. Top level region containing the entry block of a function is not considered in the scop creation.

Definition at line 2740 of file ScopInfo.h.

References RegionToScopMap.

◆ invalidate()

bool ScopInfo::invalidate ( Function &  F,
const PreservedAnalyses &  PA,
FunctionAnalysisManager::Invalidator &  Inv 
)

Handle invalidation explicitly.

Definition at line 2726 of file ScopInfo.cpp.

◆ rbegin() [1/2]

reverse_iterator polly::ScopInfo::rbegin ( )
inline

Definition at line 2760 of file ScopInfo.h.

References RegionToScopMap.

◆ rbegin() [2/2]

const_reverse_iterator polly::ScopInfo::rbegin ( ) const
inline

Definition at line 2762 of file ScopInfo.h.

References RegionToScopMap.

◆ recompute()

void ScopInfo::recompute ( )

Recompute the Scop-Information for a function.

This invalidates any iterators.

Create polyhedral description of scops for all the valid regions of a function.

Definition at line 2702 of file ScopInfo.cpp.

References AA, AC, assert, polly::ScopDetection::countBeneficialLoops(), DL, DT, polly::ScopBuilder::getScop(), polly::ScopDetection::isMaxRegionInScop(), LI, ORE, RegionToScopMap, SD, SE, and updateLoopCountStatistic().

◆ rend() [1/2]

reverse_iterator polly::ScopInfo::rend ( )
inline

Definition at line 2761 of file ScopInfo.h.

References RegionToScopMap.

◆ rend() [2/2]

const_reverse_iterator polly::ScopInfo::rend ( ) const
inline

Definition at line 2763 of file ScopInfo.h.

References RegionToScopMap.

Member Data Documentation

◆ AA

AAResults& polly::ScopInfo::AA
private

Definition at line 2724 of file ScopInfo.h.

Referenced by recompute().

◆ AC

AssumptionCache& polly::ScopInfo::AC
private

Definition at line 2726 of file ScopInfo.h.

Referenced by recompute().

◆ DL

const DataLayout& polly::ScopInfo::DL
private

Definition at line 2720 of file ScopInfo.h.

Referenced by recompute().

◆ DT

DominatorTree& polly::ScopInfo::DT
private

Definition at line 2725 of file ScopInfo.h.

Referenced by recompute().

◆ LI

LoopInfo& polly::ScopInfo::LI
private

Definition at line 2723 of file ScopInfo.h.

Referenced by recompute().

◆ ORE

OptimizationRemarkEmitter& polly::ScopInfo::ORE
private

Definition at line 2727 of file ScopInfo.h.

Referenced by recompute().

◆ RegionToScopMap

RegionToScopMapTy polly::ScopInfo::RegionToScopMap
private

A map of Region to its Scop object containing Polly IR of static control part.

Definition at line 2719 of file ScopInfo.h.

Referenced by begin(), empty(), end(), getScop(), rbegin(), recompute(), and rend().

◆ SD

ScopDetection& polly::ScopInfo::SD
private

Definition at line 2721 of file ScopInfo.h.

Referenced by recompute().

◆ SE

ScalarEvolution& polly::ScopInfo::SE
private

Definition at line 2722 of file ScopInfo.h.

Referenced by recompute().


The documentation for this class was generated from the following files: