summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2003-12-28 09:48:17 +0000
committerChris Lattner <sabre@nondot.org>2003-12-28 09:48:17 +0000
commitcd824d7678785379a4a11fd7e3099cc44b37db41 (patch)
tree24599fcaa9f87206d142cd476f8eddf7a60addd6 /include
parent4482715f3d1c165be82bd5aed07231f956e472ef (diff)
downloadllvm-cd824d7678785379a4a11fd7e3099cc44b37db41.tar.gz
llvm-cd824d7678785379a4a11fd7e3099cc44b37db41.tar.bz2
llvm-cd824d7678785379a4a11fd7e3099cc44b37db41.tar.xz
We may now pass IntrinsicLowering implementations into these methods
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10630 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/ExecutionEngine/ExecutionEngine.h7
-rw-r--r--include/llvm/Target/TargetMachineImpls.h34
2 files changed, 24 insertions, 17 deletions
diff --git a/include/llvm/ExecutionEngine/ExecutionEngine.h b/include/llvm/ExecutionEngine/ExecutionEngine.h
index c376ef71b7..cf010084b7 100644
--- a/include/llvm/ExecutionEngine/ExecutionEngine.h
+++ b/include/llvm/ExecutionEngine/ExecutionEngine.h
@@ -30,6 +30,7 @@ class Module;
class ModuleProvider;
class TargetData;
class Type;
+class IntrinsicLowering;
class ExecutionEngine {
Module &CurMod;
@@ -54,8 +55,10 @@ public:
const TargetData &getTargetData() const { return *TD; }
/// create - This is the factory method for creating an execution engine which
- /// is appropriate for the current machine.
- static ExecutionEngine *create(ModuleProvider *MP, bool ForceInterpreter);
+ /// is appropriate for the current machine. If specified, the
+ /// IntrinsicLowering implementation should be allocated on the heap.
+ static ExecutionEngine *create(ModuleProvider *MP, bool ForceInterpreter,
+ IntrinsicLowering *IL = 0);
/// runFunction - Execute the specified function with the specified arguments,
/// and return the result.
diff --git a/include/llvm/Target/TargetMachineImpls.h b/include/llvm/Target/TargetMachineImpls.h
index 3ca20c74e9..6ed4152767 100644
--- a/include/llvm/Target/TargetMachineImpls.h
+++ b/include/llvm/Target/TargetMachineImpls.h
@@ -17,21 +17,25 @@
namespace llvm {
-class TargetMachine;
-class Module;
-
-// allocateSparcTargetMachine - Allocate and return a subclass of TargetMachine
-// that implements the Sparc backend.
-//
-TargetMachine *allocateSparcTargetMachine(const Module &M);
-
-// allocateX86TargetMachine - Allocate and return a subclass of TargetMachine
-// that implements the X86 backend. The X86 target machine can run in
-// "emulation" mode, where it is capable of emulating machines of larger pointer
-// size and different endianness if desired.
-//
-TargetMachine *allocateX86TargetMachine(const Module &M);
-
+ class TargetMachine;
+ class Module;
+ class IntrinsicLowering;
+
+ // allocateSparcTargetMachine - Allocate and return a subclass of
+ // TargetMachine that implements the Sparc backend. This takes ownership of
+ // the IntrinsicLowering pointer, deleting it when the target machine is
+ // destroyed.
+ //
+ TargetMachine *allocateSparcTargetMachine(const Module &M,
+ IntrinsicLowering *IL = 0);
+
+ // allocateX86TargetMachine - Allocate and return a subclass of TargetMachine
+ // that implements the X86 backend. This takes ownership of the
+ // IntrinsicLowering pointer, deleting it when the target machine is
+ // destroyed.
+ //
+ TargetMachine *allocateX86TargetMachine(const Module &M,
+ IntrinsicLowering *IL = 0);
} // End llvm namespace
#endif