summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp
diff options
context:
space:
mode:
authorDuncan P. N. Exon Smith <dexonsmith@apple.com>2014-04-25 04:38:17 +0000
committerDuncan P. N. Exon Smith <dexonsmith@apple.com>2014-04-25 04:38:17 +0000
commit46d9a56ce6c30c691a97d33a3d723724835262c8 (patch)
treedcf5b1d289d15fe63b3c59eefb7feb49495858c3 /llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp
parent50a1bb85b8f55e9ccf87587b0b7fed89b8dc9aef (diff)
downloadbcm5719-llvm-46d9a56ce6c30c691a97d33a3d723724835262c8.tar.gz
bcm5719-llvm-46d9a56ce6c30c691a97d33a3d723724835262c8.zip
blockfreq: Separate unwrapLoops() from finalizeMetrics()
<rdar://problem/14292693> llvm-svn: 207185
Diffstat (limited to 'llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp')
-rw-r--r--llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp b/llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp
index d58a7435a35..6b65bf6478e 100644
--- a/llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp
+++ b/llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp
@@ -846,20 +846,24 @@ static void unwrapLoopPackage(BlockFrequencyInfoImplBase &BFI,
}
}
-void BlockFrequencyInfoImplBase::finalizeMetrics() {
+void BlockFrequencyInfoImplBase::unwrapLoops() {
// Set initial frequencies from loop-local masses.
for (size_t Index = 0; Index < Working.size(); ++Index)
Freqs[Index].Floating = Working[Index].Mass.toFloat();
+ for (size_t Index = 0; Index < Working.size(); ++Index) {
+ if (Working[Index].isLoopHeader())
+ unwrapLoopPackage(*this, BlockNode(Index));
+ }
+}
+
+void BlockFrequencyInfoImplBase::finalizeMetrics() {
// Unwrap loop packages in reverse post-order, tracking min and max
// frequencies.
auto Min = Float::getLargest();
auto Max = Float::getZero();
for (size_t Index = 0; Index < Working.size(); ++Index) {
- if (Working[Index].isLoopHeader())
- unwrapLoopPackage(*this, BlockNode(Index));
-
- // Update max scale.
+ // Update min/max scale.
Min = std::min(Min, Freqs[Index].Floating);
Max = std::max(Max, Freqs[Index].Floating);
}
OpenPOWER on IntegriCloud