diff options
author | Vladimir Marko <vmarko@google.com> | 2013-11-27 17:04:20 +0000 |
---|---|---|
committer | Vladimir Marko <vmarko@google.com> | 2013-12-17 18:24:13 +0000 |
commit | 5816ed48bc339c983b40dc493e96b97821ce7966 (patch) | |
tree | 1682c6d13ae274132f4e3630f9b20ab4bdb291a3 /compiler/dex/mir_analysis.cc | |
parent | 2b5eaa2b49f7489bafdadc4b4463ae27e4261817 (diff) | |
download | android_art-5816ed48bc339c983b40dc493e96b97821ce7966.tar.gz android_art-5816ed48bc339c983b40dc493e96b97821ce7966.tar.bz2 android_art-5816ed48bc339c983b40dc493e96b97821ce7966.zip |
Detect special methods at the end of verification.
This moves special method handling to method inliner
and prepares for eventual inlining of these methods.
Change-Id: I51c51b940fb7bc714e33135cd61be69467861352
Diffstat (limited to 'compiler/dex/mir_analysis.cc')
-rw-r--r-- | compiler/dex/mir_analysis.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/compiler/dex/mir_analysis.cc b/compiler/dex/mir_analysis.cc index 89af06e085..ab55333fa7 100644 --- a/compiler/dex/mir_analysis.cc +++ b/compiler/dex/mir_analysis.cc @@ -16,6 +16,8 @@ #include "compiler_internals.h" #include "dataflow_iterator-inl.h" +#include "dex/quick/dex_file_method_inliner.h" +#include "dex/quick/dex_file_to_method_inliner_map.h" namespace art { @@ -1052,7 +1054,9 @@ bool MIRGraph::SkipCompilation(Runtime::CompilerFilter compiler_filter) { } // Filter 3: if this method is a special pattern, go ahead and emit the canned pattern. - if (IsSpecialCase()) { + if (cu_->compiler_driver->GetMethodInlinerMap() != nullptr && + cu_->compiler_driver->GetMethodInlinerMap()->GetMethodInliner(cu_->dex_file) + ->IsSpecial(cu_->method_idx)) { return false; } |