diff options
Diffstat (limited to 'compiler/dex/mir_optimization.cc')
-rw-r--r-- | compiler/dex/mir_optimization.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/compiler/dex/mir_optimization.cc b/compiler/dex/mir_optimization.cc index 0d5da32d6d..3482602704 100644 --- a/compiler/dex/mir_optimization.cc +++ b/compiler/dex/mir_optimization.cc @@ -1355,8 +1355,13 @@ void MIRGraph::EliminateClassInitChecksEnd() { temp_scoped_alloc_.reset(); } +static void DisableGVNDependentOptimizations(CompilationUnit* cu) { + cu->disable_opt |= (1u << kGvnDeadCodeElimination); +} + bool MIRGraph::ApplyGlobalValueNumberingGate() { if (GlobalValueNumbering::Skip(cu_)) { + DisableGVNDependentOptimizations(cu_); return false; } @@ -1407,7 +1412,7 @@ void MIRGraph::ApplyGlobalValueNumberingEnd() { cu_->disable_opt |= (1u << kLocalValueNumbering); } else { LOG(WARNING) << "GVN failed for " << PrettyMethod(cu_->method_idx, *cu_->dex_file); - cu_->disable_opt |= (1u << kGvnDeadCodeElimination); + DisableGVNDependentOptimizations(cu_); } } |