diff options
Diffstat (limited to 'compiler/compiler.cc')
| -rw-r--r-- | compiler/compiler.cc | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/compiler/compiler.cc b/compiler/compiler.cc index 646040fd9d..98d73396bc 100644 --- a/compiler/compiler.cc +++ b/compiler/compiler.cc @@ -21,17 +21,23 @@ #include "base/macros.h" #include "base/utils.h" #include "dex/code_item_accessors-inl.h" -#include "driver/compiler_driver.h" +#include "dex/dex_file.h" +#include "oat.h" #include "optimizing/optimizing_compiler.h" namespace art { -Compiler* Compiler::Create(CompilerDriver* driver, Compiler::Kind kind) { +Compiler* Compiler::Create(const CompilerOptions& compiler_options, + CompiledMethodStorage* storage, + Compiler::Kind kind) { + // Check that oat version when runtime was compiled matches the oat version of the compiler. + constexpr std::array<uint8_t, 4> compiler_oat_version = OatHeader::kOatVersion; + OatHeader::CheckOatVersion(compiler_oat_version); switch (kind) { case kQuick: // TODO: Remove Quick in options. case kOptimizing: - return CreateOptimizingCompiler(driver); + return CreateOptimizingCompiler(compiler_options, storage); default: LOG(FATAL) << "UNREACHABLE"; @@ -39,7 +45,7 @@ Compiler* Compiler::Create(CompilerDriver* driver, Compiler::Kind kind) { } } -bool Compiler::IsPathologicalCase(const DexFile::CodeItem& code_item, +bool Compiler::IsPathologicalCase(const dex::CodeItem& code_item, uint32_t method_idx, const DexFile& dex_file) { /* |