diff options
-rw-r--r-- | compiler/compiler.h | 10 | ||||
-rw-r--r-- | compiler/dex/quick/quick_compiler.cc | 14 | ||||
-rw-r--r-- | compiler/dex/quick/quick_compiler.h | 8 | ||||
-rw-r--r-- | compiler/driver/compiler_driver.cc | 10 | ||||
-rw-r--r-- | compiler/optimizing/optimizing_compiler.cc | 14 |
5 files changed, 9 insertions, 47 deletions
diff --git a/compiler/compiler.h b/compiler/compiler.h index a04641e3fa..94b0fe33db 100644 --- a/compiler/compiler.h +++ b/compiler/compiler.h @@ -63,13 +63,6 @@ class Compiler { virtual uintptr_t GetEntryPointOf(mirror::ArtMethod* method) const SHARED_LOCKS_REQUIRED(Locks::mutator_lock_) = 0; - virtual bool WriteElf(art::File* file, - OatWriter* oat_writer, - const std::vector<const art::DexFile*>& dex_files, - const std::string& android_root, - bool is_host) const - SHARED_LOCKS_REQUIRED(Locks::mutator_lock_) = 0; - uint64_t GetMaximumCompilationTimeBeforeWarning() const { return maximum_compilation_time_before_warning_; } @@ -107,9 +100,6 @@ class Compiler { return driver_; } - // Whether to produce 64-bit ELF files for 64-bit targets. Leave this off for now. - static constexpr bool kProduce64BitELFFiles = false; - private: CompilerDriver* const driver_; const uint64_t maximum_compilation_time_before_warning_; diff --git a/compiler/dex/quick/quick_compiler.cc b/compiler/dex/quick/quick_compiler.cc index 2c0bd47405..fc3e687469 100644 --- a/compiler/dex/quick/quick_compiler.cc +++ b/compiler/dex/quick/quick_compiler.cc @@ -793,20 +793,6 @@ uintptr_t QuickCompiler::GetEntryPointOf(mirror::ArtMethod* method) const { InstructionSetPointerSize(GetCompilerDriver()->GetInstructionSet()))); } -bool QuickCompiler::WriteElf(art::File* file, - OatWriter* oat_writer, - const std::vector<const art::DexFile*>& dex_files, - const std::string& android_root, - bool is_host) const { - if (kProduce64BitELFFiles && Is64BitInstructionSet(GetCompilerDriver()->GetInstructionSet())) { - return art::ElfWriterQuick64::Create(file, oat_writer, dex_files, android_root, is_host, - *GetCompilerDriver()); - } else { - return art::ElfWriterQuick32::Create(file, oat_writer, dex_files, android_root, is_host, - *GetCompilerDriver()); - } -} - Mir2Lir* QuickCompiler::GetCodeGenerator(CompilationUnit* cu, void* compilation_unit) { UNUSED(compilation_unit); Mir2Lir* mir_to_lir = nullptr; diff --git a/compiler/dex/quick/quick_compiler.h b/compiler/dex/quick/quick_compiler.h index 09b08ace77..8d2c324a70 100644 --- a/compiler/dex/quick/quick_compiler.h +++ b/compiler/dex/quick/quick_compiler.h @@ -52,14 +52,6 @@ class QuickCompiler : public Compiler { uintptr_t GetEntryPointOf(mirror::ArtMethod* method) const OVERRIDE SHARED_LOCKS_REQUIRED(Locks::mutator_lock_); - bool WriteElf(art::File* file, - OatWriter* oat_writer, - const std::vector<const art::DexFile*>& dex_files, - const std::string& android_root, - bool is_host) const - OVERRIDE - SHARED_LOCKS_REQUIRED(Locks::mutator_lock_); - static Mir2Lir* GetCodeGenerator(CompilationUnit* cu, void* compilation_unit); void InitCompilationUnit(CompilationUnit& cu) const OVERRIDE; diff --git a/compiler/driver/compiler_driver.cc b/compiler/driver/compiler_driver.cc index c2b837512c..f263f6d329 100644 --- a/compiler/driver/compiler_driver.cc +++ b/compiler/driver/compiler_driver.cc @@ -40,6 +40,7 @@ #include "dex/verified_method.h" #include "dex/quick/dex_file_method_inliner.h" #include "driver/compiler_options.h" +#include "elf_writer_quick.h" #include "jni_internal.h" #include "object_lock.h" #include "profiler.h" @@ -72,6 +73,9 @@ namespace art { static constexpr bool kTimeCompileMethod = !kIsDebugBuild; +// Whether to produce 64-bit ELF files for 64-bit targets. Leave this off for now. +static constexpr bool kProduce64BitELFFiles = false; + static double Percentage(size_t x, size_t y) { return 100.0 * (static_cast<double>(x)) / (static_cast<double>(x + y)); } @@ -2368,7 +2372,11 @@ bool CompilerDriver::WriteElf(const std::string& android_root, OatWriter* oat_writer, art::File* file) SHARED_LOCKS_REQUIRED(Locks::mutator_lock_) { - return compiler_->WriteElf(file, oat_writer, dex_files, android_root, is_host); + if (kProduce64BitELFFiles && Is64BitInstructionSet(GetInstructionSet())) { + return art::ElfWriterQuick64::Create(file, oat_writer, dex_files, android_root, is_host, *this); + } else { + return art::ElfWriterQuick32::Create(file, oat_writer, dex_files, android_root, is_host, *this); + } } bool CompilerDriver::SkipCompilation(const std::string& method_name) { diff --git a/compiler/optimizing/optimizing_compiler.cc b/compiler/optimizing/optimizing_compiler.cc index 0e02212867..a428c75c8c 100644 --- a/compiler/optimizing/optimizing_compiler.cc +++ b/compiler/optimizing/optimizing_compiler.cc @@ -200,20 +200,6 @@ class OptimizingCompiler FINAL : public Compiler { InstructionSetPointerSize(GetCompilerDriver()->GetInstructionSet()))); } - bool WriteElf(art::File* file, - OatWriter* oat_writer, - const std::vector<const art::DexFile*>& dex_files, - const std::string& android_root, - bool is_host) const OVERRIDE SHARED_LOCKS_REQUIRED(Locks::mutator_lock_) { - if (kProduce64BitELFFiles && Is64BitInstructionSet(GetCompilerDriver()->GetInstructionSet())) { - return art::ElfWriterQuick64::Create(file, oat_writer, dex_files, android_root, is_host, - *GetCompilerDriver()); - } else { - return art::ElfWriterQuick32::Create(file, oat_writer, dex_files, android_root, is_host, - *GetCompilerDriver()); - } - } - void InitCompilationUnit(CompilationUnit& cu) const OVERRIDE; void Init() OVERRIDE; |