diff options
author | David Brazdil <dbrazdil@google.com> | 2015-05-07 09:59:30 +0100 |
---|---|---|
committer | David Brazdil <dbrazdil@google.com> | 2015-05-13 10:02:07 +0100 |
commit | e8ff50df01c89e1b5264a5a900cfebdde87a9b44 (patch) | |
tree | a2c0cc80afcf4cbce0f2293e09c49cee98e5a4bb /compiler/optimizing/graph_visualizer.cc | |
parent | 6185884829333f0035de0488b1c4a2e84c7dd38b (diff) | |
download | android_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.cc | 4 |
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) { |