diff options
Diffstat (limited to 'lib/Transforms/Scalar/LoopUnrollPass.cpp')
| -rw-r--r-- | lib/Transforms/Scalar/LoopUnrollPass.cpp | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/lib/Transforms/Scalar/LoopUnrollPass.cpp b/lib/Transforms/Scalar/LoopUnrollPass.cpp index 4ccbfc953e0c..d702dc0b4ee9 100644 --- a/lib/Transforms/Scalar/LoopUnrollPass.cpp +++ b/lib/Transforms/Scalar/LoopUnrollPass.cpp @@ -229,7 +229,7 @@ namespace { unsigned DynamicCostSavingsDiscount, uint64_t UnrolledCost, uint64_t RolledDynamicCost); }; -} +} // namespace char LoopUnroll::ID = 0; INITIALIZE_PASS_BEGIN(LoopUnroll, "loop-unroll", "Unroll loops", false, false) @@ -455,13 +455,15 @@ struct EstimatedUnrollCost { /// /// Complete loop unrolling can make some loads constant, and we need to know /// if that would expose any further optimization opportunities. This routine -/// estimates this optimization. It assigns computed number of instructions, -/// that potentially might be optimized away, to -/// NumberOfOptimizedInstructions, and total number of instructions to -/// UnrolledLoopSize (not counting blocks that won't be reached, if we were -/// able to compute the condition). -/// \returns false if we can't analyze the loop, or if we discovered that -/// unrolling won't give anything. Otherwise, returns true. +/// estimates this optimization. It computes cost of unrolled loop +/// (UnrolledCost) and dynamic cost of the original loop (RolledDynamicCost). By +/// dynamic cost we mean that we won't count costs of blocks that are known not +/// to be executed (i.e. if we have a branch in the loop and we know that at the +/// given iteration its condition would be resolved to true, we won't add up the +/// cost of the 'false'-block). +/// \returns Optional value, holding the RolledDynamicCost and UnrolledCost. If +/// the analysis failed (no benefits expected from the unrolling, or the loop is +/// too big to analyze), the returned value is None. Optional<EstimatedUnrollCost> analyzeLoopUnrollCost(const Loop *L, unsigned TripCount, ScalarEvolution &SE, const TargetTransformInfo &TTI, |
