search for: emitobject

Displaying 20 results from an estimated 24 matches for "emitobject".

2014 Jun 24
4
[LLVMdev] Any way get debug output of generated assembly from MCJIT without completely redoing CodeGen?
Hello all, I'm trying to hack MCJIT::emitObject to optionally output the corresponding text assembly associated with the object code being emitted (if a debug flag is set in the app/dev environment which is hosting LLVM). I attempted to do this by adding another AsmPrinter pass to the PassManager, but this runs into all sorts of problems because...
2013 Mar 09
0
[LLVMdev] MCJIT and Lazy Compilation
...g on-the-fly with MCJIT on an ARM Pandaboard. Viewer discretion is advised! https://vimeo.com/60407237 Here is the overview of changes I promised a couple of weeks back. These comments are based on the 3.3 trunk of about 3 weeks ago. -- RuntimeDyld -- Relocations needs to be cleared between each emitObject. New method required: clearRelocations void RuntimeDyldImpl::clearRelocations() { ExternalSymbolRelocations.clear(); Relocations.clear(); } void RuntimeDyld::clearRelocations() { Dyld->clearRelocations(); } -- RuntimeDyldImpl -- void clearRelocations(); -- SectionMemoryManager --...
2014 Mar 26
7
[LLVMdev] Lots of regtest failures on PPC64/Linux
...294119968 [ 3149s] 11 libLLVMCore.so 0x00003fff7f35c9d8 llvm::legacy::PassManagerImpl::run(llvm::Module&) + 4294121888 [ 3149s] 12 libLLVMCore.so 0x00003fff7f35d120 llvm::legacy::PassManager::run(llvm::Module&) + 4294123632 [ 3149s] 13 libLLVMMCJIT.so 0x00003fff7eff6a20 llvm::MCJIT::emitObject(llvm::Module*) + 4294875216 [ 3149s] 14 libLLVMMCJIT.so 0x00003fff7eff6dfc llvm::MCJIT::generateCodeForModule(llvm::Module*) + 4294876180 [ 3149s] 15 libLLVMMCJIT.so 0x00003fff7eff7674 llvm::MCJIT::finalizeObject() + 4294878228 [ 3149s] 16 lli 0x000000001000cf9c main + 4294831444...
2013 Feb 16
2
[LLVMdev] MCJIT and Lazy Compilation
Hey Andy, Yep I've tested some non-trivial examples with loads of dependencies, both code and data, global, local and external symbol resolution etc.. Actually this was truly a piece of cake, nothing to do, the memory manager is working really nicely so far as I can tell. Relocations to sections are all working as expected (aside from previously mentioned ARM issue which is probably just
2014 Mar 26
3
[LLVMdev] Lots of regtest failures on PPC64/Linux
...7f35c9d8 > > llvm::legacy::PassManagerImpl::run(llvm::Module&) + 4294121888 > > [ 3149s] 12 libLLVMCore.so 0x00003fff7f35d120 > > llvm::legacy::PassManager::run(llvm::Module&) + 4294123632 > > [ 3149s] 13 libLLVMMCJIT.so 0x00003fff7eff6a20 > > llvm::MCJIT::emitObject(llvm::Module*) + 4294875216 > > [ 3149s] 14 libLLVMMCJIT.so 0x00003fff7eff6dfc > > llvm::MCJIT::generateCodeForModule(llvm::Module*) + 4294876180 > > [ 3149s] 15 libLLVMMCJIT.so 0x00003fff7eff7674 > > llvm::MCJIT::finalizeObject() + 4294878228 > > [ 3149s] 16 lli...
2014 Jun 24
2
[LLVMdev] Any way get debug output of generated assembly from MCJIT without completely redoing CodeGen?
...cpp > > I'm not sure how efficient the disassembling is, but at least the process is > pretty self-contained. > > > On Tue, Jun 24, 2014 at 1:33 PM, Craig Smith <craig at ni.com> wrote: >> >> >> Hello all, >> >> I'm trying to hack MCJIT::emitObject to optionally output the >> corresponding text assembly associated with the object code being emitted >> (if a debug flag is set in the app/dev environment which is hosting LLVM). >> I attempted to do this by adding another AsmPrinter pass to the >> PassManager, but this run...
2015 May 29
2
[LLVMdev] MCJit interface question
...ld need to be updated with the reserveAllocationSpace signature change (though they could just ignore the new parameter). 4. We could avoid needing to crack the object file for this information altogether; MCJit could add a hook where a client could insert passes into the PassManager used in emitObject; LLILC could attach a pass that would consult the MachineModuleInfo, where this information could be stored (it's similar to what's stored in the WinEHFuncInfos hanging off the MMI today). But adding hooks for client passes might be opening a can of worms... My inclination would be #2 or...
2013 Dec 17
3
[LLVMdev] Trying to use patchpoint in MCJIT
....dylib`llvm::legacy::PassManagerImpl::run(this=0x0000000106feb9f0, M=0x0000000106fe6f30) + 544 at LegacyPassManager.cpp:1711 frame #17: 0x000000010108466d libjvm.dylib`llvm::legacy::PassManager::run() + 13 at LegacyPassManager.cpp:1746 frame #18: 0x0000000100eeaf8c libjvm.dylib`llvm::MCJIT::emitObject(this=0x0000000106fa69a0, M=0x0000000106fe6f30) + 236 at MCJIT.cpp:131 frame #19: 0x0000000100eeb2d3 libjvm.dylib`llvm::MCJIT::generateCodeForModule(this=0x0000000106fa69a0, M=0x0000000106fe6f30) + 323 at MCJIT.cpp:169 frame #20: 0x0000000100eec022 libjvm.dylib`llvm::MCJIT::getFunctionAddres...
2015 May 30
2
[LLVMdev] MCJit interface question
...ld need to be updated with the reserveAllocationSpace signature change (though they could just ignore the new parameter). 4. We could avoid needing to crack the object file for this information altogether; MCJit could add a hook where a client could insert passes into the PassManager used in emitObject; LLILC could attach a pass that would consult the MachineModuleInfo, where this information could be stored (it's similar to what's stored in the WinEHFuncInfos hanging off the MMI today). But adding hooks for client passes might be opening a can of worms… My inclination would be #2 or #3...
2013 Dec 18
0
[LLVMdev] Trying to use patchpoint in MCJIT
...agerImpl::run(this=0x0000000106feb9f0, > M=0x0000000106fe6f30) + 544 at LegacyPassManager.cpp:1711 > frame #17: 0x000000010108466d > libjvm.dylib`llvm::legacy::PassManager::run() + 13 at > LegacyPassManager.cpp:1746 > frame #18: 0x0000000100eeaf8c > libjvm.dylib`llvm::MCJIT::emitObject(this=0x0000000106fa69a0, > M=0x0000000106fe6f30) + 236 at MCJIT.cpp:131 > frame #19: 0x0000000100eeb2d3 > libjvm.dylib`llvm::MCJIT::generateCodeForModule(this=0x0000000106fa69a0, > M=0x0000000106fe6f30) + 323 at MCJIT.cpp:169 > frame #20: 0x0000000100eec022 > libjvm.dylib`ll...
2015 May 29
0
[LLVMdev] MCJit interface question
...th the reserveAllocationSpace signature change (though they could > just ignore the new parameter). > > 4. We could avoid needing to crack the object file for this > information altogether; MCJit could add a hook where a client could insert > passes into the PassManager used in emitObject; LLILC could attach a pass > that would consult the MachineModuleInfo, where this information could be > stored (it's similar to what's stored in the WinEHFuncInfos hanging off the > MMI today). But adding hooks for client passes might be opening a can of > worms… > > &gt...
2012 Oct 27
0
[LLVMdev] Using LLVM to serialize object state -- and performance
...s RuntimeDyld to load them. If you had a hook to save the generated object, you could use RuntimeDyld directly to load it later. There are other ways to generate the object image (i.e. without MCJIT), but I'm not sure it would be easier. You basically just need to grab the Buffer that MCJIT::emitObject() has after it calls PM.run() and Buffer->flush() but before it passes it to Dyld.loadObject(). If you prefer, you could copy what MCJIT does and move it somewhere in your own code. There's not a lot to it. -Andy -----Original Message----- From: llvmdev-bounces at cs.uiuc.edu [mailto:l...
2013 Dec 18
2
[LLVMdev] Trying to use patchpoint in MCJIT
...agerImpl::run(this=0x0000000106feb9f0, > M=0x0000000106fe6f30) + 544 at LegacyPassManager.cpp:1711 > frame #17: 0x000000010108466d > libjvm.dylib`llvm::legacy::PassManager::run() + 13 at > LegacyPassManager.cpp:1746 > frame #18: 0x0000000100eeaf8c > libjvm.dylib`llvm::MCJIT::emitObject(this=0x0000000106fa69a0, > M=0x0000000106fe6f30) + 236 at MCJIT.cpp:131 > frame #19: 0x0000000100eeb2d3 > libjvm.dylib`llvm::MCJIT::generateCodeForModule(this=0x0000000106fa69a0, > M=0x0000000106fe6f30) + 323 at MCJIT.cpp:169 > frame #20: 0x0000000100eec022 > libjvm.dylib`ll...
2013 Nov 19
0
[LLVMdev] Some MCJIT benchmark numbers
The pass manager is re-created in emitObject on every call. Andy, is that needed or can we create the PM in MCJIT constructor and keep it around? Yaron 2013/11/19 Kevin Modzelewski <kmod at dropbox.com> > So I finally took the plunge and switched to MCJIT (wasn't too bad, as > long as you remember to call InitializeNati...
2015 Jun 04
2
[LLVMdev] MCJit interface question
...ld need to be updated with the reserveAllocationSpace signature change (though they could just ignore the new parameter). 4. We could avoid needing to crack the object file for this information altogether; MCJit could add a hook where a client could insert passes into the PassManager used in emitObject; LLILC could attach a pass that would consult the MachineModuleInfo, where this information could be stored (it's similar to what's stored in the WinEHFuncInfos hanging off the MMI today). But adding hooks for client passes might be opening a can of worms… My inclination would be #2 or #3...
2015 May 30
2
[LLVMdev] MCJit interface question
...ld need to be updated with the reserveAllocationSpace signature change (though they could just ignore the new parameter). 4. We could avoid needing to crack the object file for this information altogether; MCJit could add a hook where a client could insert passes into the PassManager used in emitObject; LLILC could attach a pass that would consult the MachineModuleInfo, where this information could be stored (it's similar to what's stored in the WinEHFuncInfos hanging off the MMI today). But adding hooks for client passes might be opening a can of worms… My inclination would be #2 or #3...
2013 Nov 19
2
[LLVMdev] Some MCJIT benchmark numbers
So I finally took the plunge and switched to MCJIT (wasn't too bad, as long as you remember to call InitializeNativeTargetDisassembler if you want disassembly...), and I got the functionality to a point I was happy with so I wanted to test perf of the system. I created a simple benchmark and I'd thought I'd share the results, both because I know I personally had no idea what the
2013 Feb 08
1
[LLVMdev] JIT on armhf
> So I'm using "llvm/ExecutionEngine/MCJIT.h" instead of > "llvm/ExecutionEngine/JIT.h", and I've added setUseMCJIT(true) to > EngineBuilder, but what actually happens is: > > LLVM ERROR: Target does not support MC emission! > > Do I need to do anything else? IIRC, this error might be due to not linking against the MCJIT library component. Add the
2015 Jun 04
2
[LLVMdev] MCJit interface question
...ld need to be updated with the reserveAllocationSpace signature change (though they could just ignore the new parameter). 4. We could avoid needing to crack the object file for this information altogether; MCJit could add a hook where a client could insert passes into the PassManager used in emitObject; LLILC could attach a pass that would consult the MachineModuleInfo, where this information could be stored (it's similar to what's stored in the WinEHFuncInfos hanging off the MMI today). But adding hooks for client passes might be opening a can of worms… My inclination would be #2 or #3...
2012 Nov 06
3
[LLVMdev] Using LLVM to serialize object state -- and performance
...yld to load them. If you had a hook to save the generated object, you could use RuntimeDyld directly to load it later. There are other ways to generate the object image (i.e. without MCJIT), but I'm not sure it would be easier. > > You basically just need to grab the Buffer that MCJIT::emitObject() has after it calls PM.run() and Buffer->flush() but before it passes it to Dyld.loadObject(). If you prefer, you could copy what MCJIT does and move it somewhere in your own code. There's not a lot to it. > > -Andy > > > -----Original Message----- > From: llvmdev-bo...