search for: jitstate

Displaying 14 results from an estimated 14 matches for "jitstate".

2012 Jul 24
1
[LLVMdev] Cannot remove module from empty JIT
Hi, You cannot call removeModule on a JIT with no modules: jitstate will be 0 and therefore we have a null-pointer exception. The function returns a boolean for success/failure, however, so you would expect to be able to call it and get false back. Should we be checking for jitstate != 0 before accessing the variable? - if (jitstate->getModule() == M) { +...
2012 Jul 20
0
[LLVMdev] Statistics for 'switch' instruction.
Hi Stepan, These are quite interesting numbers. Thanks for running this experiment! Do you have some numbers on the difference of memory consumption and compile time (at -O0 and -O2) with and without case ranges? I think we need to see those numbers before we can decide wether it's interesting to commit to case ranges or not. Thanks, Nuno Quoting Stepan Dyatkovskiy <stpworld at
2012 Jul 20
2
[LLVMdev] Statistics for 'switch' instruction.
Hi all! I collected some statistics for SwitchInst, based on our test-suite. I found that efficiency is meaningful for parser-like applications only, about 15-20% of cases may be reduced (see top 10 items in Raw sheet of attached .xls file). Below some numbers. Total number of cases in all test-suite -- 11835. Clusters possible to make -- 503 Clusters with size (H - L) + 1
2012 Feb 23
2
[LLVMdev] How do I get my pass into the JIT?
Hello, I managed to write my own pass =) and now I want it to be executed by the LLVM-JIT but I don't see the right way to do it. The EngineBuilder only allows to set an opt level and as far as I can see the ExecutionEngine does not provide access to the jitstate which holds its passmanager. Could anyone give me a hint what I have to do to add my pass to the passmanager of the jit? Thank you in advance. Greetings Andreas
2009 Sep 15
2
[LLVMdev] Registering a MachineFunctionPass to JIT codegen
Hi all, I can't find a way to add a MachineFunctionPass to the common codegen passes (LLVMTargetMachine::addPassesToEmitMachineCode) while JITting (the pass manager is associated with the jitstate of the JIT and I can't access it because it's private). Have I missed something? Or adding a MachineFunctionPass to codegen requires to change the LLVMTargetMachine::addPassesToEmitMachineCode function? Thanks, Nicolas
2011 May 30
1
[LLVMdev] Type::removeAbstractTypeUser crash when freeing module from ExecutionEngine
hi list, I've got a situation where I'm constantly adding and removing Modules from an ExecutionEngine. When removing a module and the jitstate is freed, clean up of the StructLayoutMap ends up trying to access a Type instance was was already freed by the removal of another Module. In trying to debug this, it basically comes down to a Type instance serving as key in StructLayoutMap::LayoutInfo that shouldn't be there (or the Type key...
2012 Feb 23
0
[LLVMdev] How do I get my pass into the JIT?
...anding it to the JIT. Ciao, Duncan. > I managed to write my own pass =) and now I want it to be executed by the LLVM-JIT but I don't see the right way to do it. > The EngineBuilder only allows to set an opt level and as far as I can see the ExecutionEngine does not provide access to the jitstate which holds its passmanager. > > Could anyone give me a hint what I have to do to add my pass to the passmanager of the jit? > > Thank you in advance. > > Greetings Andreas > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.ui...
2008 Sep 16
1
[LLVMdev] Specifying Additional Compilation Passes to lli
...custom pass. What is the > advantage of giving the JIT a second profile manager over my current > implementation? Thanks. > Tom It's just a cleaner design. There are well defined pass manager, executionengine, and JIT api's. We don't want to unnecessarily extend them. JITState PM controls the codegen passes. If you want to add LLVM level optimization passes, you can simple use a separate PM to run them. Evan > > > ----- Original Message ----- > From: "Evan Cheng" <evan.cheng at apple.com> > To: "LLVM Developers Mailing List" &...
2009 Sep 15
0
[LLVMdev] Registering a MachineFunctionPass to JIT codegen
On Sep 14, 2009, at 10:54 PM, Nicolas Geoffray wrote: > Hi all, > > I can't find a way to add a MachineFunctionPass to the common codegen > passes (LLVMTargetMachine::addPassesToEmitMachineCode) while JITting > (the pass manager is associated with the jitstate of the JIT and I > can't > access it because it's private). Have I missed something? Or adding a > MachineFunctionPass to codegen requires to change the > LLVMTargetMachine::addPassesToEmitMachineCode function? You haven't missed anything, there isn't currently a way...
2005 Feb 20
0
[LLVMdev] Attempt #1: JIT Thread Safety
...more familiar with the code to make sure that I have protected the correct data structures. I'm also looking for suggestion about how to test this for correctness. To make sure that I added locks where required, I moved "dangerous" members of the classes into a new class, called JITState and ExecutionEngineState, respectively. These classes only allow access to the variables if a lock is held. This allows the compiler to verify that locks are held in the correct places, although there could still easily be bugs if the locks are released too early. The data structures that are...
2008 Sep 16
3
[LLVMdev] Specifying Additional Compilation Passes to lli
...a second profile manager over my > current > >> implementation? Thanks. > >> Tom > > > > It's just a cleaner design. There are well defined pass manager, > > executionengine, and JIT api's. We don't want to unnecessarily > extend > > them. JITState PM controls the codegen passes. If you want to add > LLVM > > level optimization passes, you can simple use a separate PM to run > > > them. > > > > Evan > > > >> > >> > >> ----- Original Message ----- > >> From: "Evan C...
2008 Sep 15
1
[LLVMdev] Specifying Additional Compilation Passes to lli
Evan, My overall goal is to support dynamic optimization in LLVM. In order to do so, I must gather profiling information at runtime, then recompile the profiled functions. Currently, I'm just adding and removing calls into my profiler in a custom pass. What is the advantage of giving the JIT a second profile manager over my current implementation? Thanks. Tom ----- Original Message -----
2008 Sep 17
0
[LLVMdev] Specifying Additional Compilation Passes to lli
...ver my >> current >>>> implementation? Thanks. >>>> Tom >>> >>> It's just a cleaner design. There are well defined pass manager, >>> executionengine, and JIT api's. We don't want to unnecessarily >> extend >>> them. JITState PM controls the codegen passes. If you want to add >> LLVM >>> level optimization passes, you can simple use a separate PM to run >> >>> them. >>> >>> Evan >>> >>>> >>>> >>>> ----- Original Message ----- &g...
2013 Nov 01
4
[LLVMdev] [Proposal] Adding callback mechanism to Execution Engines
...2,10 @@ if (ptr) return ptr; } + + if(Name == "PerformCustomCallback") { + return (void*)(intptr_t)&(PerformCustomCallback); + } /// If a LazyFunctionCreator is installed, use it to get/create the function. if (LazyFunctionCreator) @@ -688,5 +733,19 @@ jitstate->getPendingFunctions(locked).push_back(F); } +int JIT::registerCustomCallback(const char *CallbackName, void* (*Fp)(), void *LLVM_args) { + std::string CbName(CallbackName); + // Add the function to the map + FunctionIndexMapTy::iterator I = GetFunctionIndexMap().find(CbName); + if (I ==...