summaryrefslogtreecommitdiffstats
path: root/compiler/optimizing/graph_visualizer.cc
diff options
context:
space:
mode:
authorDavid Brazdil <dbrazdil@google.com>2015-05-07 09:59:30 +0100
committerDavid Brazdil <dbrazdil@google.com>2015-05-13 10:02:07 +0100
commite8ff50df01c89e1b5264a5a900cfebdde87a9b44 (patch)
treea2c0cc80afcf4cbce0f2293e09c49cee98e5a4bb /compiler/optimizing/graph_visualizer.cc
parent6185884829333f0035de0488b1c4a2e84c7dd38b (diff)
downloadandroid_art-e8ff50df01c89e1b5264a5a900cfebdde87a9b44.tar.gz
android_art-e8ff50df01c89e1b5264a5a900cfebdde87a9b44.tar.bz2
android_art-e8ff50df01c89e1b5264a5a900cfebdde87a9b44.zip
ART: Rediscover loops after deleting blocks in DCE
The way DCE currently updates loop information does not cover all cases. This patch removes the logic, resets loop information of live blocks to pre-SSA state and reanalyzes the affected loops. Change-Id: I0b996a70235b95a8db0de9a23a03f71db57a21b8 (cherry picked from commit a4b8c21dae70ae34aee13628632c39a675c06022)
Diffstat (limited to 'compiler/optimizing/graph_visualizer.cc')
-rw-r--r--compiler/optimizing/graph_visualizer.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler/optimizing/graph_visualizer.cc b/compiler/optimizing/graph_visualizer.cc
index 7130127136..f5c630bf97 100644
--- a/compiler/optimizing/graph_visualizer.cc
+++ b/compiler/optimizing/graph_visualizer.cc
@@ -17,6 +17,7 @@
#include "graph_visualizer.h"
#include "code_generator.h"
+#include "dead_code_elimination.h"
#include "licm.h"
#include "nodes.h"
#include "optimization.h"
@@ -253,7 +254,8 @@ class HGraphVisualizerPrinter : public HGraphVisitor {
}
}
output_ << " (liveness: " << instruction->GetLifetimePosition() << ")";
- } else if (IsPass(LICM::kLoopInvariantCodeMotionPassName)) {
+ } else if (IsPass(LICM::kLoopInvariantCodeMotionPassName)
+ || IsPass(HDeadCodeElimination::kFinalDeadCodeEliminationPassName)) {
output_ << " ( loop_header:";
HLoopInformation* info = instruction->GetBlock()->GetLoopInformation();
if (info == nullptr) {