|
static cl::opt< int > | ProfitabilityMinPerLoopInstructions ("polly-detect-profitability-min-per-loop-insts", cl::desc("The minimal number of per-loop instructions before a single loop " "region is considered profitable"), cl::Hidden, cl::ValueRequired, cl::init(100000000), cl::cat(PollyCategory)) |
|
static cl::opt< bool, true > | XPollyProcessUnprofitable ("polly-process-unprofitable", cl::desc("Process scops that are unlikely to benefit from Polly optimizations."), cl::location(PollyProcessUnprofitable), cl::cat(PollyCategory)) |
|
static cl::list< std::string > | OnlyFunctions ("polly-only-func", cl::desc("Only run on functions that match a regex. " "Multiple regexes can be comma separated. " "Scop detection will run on all functions that match " "ANY of the regexes provided."), cl::CommaSeparated, cl::cat(PollyCategory)) |
|
static cl::list< std::string > | IgnoredFunctions ("polly-ignore-func", cl::desc("Ignore functions that match a regex. " "Multiple regexes can be comma separated. " "Scop detection will ignore all functions that match " "ANY of the regexes provided."), cl::CommaSeparated, cl::cat(PollyCategory)) |
|
static cl::opt< bool, true > | XAllowFullFunction ("polly-detect-full-functions", cl::desc("Allow the detection of full functions"), cl::location(polly::PollyAllowFullFunction), cl::init(false), cl::cat(PollyCategory)) |
|
static cl::opt< std::string > | OnlyRegion ("polly-only-region", cl::desc("Only run on certain regions (The provided identifier must " "appear in the name of the region's entry block"), cl::value_desc("identifier"), cl::ValueRequired, cl::init(""), cl::cat(PollyCategory)) |
|
static cl::opt< bool > | IgnoreAliasing ("polly-ignore-aliasing", cl::desc("Ignore possible aliasing of the array bases"), cl::Hidden, cl::cat(PollyCategory)) |
|
static cl::opt< bool, true > | XPollyAllowUnsignedOperations ("polly-allow-unsigned-operations", cl::desc("Allow unsigned operations such as comparisons or zero-extends."), cl::location(PollyAllowUnsignedOperations), cl::Hidden, cl::init(true), cl::cat(PollyCategory)) |
|
static cl::opt< bool, true > | XPollyUseRuntimeAliasChecks ("polly-use-runtime-alias-checks", cl::desc("Use runtime alias checks to resolve possible aliasing."), cl::location(PollyUseRuntimeAliasChecks), cl::Hidden, cl::init(true), cl::cat(PollyCategory)) |
|
static cl::opt< bool > | ReportLevel ("polly-report", cl::desc("Print information about the activities of Polly"), cl::cat(PollyCategory)) |
|
static cl::opt< bool > | AllowDifferentTypes ("polly-allow-differing-element-types", cl::desc("Allow different element types for array accesses"), cl::Hidden, cl::init(true), cl::cat(PollyCategory)) |
|
static cl::opt< bool > | AllowNonAffine ("polly-allow-nonaffine", cl::desc("Allow non affine access functions in arrays"), cl::Hidden, cl::cat(PollyCategory)) |
|
static cl::opt< bool > | AllowModrefCall ("polly-allow-modref-calls", cl::desc("Allow functions with known modref behavior"), cl::Hidden, cl::cat(PollyCategory)) |
|
static cl::opt< bool > | AllowNonAffineSubRegions ("polly-allow-nonaffine-branches", cl::desc("Allow non affine conditions for branches"), cl::Hidden, cl::init(true), cl::cat(PollyCategory)) |
|
static cl::opt< bool > | AllowNonAffineSubLoops ("polly-allow-nonaffine-loops", cl::desc("Allow non affine conditions for loops"), cl::Hidden, cl::cat(PollyCategory)) |
|
static cl::opt< bool, true > | TrackFailures ("polly-detect-track-failures", cl::desc("Track failure strings in detecting scop regions"), cl::location(PollyTrackFailures), cl::Hidden, cl::init(true), cl::cat(PollyCategory)) |
|
static cl::opt< bool > | KeepGoing ("polly-detect-keep-going", cl::desc("Do not fail on the first error."), cl::Hidden, cl::cat(PollyCategory)) |
|
static cl::opt< bool, true > | PollyDelinearizeX ("polly-delinearize", cl::desc("Delinearize array access functions"), cl::location(PollyDelinearize), cl::Hidden, cl::init(true), cl::cat(PollyCategory)) |
|
static cl::opt< bool > | VerifyScops ("polly-detect-verify", cl::desc("Verify the detected SCoPs after each transformation"), cl::Hidden, cl::cat(PollyCategory)) |
|
static cl::opt< bool, true > | XPollyInvariantLoadHoisting ("polly-invariant-load-hoisting", cl::desc("Hoist invariant loads."), cl::location(PollyInvariantLoadHoisting), cl::Hidden, cl::cat(PollyCategory)) |
|
static cl::opt< bool > | PollyAllowErrorBlocks ("polly-allow-error-blocks", cl::desc("Allow to speculate on the execution of 'error blocks'."), cl::Hidden, cl::init(true), cl::cat(PollyCategory)) |
|
| STATISTIC (NumScopRegions, "Number of scops") |
|
| STATISTIC (NumLoopsInScop, "Number of loops in scops") |
|
| STATISTIC (NumScopsDepthZero, "Number of scops with maximal loop depth 0") |
|
| STATISTIC (NumScopsDepthOne, "Number of scops with maximal loop depth 1") |
|
| STATISTIC (NumScopsDepthTwo, "Number of scops with maximal loop depth 2") |
|
| STATISTIC (NumScopsDepthThree, "Number of scops with maximal loop depth 3") |
|
| STATISTIC (NumScopsDepthFour, "Number of scops with maximal loop depth 4") |
|
| STATISTIC (NumScopsDepthFive, "Number of scops with maximal loop depth 5") |
|
| STATISTIC (NumScopsDepthLarger, "Number of scops with maximal loop depth 6 and larger") |
|
| STATISTIC (NumProfScopRegions, "Number of scops (profitable scops only)") |
|
| STATISTIC (NumLoopsInProfScop, "Number of loops in scops (profitable scops only)") |
|
| STATISTIC (NumLoopsOverall, "Number of total loops") |
|
| STATISTIC (NumProfScopsDepthZero, "Number of scops with maximal loop depth 0 (profitable scops only)") |
|
| STATISTIC (NumProfScopsDepthOne, "Number of scops with maximal loop depth 1 (profitable scops only)") |
|
| STATISTIC (NumProfScopsDepthTwo, "Number of scops with maximal loop depth 2 (profitable scops only)") |
|
| STATISTIC (NumProfScopsDepthThree, "Number of scops with maximal loop depth 3 (profitable scops only)") |
|
| STATISTIC (NumProfScopsDepthFour, "Number of scops with maximal loop depth 4 (profitable scops only)") |
|
| STATISTIC (NumProfScopsDepthFive, "Number of scops with maximal loop depth 5 (profitable scops only)") |
|
| STATISTIC (NumProfScopsDepthLarger, "Number of scops with maximal loop depth 6 and larger " "(profitable scops only)") |
|
| STATISTIC (MaxNumLoopsInScop, "Maximal number of loops in scops") |
|
| STATISTIC (MaxNumLoopsInProfScop, "Maximal number of loops in scops (profitable scops only)") |
|
static void | updateLoopCountStatistic (ScopDetection::LoopStats Stats, bool OnlyProfitable) |
|
static bool | doesStringMatchAnyRegex (StringRef Str, const cl::list< std::string > &RegexList) |
| Check if a string matches any regex in a list of regexes.
|
|
static bool | hasExitingBlocks (Loop *L) |
| Check whether L has exiting blocks.
|
|
static bool | isErrorBlockImpl (BasicBlock &BB, const Region &R, LoopInfo &LI, const DominatorTree &DT) |
|
static bool | regionWithoutLoops (Region &R, LoopInfo &LI) |
|
| INITIALIZE_PASS_BEGIN (ScopDetectionWrapperPass, "polly-detect", "Polly - Detect static control parts (SCoPs)", false, false) |
|
| INITIALIZE_PASS_DEPENDENCY (AAResultsWrapperPass) |
|
| INITIALIZE_PASS_DEPENDENCY (LoopInfoWrapperPass) |
|
| INITIALIZE_PASS_DEPENDENCY (RegionInfoPass) |
|
| INITIALIZE_PASS_DEPENDENCY (DominatorTreeWrapperPass) |
|
| INITIALIZE_PASS_DEPENDENCY (ScalarEvolutionWrapperPass) |
|
| INITIALIZE_PASS_DEPENDENCY (OptimizationRemarkEmitterWrapperPass) |
|
| INITIALIZE_PASS_END (ScopDetectionWrapperPass, "polly-detect", "Polly - Detect static control parts (SCoPs)", false, false) namespace |
|
| INITIALIZE_PASS_BEGIN (ScopDetectionPrinterLegacyPass, "polly-print-detect", "Polly - Print static control parts (SCoPs)", false, false) |
|
| INITIALIZE_PASS_DEPENDENCY (ScopDetectionWrapperPass) |
|