diff options
| author | 2018-12-14 13:13:14 +0000 | |
|---|---|---|
| committer | 2018-12-14 13:13:14 +0000 | |
| commit | 98a520c4700f566afddf12bab01885b6b3d2584e (patch) | |
| tree | d0b291999e85e7d8a65ae1b6aa98d54b3726563c /compiler | |
| parent | d97e00c4f6e8735a854f4443b8bd08fc5a251ce5 (diff) | |
| parent | 075456ea917f70cb729125c92e0b890a9f1207c6 (diff) | |
Merge "Revert "Revert "Add a baseline flag to JIT compile."""
Diffstat (limited to 'compiler')
| -rw-r--r-- | compiler/jit/jit_compiler.cc | 8 | ||||
| -rw-r--r-- | compiler/jit/jit_compiler.h | 2 | ||||
| -rw-r--r-- | compiler/optimizing/intrinsics.h | 3 |
3 files changed, 7 insertions, 6 deletions
diff --git a/compiler/jit/jit_compiler.cc b/compiler/jit/jit_compiler.cc index 9b8bb3e90e..e57bbfa1e1 100644 --- a/compiler/jit/jit_compiler.cc +++ b/compiler/jit/jit_compiler.cc @@ -126,11 +126,11 @@ extern "C" void jit_unload(void* handle) { } extern "C" bool jit_compile_method( - void* handle, ArtMethod* method, Thread* self, bool osr) + void* handle, ArtMethod* method, Thread* self, bool baseline, bool osr) REQUIRES_SHARED(Locks::mutator_lock_) { auto* jit_compiler = reinterpret_cast<JitCompiler*>(handle); DCHECK(jit_compiler != nullptr); - return jit_compiler->CompileMethod(self, method, osr); + return jit_compiler->CompileMethod(self, method, baseline, osr); } extern "C" void jit_types_loaded(void* handle, mirror::Class** types, size_t count) @@ -181,7 +181,7 @@ JitCompiler::~JitCompiler() { } } -bool JitCompiler::CompileMethod(Thread* self, ArtMethod* method, bool osr) { +bool JitCompiler::CompileMethod(Thread* self, ArtMethod* method, bool baseline, bool osr) { SCOPED_TRACE << "JIT compiling " << method->PrettyMethod(); DCHECK(!method->IsProxyMethod()); @@ -198,7 +198,7 @@ bool JitCompiler::CompileMethod(Thread* self, ArtMethod* method, bool osr) { TimingLogger::ScopedTiming t2("Compiling", &logger); JitCodeCache* const code_cache = runtime->GetJit()->GetCodeCache(); success = compiler_driver_->GetCompiler()->JitCompile( - self, code_cache, method, /* baseline= */ false, osr, jit_logger_.get()); + self, code_cache, method, baseline, osr, jit_logger_.get()); } // Trim maps to reduce memory usage. diff --git a/compiler/jit/jit_compiler.h b/compiler/jit/jit_compiler.h index d201611d79..29d2761348 100644 --- a/compiler/jit/jit_compiler.h +++ b/compiler/jit/jit_compiler.h @@ -37,7 +37,7 @@ class JitCompiler { virtual ~JitCompiler(); // Compilation entrypoint. Returns whether the compilation succeeded. - bool CompileMethod(Thread* self, ArtMethod* method, bool osr) + bool CompileMethod(Thread* self, ArtMethod* method, bool baseline, bool osr) REQUIRES_SHARED(Locks::mutator_lock_); const CompilerOptions& GetCompilerOptions() const { diff --git a/compiler/optimizing/intrinsics.h b/compiler/optimizing/intrinsics.h index 5bd1122698..50b13c842b 100644 --- a/compiler/optimizing/intrinsics.h +++ b/compiler/optimizing/intrinsics.h @@ -243,7 +243,8 @@ void IntrinsicCodeGenerator ## Arch::Visit ## Name(HInvoke* invoke ATTRIBUTE_UNU // compilation. #define UNREACHABLE_INTRINSIC(Arch, Name) \ void IntrinsicLocationsBuilder ## Arch::Visit ## Name(HInvoke* invoke) { \ - if (!codegen_->GetCompilerOptions().IsBaseline()) { \ + if (Runtime::Current()->IsAotCompiler() && \ + !codegen_->GetCompilerOptions().IsBaseline()) { \ LOG(FATAL) << "Unreachable: intrinsic " << invoke->GetIntrinsic() \ << " should have been converted to HIR"; \ } \ |