summaryrefslogtreecommitdiffstats
path: root/llvm/lib/ExecutionEngine/JIT
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2003-12-28 09:44:37 +0000
committerChris Lattner <sabre@nondot.org>2003-12-28 09:44:37 +0000
commitc8c6c03dda789a6af20b23182b11bef088498735 (patch)
tree8a5d9666df719773bf0b2c4da85d44003a5954fa /llvm/lib/ExecutionEngine/JIT
parent4b75e04a6033e248f2e3b7665f6d6bac6b197c5d (diff)
downloadbcm5719-llvm-c8c6c03dda789a6af20b23182b11bef088498735.tar.gz
bcm5719-llvm-c8c6c03dda789a6af20b23182b11bef088498735.zip
Pass around IntrinsicLowering instances as appropriate.
Reimplement the Interpreters implementation of va_* to be more direct. llvm-svn: 10627
Diffstat (limited to 'llvm/lib/ExecutionEngine/JIT')
-rw-r--r--llvm/lib/ExecutionEngine/JIT/JIT.h6
-rw-r--r--llvm/lib/ExecutionEngine/JIT/TargetSelect.cpp7
2 files changed, 8 insertions, 5 deletions
diff --git a/llvm/lib/ExecutionEngine/JIT/JIT.h b/llvm/lib/ExecutionEngine/JIT/JIT.h
index 53e8738bb84..414d1c6e683 100644
--- a/llvm/lib/ExecutionEngine/JIT/JIT.h
+++ b/llvm/lib/ExecutionEngine/JIT/JIT.h
@@ -44,9 +44,11 @@ public:
~JIT();
/// create - Create an return a new JIT compiler if there is one available
- /// for the current target. Otherwise, return null.
+ /// for the current target. Otherwise, return null. If the JIT is created
+ /// successfully, it takes responsibility for deleting the specified
+ /// IntrinsicLowering implementation.
///
- static ExecutionEngine *create(ModuleProvider *MP);
+ static ExecutionEngine *create(ModuleProvider *MP, IntrinsicLowering *IL = 0);
/// run - Start execution with the specified function and arguments.
///
diff --git a/llvm/lib/ExecutionEngine/JIT/TargetSelect.cpp b/llvm/lib/ExecutionEngine/JIT/TargetSelect.cpp
index 4a381fb5a2d..05408628703 100644
--- a/llvm/lib/ExecutionEngine/JIT/TargetSelect.cpp
+++ b/llvm/lib/ExecutionEngine/JIT/TargetSelect.cpp
@@ -53,8 +53,9 @@ namespace {
/// create - Create an return a new JIT compiler if there is one available
/// for the current target. Otherwise, return null.
///
-ExecutionEngine *JIT::create(ModuleProvider *MP) {
- TargetMachine* (*TargetMachineAllocator)(const Module &) = 0;
+ExecutionEngine *JIT::create(ModuleProvider *MP, IntrinsicLowering *IL) {
+ TargetMachine* (*TargetMachineAllocator)(const Module &,
+ IntrinsicLowering *IL) = 0;
// Allow a command-line switch to override what *should* be the default target
// machine for this platform. This allows for debugging a Sparc JIT on X86 --
@@ -80,7 +81,7 @@ ExecutionEngine *JIT::create(ModuleProvider *MP) {
#endif
// Allocate a target...
- TargetMachine *Target = TargetMachineAllocator(*MP->getModule());
+ TargetMachine *Target = TargetMachineAllocator(*MP->getModule(), IL);
assert(Target && "Could not allocate target machine!");
// If the target supports JIT code generation, return a new JIT now.
OpenPOWER on IntegriCloud