Just use getPtrEquiveInt to load method.
Change-Id: I8cbf155a0bfc4ea0f0d61dbf981e0ace43ef2c2b
diff --git a/src/compiler_llvm/method_compiler.cc b/src/compiler_llvm/method_compiler.cc
index 8d6b251..b6711b6 100644
--- a/src/compiler_llvm/method_compiler.cc
+++ b/src/compiler_llvm/method_compiler.cc
@@ -36,12 +36,9 @@
#include <iomanip>
#include <llvm/BasicBlock.h>
-#include <llvm/DerivedTypes.h>
#include <llvm/Function.h>
#include <llvm/GlobalVariable.h>
#include <llvm/Intrinsics.h>
-#include <llvm/Module.h>
-#include <llvm/Type.h>
namespace art {
namespace compiler_llvm {
@@ -2840,8 +2837,8 @@
if (direct_method != 0u &&
direct_method != static_cast<uintptr_t>(-1)) {
callee_method_object_addr =
- EmitLoadSDCalleeDirectMethodObjectAddr(callee_method_idx,
- direct_method);
+ irb_.CreateIntToPtr(irb_.getPtrEquivInt(direct_method),
+ irb_.getJObjectTy());
} else {
callee_method_object_addr =
EmitLoadSDCalleeMethodObjectAddr(callee_method_idx);
@@ -2992,27 +2989,6 @@
llvm::Value* MethodCompiler::
-EmitLoadSDCalleeDirectMethodObjectAddr(uint32_t callee_method_idx,
- uintptr_t direct_method) {
- std::string direct_method_name(
- StringPrintf("ArtMethodObject_%08lx",
- static_cast<unsigned long>(direct_method)));
-
- llvm::GlobalVariable* direct_method_addr =
- module_->getGlobalVariable(direct_method_name);
-
- if (direct_method_addr == NULL) {
- direct_method_addr =
- new llvm::GlobalVariable(*module_, irb_.getJObjectTy()->getElementType(),
- false, llvm::GlobalVariable::ExternalLinkage,
- NULL, direct_method_name);
- }
-
- return direct_method_addr;
-}
-
-
-llvm::Value* MethodCompiler::
EmitLoadSDCalleeMethodObjectAddr(uint32_t callee_method_idx) {
llvm::Value* callee_method_object_field_addr =
EmitLoadDexCacheResolvedMethodFieldAddr(callee_method_idx);