mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-26 12:20:42 +00:00
blockfreq: Separate unwrapLoops() from finalizeMetrics()
<rdar://problem/14292693> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@207185 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user