blockfreq: Unwrap from Loops
authorDuncan P. N. Exon Smith <dexonsmith@apple.com>
Fri, 25 Apr 2014 04:38:20 +0000 (04:38 +0000)
committerDuncan P. N. Exon Smith <dexonsmith@apple.com>
Fri, 25 Apr 2014 04:38:20 +0000 (04:38 +0000)
When unwrapping loops, just visit the loops rather than all nodes.

<rdar://problem/14292693>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@207186 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Analysis/BlockFrequencyInfoImpl.cpp

index 6b65bf6478ed3de8ef199e261af6fd191a4e269c..fd4e7448acba3bb0bffdd3dce3ef47f72570a48b 100644 (file)
@@ -851,10 +851,8 @@ void BlockFrequencyInfoImplBase::unwrapLoops() {
   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));
-  }
+  for (const LoopData &L : Loops)
+    unwrapLoopPackage(*this, L.getHeader());
 }
 
 void BlockFrequencyInfoImplBase::finalizeMetrics() {