diff options
author | Bill Wendling <isanbard@gmail.com> | 2009-04-29 00:32:19 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2009-04-29 00:32:19 +0000 |
commit | 5e5cb7985de2508ecd707568afbcbb39e8a688fc (patch) | |
tree | b2b8093f6164c54fc565d56222bc42af25b94f9f /lib/ExecutionEngine/JIT | |
parent | be8cc2a3dedeb7685f07e68cdc4b9502eb97eb2b (diff) |
The second part of the change from -fast to -O#. This changes the JIT to accept
an optimization level instead of a simple boolean telling it to generate code
"fast" or the other type of "fast".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70347 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/ExecutionEngine/JIT')
-rw-r--r-- | lib/ExecutionEngine/JIT/JIT.cpp | 14 | ||||
-rw-r--r-- | lib/ExecutionEngine/JIT/JIT.h | 8 | ||||
-rw-r--r-- | lib/ExecutionEngine/JIT/TargetSelect.cpp | 4 |
3 files changed, 13 insertions, 13 deletions
diff --git a/lib/ExecutionEngine/JIT/JIT.cpp b/lib/ExecutionEngine/JIT/JIT.cpp index 986ec91ede..93203a257c 100644 --- a/lib/ExecutionEngine/JIT/JIT.cpp +++ b/lib/ExecutionEngine/JIT/JIT.cpp @@ -196,8 +196,8 @@ void DarwinRegisterFrame(void* FrameBegin) { ExecutionEngine *ExecutionEngine::createJIT(ModuleProvider *MP, std::string *ErrorStr, JITMemoryManager *JMM, - bool Fast) { - ExecutionEngine *EE = JIT::createJIT(MP, ErrorStr, JMM, Fast); + unsigned OptLevel) { + ExecutionEngine *EE = JIT::createJIT(MP, ErrorStr, JMM, OptLevel); if (!EE) return 0; // Make sure we can resolve symbols in the program as well. The zero arg @@ -207,7 +207,7 @@ ExecutionEngine *ExecutionEngine::createJIT(ModuleProvider *MP, } JIT::JIT(ModuleProvider *MP, TargetMachine &tm, TargetJITInfo &tji, - JITMemoryManager *JMM, bool Fast) + JITMemoryManager *JMM, unsigned OptLevel) : ExecutionEngine(MP), TM(tm), TJI(tji) { setTargetData(TM.getTargetData()); @@ -223,7 +223,7 @@ JIT::JIT(ModuleProvider *MP, TargetMachine &tm, TargetJITInfo &tji, // Turn the machine code intermediate representation into bytes in memory that // may be executed. - if (TM.addPassesToEmitMachineCode(PM, *MCE, Fast)) { + if (TM.addPassesToEmitMachineCode(PM, *MCE, OptLevel)) { cerr << "Target does not support machine code emission!\n"; abort(); } @@ -272,7 +272,7 @@ void JIT::addModuleProvider(ModuleProvider *MP) { // Turn the machine code intermediate representation into bytes in memory // that may be executed. - if (TM.addPassesToEmitMachineCode(PM, *MCE, false /*fast*/)) { + if (TM.addPassesToEmitMachineCode(PM, *MCE, 3 /* OptLevel */)) { cerr << "Target does not support machine code emission!\n"; abort(); } @@ -305,7 +305,7 @@ Module *JIT::removeModuleProvider(ModuleProvider *MP, std::string *E) { // Turn the machine code intermediate representation into bytes in memory // that may be executed. - if (TM.addPassesToEmitMachineCode(PM, *MCE, false /*fast*/)) { + if (TM.addPassesToEmitMachineCode(PM, *MCE, 3 /* OptLevel */)) { cerr << "Target does not support machine code emission!\n"; abort(); } @@ -337,7 +337,7 @@ void JIT::deleteModuleProvider(ModuleProvider *MP, std::string *E) { // Turn the machine code intermediate representation into bytes in memory // that may be executed. - if (TM.addPassesToEmitMachineCode(PM, *MCE, false /*fast*/)) { + if (TM.addPassesToEmitMachineCode(PM, *MCE, 3 /* OptLevel */)) { cerr << "Target does not support machine code emission!\n"; abort(); } diff --git a/lib/ExecutionEngine/JIT/JIT.h b/lib/ExecutionEngine/JIT/JIT.h index e0c74f8738..b3ae82c58c 100644 --- a/lib/ExecutionEngine/JIT/JIT.h +++ b/lib/ExecutionEngine/JIT/JIT.h @@ -55,7 +55,7 @@ class JIT : public ExecutionEngine { JITState *jitstate; JIT(ModuleProvider *MP, TargetMachine &tm, TargetJITInfo &tji, - JITMemoryManager *JMM, bool Fast); + JITMemoryManager *JMM, unsigned OptLevel); public: ~JIT(); @@ -71,8 +71,8 @@ public: /// for the current target. Otherwise, return null. /// static ExecutionEngine *create(ModuleProvider *MP, std::string *Err, - bool Fast = false) { - return createJIT(MP, Err, 0, Fast); + unsigned OptLevel = 3) { + return createJIT(MP, Err, 0, OptLevel); } virtual void addModuleProvider(ModuleProvider *MP); @@ -148,7 +148,7 @@ public: MachineCodeEmitter *getCodeEmitter() const { return MCE; } static ExecutionEngine *createJIT(ModuleProvider *MP, std::string *Err, - JITMemoryManager *JMM, bool Fast); + JITMemoryManager *JMM, unsigned OptLevel); private: static MachineCodeEmitter *createEmitter(JIT &J, JITMemoryManager *JMM); diff --git a/lib/ExecutionEngine/JIT/TargetSelect.cpp b/lib/ExecutionEngine/JIT/TargetSelect.cpp index 98819c19b8..7edd0837d5 100644 --- a/lib/ExecutionEngine/JIT/TargetSelect.cpp +++ b/lib/ExecutionEngine/JIT/TargetSelect.cpp @@ -42,7 +42,7 @@ MAttrs("mattr", /// available for the current target. Otherwise, return null. /// ExecutionEngine *JIT::createJIT(ModuleProvider *MP, std::string *ErrorStr, - JITMemoryManager *JMM, bool Fast) { + JITMemoryManager *JMM, unsigned OptLevel) { const TargetMachineRegistry::entry *TheArch = MArch; if (TheArch == 0) { std::string Error; @@ -74,7 +74,7 @@ ExecutionEngine *JIT::createJIT(ModuleProvider *MP, std::string *ErrorStr, // If the target supports JIT code generation, return a new JIT now. if (TargetJITInfo *TJ = Target->getJITInfo()) - return new JIT(MP, *Target, *TJ, JMM, Fast); + return new JIT(MP, *Target, *TJ, JMM, OptLevel); if (ErrorStr) *ErrorStr = "target does not support JIT code generation"; |