summaryrefslogtreecommitdiff
path: root/compiler/optimizing/loop_optimization.cc
diff options
context:
space:
mode:
authorNicolas Geoffray <ngeoffray@google.com>2017-06-28 17:40:18 +0100
committerNicolas Geoffray <ngeoffray@google.com>2017-06-28 21:10:13 +0100
commitf57c1ae3682f95e6d7ce08ae4c241d04b09de658 (patch)
treebf12e0e19626c28edd933fb31c5652e7f974bf1d /compiler/optimizing/loop_optimization.cc
parent0ca1ae25d33dc8b92d9eecd585657f74cbb313e9 (diff)
Prevent loop optimization in debuggable mode.
bug: 33775412 Test: no scanner crash (torn on whether I should spend some time working on a smali test) Change-Id: I8b94725ce57171b592bede4bf55cd0a9626a8a10
Diffstat (limited to 'compiler/optimizing/loop_optimization.cc')
-rw-r--r--compiler/optimizing/loop_optimization.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/compiler/optimizing/loop_optimization.cc b/compiler/optimizing/loop_optimization.cc
index d2493137fe..0bf5720f4f 100644
--- a/compiler/optimizing/loop_optimization.cc
+++ b/compiler/optimizing/loop_optimization.cc
@@ -1448,6 +1448,12 @@ bool HLoopOptimization::VectorizeHalvingAddIdiom(LoopNode* node,
//
bool HLoopOptimization::TrySetPhiInduction(HPhi* phi, bool restrict_uses) {
+ // Special case Phis that have equivalent in a debuggable setup. Our graph checker isn't
+ // smart enough to follow strongly connected components (and it's probably not worth
+ // it to make it so). See b/33775412.
+ if (graph_->IsDebuggable() && phi->HasEquivalentPhi()) {
+ return false;
+ }
DCHECK(iset_->empty());
ArenaSet<HInstruction*>* set = induction_range_.LookupCycle(phi);
if (set != nullptr) {