Compile method one-by-one.
Change-Id: Ic56fb397f3bd6dee32372eb875261a3383eaf30c
diff --git a/src/runtime.cc b/src/runtime.cc
index 5f20a4b..b5928b2 100644
--- a/src/runtime.cc
+++ b/src/runtime.cc
@@ -48,6 +48,10 @@
#include "verifier/method_verifier.h"
#include "well_known_classes.h"
+#if defined(ART_USE_LLVM_COMPILER)
+#include "compiler_llvm/procedure_linkage_table.h"
+#endif
+
#include "JniConstants.h" // Last to avoid LOG redefinition in ics-mr1-plus-art.
namespace art {
@@ -83,13 +87,27 @@
tracer_(NULL),
use_compile_time_class_path_(false),
main_thread_group_(NULL),
- system_thread_group_(NULL) {
+ system_thread_group_(NULL)
+#if defined(ART_USE_LLVM_COMPILER)
+#if defined(__arm__)
+ , plt_(kArm)
+#elif defined(__mips__)
+ , plt_(kMips)
+#elif defined(__i386__)
+ , plt_(kX86)
+#endif
+#endif
+ {
for (int i = 0; i < Runtime::kLastTrampolineMethodType; i++) {
resolution_stub_array_[i] = NULL;
}
for (int i = 0; i < Runtime::kLastCalleeSaveType; i++) {
callee_save_methods_[i] = NULL;
}
+
+#if defined(ART_USE_LLVM_COMPILER)
+ CHECK(plt_.AllocateTable()) << "Failed to allocate PLT";
+#endif
}
Runtime::~Runtime() {