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
diff --git a/compiler/driver/compiler_driver.cc b/compiler/driver/compiler_driver.cc
index dbebd26..1124541 100644
--- a/compiler/driver/compiler_driver.cc
+++ b/compiler/driver/compiler_driver.cc
@@ -337,11 +337,13 @@
std::string const& filename);
CompilerDriver::CompilerDriver(VerifiedMethodsData* verified_methods_data,
+ DexFileToMethodInlinerMap* method_inliner_map,
CompilerBackend compiler_backend, InstructionSet instruction_set,
InstructionSetFeatures instruction_set_features,
bool image, DescriptorSet* image_classes, size_t thread_count,
bool dump_stats)
: verified_methods_data_(verified_methods_data),
+ method_inliner_map_(method_inliner_map),
compiler_backend_(compiler_backend),
instruction_set_(instruction_set),
instruction_set_features_(instruction_set_features),
diff --git a/compiler/driver/compiler_driver.h b/compiler/driver/compiler_driver.h
index 14bfde6..f4cc84d 100644
--- a/compiler/driver/compiler_driver.h
+++ b/compiler/driver/compiler_driver.h
@@ -41,6 +41,7 @@
class AOTCompilationStats;
class ParallelCompilationManager;
class DexCompilationUnit;
+class DexFileToMethodInlinerMap;
class OatWriter;
class TimingLogger;
class VerifiedMethodsData;
@@ -92,6 +93,7 @@
// can assume will be in the image, with NULL implying all available
// classes.
explicit CompilerDriver(VerifiedMethodsData* verified_methods_data,
+ DexFileToMethodInlinerMap* method_inliner_map,
CompilerBackend compiler_backend, InstructionSet instruction_set,
InstructionSetFeatures instruction_set_features,
bool image, DescriptorSet* image_classes,
@@ -111,6 +113,10 @@
return verified_methods_data_;
}
+ DexFileToMethodInlinerMap* GetMethodInlinerMap() const {
+ return method_inliner_map_;
+ }
+
const InstructionSet& GetInstructionSet() const {
return instruction_set_;
}
@@ -397,6 +403,7 @@
std::vector<const PatchInformation*> methods_to_patch_;
VerifiedMethodsData* verified_methods_data_;
+ DexFileToMethodInlinerMap* method_inliner_map_;
CompilerBackend compiler_backend_;