search for: indirectstubsmanager

Displaying 10 results from an estimated 10 matches for "indirectstubsmanager".

2016 Jul 29
0
[ORC JIT] Exposing IndirectStubsManager from CompileOnDemandLayer.h
+Lang Hames <lhames at gmail.com>, Master Regent of the Three <No, Two sir> JITs On Thu, Jul 28, 2016 at 12:31 PM Sean Ogden via llvm-dev < llvm-dev at lists.llvm.org> wrote: > I needed to be able to update stub pointers for hot functions that get > recompiled in a lazy JIT that uses CompileOnDemandLayer. In order to do > this I added a method that allows pointers to
2016 Jul 28
2
[ORC JIT] Exposing IndirectStubsManager from CompileOnDemandLayer.h
I needed to be able to update stub pointers for hot functions that get recompiled in a lazy JIT that uses CompileOnDemandLayer. In order to do this I added a method that allows pointers to be updated but does not expose any of the other internals of the COD layer. Does anyone have a cleaner way to do this? Has something to facilitate this already been added? Would it be possible to merge this
2016 May 27
1
How to recompile functions with ORC JIT?
H Theodoros, David, What I am trying to figure out is how the function pointer can be updated > to point to the newly compiled version. As Dave implied, it depends on how you've set up your ORC stack. These days, the API directly responsible for this is the IndirectStubsManager (see llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h). If you have access to the appropriate IndirectStubsManager you just need to call the updatePointer method with the name of the function you want to update and the new address. If you're using the CompileOnDemand layer to compile l...
2016 Jul 29
0
[ORC JIT] Exposing IndirectStubsManager from CompileOnDemandLayer.h
It does work. I just tested it on my JIT. Thanks! As for the part that couples them too tightly, would you recommend I just keep my own specialized version of CompileOnDemandLayer.h that includes this functionality, or do you have any ideas for a cleaner way to do this? I've noticed a couple of people asking for support for updating stub pointers for functions that are optimized at runtime,
2016 May 27
0
How to recompile functions with ORC JIT?
+Lang Ultravague answer: There are a few different Orc layers for different levels of indirection needed for different levels of substitutability. One way is to indirect every call through global function pointers - so when you want to replace the function you write the new function pointer to the global variable. I forget which layers do which kinds of indirection. - Dave On Thu, May 26, 2016
2016 Jul 30
1
[ORC JIT] Exposing IndirectStubsManager from CompileOnDemandLayer.h
Hi Sean, As for the part that couples them too tightly, would you recommend I just > keep my own specialized version of CompileOnDemandLayer.h that includes > this functionality, or do you have any ideas for a cleaner way to do this? My apologies - I wasn't very clear in my description of the issue. The only sense in which your original patch was tightly coupled was that it had
2016 Jul 29
2
[ORC JIT] Exposing IndirectStubsManager from CompileOnDemandLayer.h
Hi Sean, This is great, but it couples LogicalDylib too tightly to CompileOnDemandLayer. Does this alternative implementation of getLogicalModuleResourcesForSymbol work for you (unfortunately I don't have a local test case for this yet): LogicalModuleResources* getLogicalModuleResourcesForSymbol(const std::string &Name, bool
2019 Aug 13
2
VModuleKey K not valid here
...llvm::orc::LegacyIRCompileLayer<llvm::orc::LegacyRTDyldObjectLinkingLayer, llvm::orc::SimpleCompiler>, std::function<std::unique_ptr<llvm::Module>(std::unique_ptr<llvm::Module>)> >; CompileCallbackMgrT = llvm::orc::JITCompileCallbackManager; IndirectStubsMgrT = llvm::orc::IndirectStubsManager; llvm::orc::VModuleKey = long unsigned int]: Assertion `I != LogicalDylibs.end() && "VModuleKey K not valid here"' failed. 1) Can 0 ever be a valid VModuleKey? How can one reliably detect an invalid VModuleKey? 2) Secondly it seems to me that following the assertion there sh...
2016 May 27
2
How to recompile functions with ORC JIT?
Hello, I am trying to figure out how to recompile functions multiple times during run-time with ORC JIT and I'd appreciate any help/advice. My use case is t he following: every time a function of interest (annotated) is called, profiling data are gathered. Given enough data the function is recompiled using different optimizations. This happens repeatedly until the "best"
2019 Aug 13
2
VModuleKey K not valid here
...lvm::orc::LegacyRTDyldObjectLinkingLayer, >> llvm::orc::SimpleCompiler>, >> std::function<std::unique_ptr<llvm::Module>(std::unique_ptr<llvm::Module>)> >> >; CompileCallbackMgrT = llvm::orc::JITCompileCallbackManager; >> IndirectStubsMgrT = llvm::orc::IndirectStubsManager; >> llvm::orc::VModuleKey = long unsigned int]: Assertion `I != >> LogicalDylibs.end() && "VModuleKey K not valid here"' failed. >> >> 1) Can 0 ever be a valid VModuleKey? How can one reliably detect an >> invalid VModuleKey? >> 2) Secondly...