diff options
author | Calin Juravle <calin@google.com> | 2015-10-26 12:39:04 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2015-10-26 12:39:04 +0000 |
commit | 1839d3c7557a48358dcdb78934aac8f62d0916bc (patch) | |
tree | 983e7803dbb3c3362f4bedfb81d2f3fb47744a3b /compiler/optimizing/optimizing_compiler.cc | |
parent | 605f27d8719c8238679038b452b4665f47a6916a (diff) | |
parent | 271743601650308c7ac5c7a3ec35025d8130a298 (diff) |
Merge "Revert "Run type propagation after inliner only when needed.""
Diffstat (limited to 'compiler/optimizing/optimizing_compiler.cc')
-rw-r--r-- | compiler/optimizing/optimizing_compiler.cc | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/compiler/optimizing/optimizing_compiler.cc b/compiler/optimizing/optimizing_compiler.cc index ec9b4d9797..d6f2543890 100644 --- a/compiler/optimizing/optimizing_compiler.cc +++ b/compiler/optimizing/optimizing_compiler.cc @@ -390,9 +390,19 @@ static void MaybeRunInliner(HGraph* graph, return; } - HInliner* inliner = new (graph->GetArena()) HInliner( + ArenaAllocator* arena = graph->GetArena(); + HInliner* inliner = new (arena) HInliner( graph, dex_compilation_unit, dex_compilation_unit, driver, handles, stats); - HOptimization* optimizations[] = { inliner }; + ReferenceTypePropagation* type_propagation = + new (arena) ReferenceTypePropagation(graph, handles, + "reference_type_propagation_after_inlining"); + + HOptimization* optimizations[] = { + inliner, + // Run another type propagation phase: inlining will open up more opportunities + // to remove checkcast/instanceof and null checks. + type_propagation, + }; RunOptimizations(optimizations, arraysize(optimizations), pass_observer); } |