summaryrefslogtreecommitdiff
path: root/compiler/optimizing/loop_optimization.cc
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/optimizing/loop_optimization.cc')
-rw-r--r--compiler/optimizing/loop_optimization.cc6
1 files changed, 5 insertions, 1 deletions
diff --git a/compiler/optimizing/loop_optimization.cc b/compiler/optimizing/loop_optimization.cc
index 95838380cc..26c9ab83c2 100644
--- a/compiler/optimizing/loop_optimization.cc
+++ b/compiler/optimizing/loop_optimization.cc
@@ -71,7 +71,7 @@ HLoopOptimization::HLoopOptimization(HGraph* graph,
void HLoopOptimization::Run() {
// Well-behaved loops only.
// TODO: make this less of a sledgehammer.
- if (graph_->HasTryCatch() || graph_->HasIrreducibleLoops()) {
+ if (!graph_->HasLoops() || graph_->HasTryCatch() || graph_->HasIrreducibleLoops()) {
return;
}
@@ -84,6 +84,10 @@ void HLoopOptimization::Run() {
// Perform loop optimizations.
LocalRun();
+ if (top_loop_ == nullptr) {
+ graph_->SetHasLoops(false);
+ }
+
// Detach.
loop_allocator_ = nullptr;
last_loop_ = top_loop_ = nullptr;