Changeset View
Changeset View
Standalone View
Standalone View
include/polly/ScopInfo.h
Show First 20 Lines • Show All 1,607 Lines • ▼ Show 20 Lines | private: | ||||
ScalarEvolution *SE; | ScalarEvolution *SE; | ||||
/// The underlying Region. | /// The underlying Region. | ||||
Region &R; | Region &R; | ||||
/// The name of the SCoP (identical to the regions name) | /// The name of the SCoP (identical to the regions name) | ||||
std::string name; | std::string name; | ||||
/// The ID to be assigned to the next Scop in a function | |||||
static int NextScopID; | |||||
/// The name of the function currently under consideration | |||||
static std::string CurrentFunc; | |||||
// Access functions of the SCoP. | // Access functions of the SCoP. | ||||
// | // | ||||
// This owns all the MemoryAccess objects of the Scop created in this pass. | // This owns all the MemoryAccess objects of the Scop created in this pass. | ||||
AccFuncVector AccessFunctions; | AccFuncVector AccessFunctions; | ||||
/// Flag to indicate that the scheduler actually optimized the SCoP. | /// Flag to indicate that the scheduler actually optimized the SCoP. | ||||
bool IsOptimized; | bool IsOptimized; | ||||
▲ Show 20 Lines • Show All 176 Lines • ▼ Show 20 Lines | private: | ||||
InvariantEquivClassesTy InvariantEquivClasses; | InvariantEquivClassesTy InvariantEquivClasses; | ||||
/// The smallest array index not yet assigned. | /// The smallest array index not yet assigned. | ||||
long ArrayIdx = 0; | long ArrayIdx = 0; | ||||
/// The smallest statement index not yet assigned. | /// The smallest statement index not yet assigned. | ||||
long StmtIdx = 0; | long StmtIdx = 0; | ||||
/// A number that uniquely represents a Scop within its function | |||||
const int ID; | |||||
/// Return the ID for a new Scop within a function | |||||
static int getNextID(std::string ParentFunc); | |||||
/// Scop constructor; invoked from ScopBuilder::buildScop. | /// Scop constructor; invoked from ScopBuilder::buildScop. | ||||
Scop(Region &R, ScalarEvolution &SE, LoopInfo &LI, | Scop(Region &R, ScalarEvolution &SE, LoopInfo &LI, | ||||
ScopDetection::DetectionContext &DC); | ScopDetection::DetectionContext &DC); | ||||
//@} | //@} | ||||
/// Initialize this ScopBuilder. | /// Initialize this ScopBuilder. | ||||
void init(AliasAnalysis &AA, AssumptionCache &AC, DominatorTree &DT, | void init(AliasAnalysis &AA, AssumptionCache &AC, DominatorTree &DT, | ||||
▲ Show 20 Lines • Show All 554 Lines • ▼ Show 20 Lines | public: | ||||
bool isOptimized() const { return IsOptimized; } | bool isOptimized() const { return IsOptimized; } | ||||
/// Mark the SCoP to be skipped by ScopPass passes. | /// Mark the SCoP to be skipped by ScopPass passes. | ||||
void markAsToBeSkipped() { SkipScop = true; } | void markAsToBeSkipped() { SkipScop = true; } | ||||
/// Check if the SCoP is to be skipped by ScopPass passes. | /// Check if the SCoP is to be skipped by ScopPass passes. | ||||
bool isToBeSkipped() const { return SkipScop; } | bool isToBeSkipped() const { return SkipScop; } | ||||
/// Return the ID of the Scop | |||||
int getID() const { return ID; } | |||||
/// Get the name of the entry and exit blocks of this Scop. | /// Get the name of the entry and exit blocks of this Scop. | ||||
/// | /// | ||||
/// These along with the function name can uniquely identify a Scop. | /// These along with the function name can uniquely identify a Scop. | ||||
/// | /// | ||||
/// @return std::pair whose first element is the entry name & second element | /// @return std::pair whose first element is the entry name & second element | ||||
/// is the exit name. | /// is the exit name. | ||||
std::pair<std::string, std::string> getEntryExitStr() const; | std::pair<std::string, std::string> getEntryExitStr() const; | ||||
▲ Show 20 Lines • Show All 562 Lines • Show Last 20 Lines |