summaryrefslogtreecommitdiff
path: root/compiler/compiler.cc
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/compiler.cc')
-rw-r--r--compiler/compiler.cc14
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) {
/*