summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2006-03-23 05:22:51 +0000
committerChris Lattner <sabre@nondot.org>2006-03-23 05:22:51 +0000
commit726c1ef2bdd72975f41e3188371bb7d6f40401be (patch)
tree43efa948842597774234f3b3048e053442567609
parent3b047f7bfa190f494e0e51a4329b54228dc5e92e (diff)
downloadllvm-726c1ef2bdd72975f41e3188371bb7d6f40401be.tar.gz
llvm-726c1ef2bdd72975f41e3188371bb7d6f40401be.tar.bz2
llvm-726c1ef2bdd72975f41e3188371bb7d6f40401be.tar.xz
remove the intrinsiclowering hook
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26970 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/ExecutionEngine/ExecutionEngine.h11
-rw-r--r--lib/ExecutionEngine/ExecutionEngine.cpp12
-rw-r--r--lib/ExecutionEngine/Interpreter/Interpreter.cpp12
-rw-r--r--lib/ExecutionEngine/Interpreter/Interpreter.h10
-rw-r--r--lib/ExecutionEngine/JIT/JIT.h6
-rw-r--r--lib/ExecutionEngine/JIT/TargetSelect.cpp4
6 files changed, 22 insertions, 33 deletions
diff --git a/include/llvm/ExecutionEngine/ExecutionEngine.h b/include/llvm/ExecutionEngine/ExecutionEngine.h
index e3c1219d29..051d839628 100644
--- a/include/llvm/ExecutionEngine/ExecutionEngine.h
+++ b/include/llvm/ExecutionEngine/ExecutionEngine.h
@@ -32,8 +32,6 @@ class Module;
class ModuleProvider;
class TargetData;
class Type;
-class IntrinsicLowering;
-
class ExecutionEngineState {
private:
@@ -76,7 +74,7 @@ protected:
// To avoid having libexecutionengine depend on the JIT and interpreter
// libraries, the JIT and Interpreter set these functions to ctor pointers
// at startup time if they are linked in.
- typedef ExecutionEngine *(*EECtorFn)(ModuleProvider*, IntrinsicLowering*);
+ typedef ExecutionEngine *(*EECtorFn)(ModuleProvider*);
static EECtorFn JITCtor, InterpCtor;
public:
@@ -93,10 +91,9 @@ 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. If specified, the
- /// IntrinsicLowering implementation should be allocated on the heap.
- static ExecutionEngine *create(ModuleProvider *MP, bool ForceInterpreter,
- IntrinsicLowering *IL = 0);
+ /// is appropriate for the current machine.
+ static ExecutionEngine *create(ModuleProvider *MP,
+ bool ForceInterpreter = false);
/// runFunction - Execute the specified function with the specified arguments,
/// and return the result.
diff --git a/lib/ExecutionEngine/ExecutionEngine.cpp b/lib/ExecutionEngine/ExecutionEngine.cpp
index b920898230..ebe0254071 100644
--- a/lib/ExecutionEngine/ExecutionEngine.cpp
+++ b/lib/ExecutionEngine/ExecutionEngine.cpp
@@ -160,24 +160,22 @@ int ExecutionEngine::runFunctionAsMain(Function *Fn,
/// NULL is returned.
///
ExecutionEngine *ExecutionEngine::create(ModuleProvider *MP,
- bool ForceInterpreter,
- IntrinsicLowering *IL) {
+ bool ForceInterpreter) {
ExecutionEngine *EE = 0;
// Unless the interpreter was explicitly selected, try making a JIT.
if (!ForceInterpreter && JITCtor)
- EE = JITCtor(MP, IL);
+ EE = JITCtor(MP);
// If we can't make a JIT, make an interpreter instead.
if (EE == 0 && InterpCtor)
- EE = InterpCtor(MP, IL);
+ EE = InterpCtor(MP);
- if (EE == 0)
- delete IL;
- else
+ if (EE) {
// Make sure we can resolve symbols in the program as well. The zero arg
// to the function tells DynamicLibrary to load the program, not a library.
sys::DynamicLibrary::LoadLibraryPermanently(0);
+ }
return EE;
}
diff --git a/lib/ExecutionEngine/Interpreter/Interpreter.cpp b/lib/ExecutionEngine/Interpreter/Interpreter.cpp
index 0f73189a9e..37f16f528f 100644
--- a/lib/ExecutionEngine/Interpreter/Interpreter.cpp
+++ b/lib/ExecutionEngine/Interpreter/Interpreter.cpp
@@ -26,8 +26,7 @@ static struct RegisterInterp {
/// create - Create a new interpreter object. This can never fail.
///
-ExecutionEngine *Interpreter::create(ModuleProvider *MP,
- IntrinsicLowering *IL) {
+ExecutionEngine *Interpreter::create(ModuleProvider *MP) {
Module *M;
try {
M = MP->materializeModule();
@@ -55,17 +54,16 @@ ExecutionEngine *Interpreter::create(ModuleProvider *MP,
break;
}
- return new Interpreter(M, isLittleEndian, isLongPointer, IL);
+ return new Interpreter(M, isLittleEndian, isLongPointer);
}
//===----------------------------------------------------------------------===//
// Interpreter ctor - Initialize stuff
//
-Interpreter::Interpreter(Module *M, bool isLittleEndian, bool isLongPointer,
- IntrinsicLowering *il)
+Interpreter::Interpreter(Module *M, bool isLittleEndian, bool isLongPointer)
: ExecutionEngine(M),
TD("lli", isLittleEndian, isLongPointer ? 8 : 4, isLongPointer ? 8 : 4,
- isLongPointer ? 8 : 4), IL(il) {
+ isLongPointer ? 8 : 4) {
memset(&ExitValue, 0, sizeof(ExitValue));
setTargetData(TD);
@@ -74,7 +72,7 @@ Interpreter::Interpreter(Module *M, bool isLittleEndian, bool isLongPointer,
initializeExternalFunctions();
emitGlobals();
- if (IL == 0) IL = new DefaultIntrinsicLowering();
+ IL = new DefaultIntrinsicLowering();
}
Interpreter::~Interpreter() {
diff --git a/lib/ExecutionEngine/Interpreter/Interpreter.h b/lib/ExecutionEngine/Interpreter/Interpreter.h
index 1b547a645b..e0669c9e37 100644
--- a/lib/ExecutionEngine/Interpreter/Interpreter.h
+++ b/lib/ExecutionEngine/Interpreter/Interpreter.h
@@ -25,6 +25,7 @@
namespace llvm {
+class IntrinsicLowering;
struct FunctionInfo;
template<typename T> class generic_gep_type_iterator;
class ConstantExpr;
@@ -93,8 +94,7 @@ class Interpreter : public ExecutionEngine, public InstVisitor<Interpreter> {
std::vector<Function*> AtExitHandlers;
public:
- Interpreter(Module *M, bool isLittleEndian, bool isLongPointer,
- IntrinsicLowering *IL);
+ Interpreter(Module *M, bool isLittleEndian, bool isLongPointer);
~Interpreter();
/// runAtExitHandlers - Run any functions registered by the program's calls to
@@ -106,11 +106,9 @@ public:
InterpCtor = create;
}
- /// create - Create an interpreter ExecutionEngine. This can never fail. The
- /// specified IntrinsicLowering implementation will be deleted when the
- /// Interpreter execution engine is destroyed.
+ /// create - Create an interpreter ExecutionEngine. This can never fail.
///
- static ExecutionEngine *create(ModuleProvider *M, IntrinsicLowering *IL);
+ static ExecutionEngine *create(ModuleProvider *M);
/// run - Start execution with the specified function and arguments.
///
diff --git a/lib/ExecutionEngine/JIT/JIT.h b/lib/ExecutionEngine/JIT/JIT.h
index 979cdc6c8e..fbdcf2e636 100644
--- a/lib/ExecutionEngine/JIT/JIT.h
+++ b/lib/ExecutionEngine/JIT/JIT.h
@@ -69,11 +69,9 @@ public:
TargetJITInfo &getJITInfo() const { return TJI; }
/// create - Create an return a new JIT compiler if there is one available
- /// for the current target. Otherwise, return null. If the JIT is created
- /// successfully, it takes responsibility for deleting the specified
- /// IntrinsicLowering implementation.
+ /// for the current target. Otherwise, return null.
///
- static ExecutionEngine *create(ModuleProvider *MP, IntrinsicLowering *IL = 0);
+ static ExecutionEngine *create(ModuleProvider *MP);
/// run - Start execution with the specified function and arguments.
///
diff --git a/lib/ExecutionEngine/JIT/TargetSelect.cpp b/lib/ExecutionEngine/JIT/TargetSelect.cpp
index 592020fae1..05e86e650a 100644
--- a/lib/ExecutionEngine/JIT/TargetSelect.cpp
+++ b/lib/ExecutionEngine/JIT/TargetSelect.cpp
@@ -39,7 +39,7 @@ MAttrs("mattr",
/// 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, IntrinsicLowering *IL) {
+ExecutionEngine *JIT::create(ModuleProvider *MP) {
if (MArch == 0) {
std::string Error;
MArch = TargetMachineRegistry::getClosestTargetForJIT(Error);
@@ -61,7 +61,7 @@ ExecutionEngine *JIT::create(ModuleProvider *MP, IntrinsicLowering *IL) {
}
// Allocate a target...
- TargetMachine *Target = MArch->CtorFn(*MP->getModule(), IL, FeaturesStr);
+ TargetMachine *Target = MArch->CtorFn(*MP->getModule(), 0, FeaturesStr);
assert(Target && "Could not allocate target machine!");
// If the target supports JIT code generation, return a new JIT now.