summaryrefslogtreecommitdiff
path: root/src/compiler.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler.cc')
-rw-r--r--src/compiler.cc64
1 files changed, 13 insertions, 51 deletions
diff --git a/src/compiler.cc b/src/compiler.cc
index a726606013..272ba9efcb 100644
--- a/src/compiler.cc
+++ b/src/compiler.cc
@@ -319,14 +319,8 @@ Compiler::Compiler(InstructionSet instruction_set, bool image, size_t thread_cou
compiler_(NULL),
compiler_context_(NULL),
jni_compiler_(NULL),
-#if !defined(ART_USE_LLVM_COMPILER)
- create_invoke_stub_(NULL) {
-#else
- create_invoke_stub_(NULL),
- compiler_enable_auto_elf_loading_(NULL),
- compiler_get_method_code_addr_(NULL),
- compiler_get_method_invoke_stub_addr_(NULL) {
-#endif
+ create_invoke_stub_(NULL)
+{
std::string compiler_so_name(MakeCompilerSoName(instruction_set_));
compiler_library_ = dlopen(compiler_so_name.c_str(), RTLD_LAZY);
if (compiler_library_ == NULL) {
@@ -353,12 +347,6 @@ Compiler::Compiler(InstructionSet instruction_set, bool image, size_t thread_cou
#if defined(ART_USE_LLVM_COMPILER)
create_proxy_stub_ = FindFunction<CreateProxyStubFn>(
compiler_so_name, compiler_library_, "ArtCreateProxyStub");
- compiler_enable_auto_elf_loading_ = FindFunction<CompilerEnableAutoElfLoadingFn>(
- compiler_so_name, compiler_library_, "compilerLLVMEnableAutoElfLoading");
- compiler_get_method_code_addr_ = FindFunction<CompilerGetMethodCodeAddrFn>(
- compiler_so_name, compiler_library_, "compilerLLVMGetMethodCodeAddr");
- compiler_get_method_invoke_stub_addr_ = FindFunction<CompilerGetMethodInvokeStubAddrFn>(
- compiler_so_name, compiler_library_, "compilerLLVMGetMethodInvokeStubAddr");
#endif
CHECK(!Runtime::Current()->IsStarted());
@@ -395,10 +383,17 @@ Compiler::~Compiler() {
STLDeleteElements(&methods_to_patch_);
}
#if defined(ART_USE_LLVM_COMPILER)
- CompilerCallbackFn f = FindFunction<CompilerCallbackFn>(MakeCompilerSoName(instruction_set_),
- compiler_library_,
- "compilerLLVMDispose");
- (*f)(*this);
+ // Uninitialize compiler_context_
+ typedef void (*UninitCompilerContextFn)(Compiler&);
+
+ std::string compiler_so_name(MakeCompilerSoName(instruction_set_));
+
+ UninitCompilerContextFn uninit_compiler_context =
+ FindFunction<void (*)(Compiler&)>(compiler_so_name,
+ compiler_library_,
+ "ArtUnInitCompilerContext");
+
+ uninit_compiler_context(*this);
#endif
if (compiler_library_ != NULL) {
VLOG(compiler) << "dlclose(" << compiler_library_ << ")";
@@ -511,12 +506,6 @@ void Compiler::PreCompile(ClassLoader* class_loader,
void Compiler::PostCompile(ClassLoader* class_loader,
const std::vector<const DexFile*>& dex_files) {
SetGcMaps(class_loader, dex_files);
-#if defined(ART_USE_LLVM_COMPILER)
- CompilerCallbackFn f = FindFunction<CompilerCallbackFn>(MakeCompilerSoName(instruction_set_),
- compiler_library_,
- "compilerLLVMMaterializeRemainder");
- (*f)(*this);
-#endif
}
bool Compiler::IsImageClass(const std::string& descriptor) const {
@@ -1683,31 +1672,4 @@ void Compiler::SetBitcodeFileName(std::string const& filename) {
}
#endif
-#if defined(ART_USE_LLVM_COMPILER)
-void Compiler::EnableAutoElfLoading() {
- compiler_enable_auto_elf_loading_(*this);
-}
-
-const void* Compiler::GetMethodCodeAddr(const CompiledMethod* cm,
- const Method* method) const {
- return compiler_get_method_code_addr_(*this, cm, method);
-}
-
-const Method::InvokeStub* Compiler::GetMethodInvokeStubAddr(const CompiledInvokeStub* cm,
- const Method* method) const {
- return compiler_get_method_invoke_stub_addr_(*this, cm, method);
-}
-
-std::vector<ElfImage> Compiler::GetElfImages() const {
- typedef std::vector<ElfImage> (*GetElfImagesFn)(const Compiler&);
-
- GetElfImagesFn get_elf_images =
- FindFunction<GetElfImagesFn>(MakeCompilerSoName(instruction_set_),
- compiler_library_,
- "compilerLLVMGetElfImages");
-
- return get_elf_images(*this);
-}
-#endif
-
} // namespace art