From: Chris Lattner Date: Wed, 17 Jun 2009 02:15:40 +0000 (+0000) Subject: Use Doug's new LLVM_NATIVE_ARCH macro in config.h to link in the native X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=c447ff693e9979c61f58b8e97dcfdbcfe7e10554;p=oota-llvm.git Use Doug's new LLVM_NATIVE_ARCH macro in config.h to link in the native target so that the JIT works in LLI, not just the interpreter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73595 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/tools/lli/lli.cpp b/tools/lli/lli.cpp index 6d3cbbc1f5f..618692db70f 100644 --- a/tools/lli/lli.cpp +++ b/tools/lli/lli.cpp @@ -28,6 +28,7 @@ #include "llvm/Support/PrettyStackTrace.h" #include "llvm/System/Process.h" #include "llvm/System/Signals.h" +#include "llvm/Config/config.h" #include #include using namespace llvm; @@ -84,6 +85,16 @@ static void do_shutdown() { llvm_shutdown(); } +#ifdef LLVM_NATIVE_ARCH +namespace llvm { +#define Declare2(TARG, MOD) void Initialize ## TARG ## MOD() +#define Declare(T, M) Declare2(T, M) + Declare(LLVM_NATIVE_ARCH, Target); +#undef Declare +#undef Declare2 +} +#endif + //===----------------------------------------------------------------------===// // main Driver function // @@ -137,6 +148,16 @@ int main(int argc, char **argv, char * const *envp) { case '2': OLvl = CodeGenOpt::Default; break; case '3': OLvl = CodeGenOpt::Aggressive; break; } + + // If we have a native target, initialize it to ensure it is linked in. +#ifdef LLVM_NATIVE_ARCH +#define DoInit2(TARG, MOD) llvm::Initialize ## TARG ## MOD() +#define DoInit(T, M) DoInit2(T, M) + DoInit(LLVM_NATIVE_ARCH, Target); +#undef DoInit +#undef DoInit2 +#endif + EE = ExecutionEngine::create(MP, ForceInterpreter, &ErrorMsg, OLvl); if (!EE && !ErrorMsg.empty()) {