Displaying 20 results from an estimated 300 matches similar to: "VModuleKey K not valid here"
2019 Aug 13
2
VModuleKey K not valid here
Hi Lang,
On Tue, 13 Aug 2019 at 22:15, Lang Hames <lhames at gmail.com> wrote:
>
>> 1) Can 0 ever be a valid VModuleKey? How can one reliably detect an invalid VModuleKey?
>
>
> I believe 0 was a valid VModuleKey in ORCv1. The assertion is checking the the VModuleKey is present in the LogicalDylibs map. That means that you have to have used that key in an addModule call,
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 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
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 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 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 Apr 01
2
Kaleidoscope on Windows - bug maybe found?
To try to find out why it was crashing, I followed the trail of function
calls:
C:\llvm\examples\Kaleidoscope\Orc\initial\toy.cpp
auto ExprSymbol = J.findUnmangledSymbol("__anon_expr");
JITSymbol findUnmangledSymbol(const std::string Name) {
return findSymbol(mangle(Name));
}
JITSymbol findSymbol(const std::string &Name) {
return CompileLayer.findSymbol(Name,
2016 Oct 28
4
MCJit and remove module memory leak?
I'm on llvm 3.8.1 and was wondering if there's a memory leak in the
removeModule impl of mcjit.
In the tutorial http://llvm.org/releases/3.8.1/docs/tutorial/LangImpl4.html
a module is removed from the Jit by invoking removeModule.
According to the tutorial:
"Its API is very simple:: addModule adds an LLVM IR module to the JIT,
making its functions available for execution;
2018 Jul 01
2
I've seen OrcJit is under overhaul, and also the MCJIT, so what's the plan?
I didn't seen any roadmap and plan about OrcJit & MCJIT.
And would OrcJIT be stablize in version 7.0? Or latter version?
Would MCJIT be removed in source tree, when?
--
此致
礼
罗勇刚
Yours
sincerely,
Yonggang Luo
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
2016 Nov 16
2
MCJit and remove module memory leak?
Hi Kevin, Koffie,
We will start migrating to ORC for next release, but for now, this release
> invoke delete after remove right?
MCJIT's removeModule method does not delete the module. You'll need to do
that manually. OrcMCJITReplacement is a bug-for-bug compatible
implementation of MCJIT using ORC components, so it does not free the
memory either.
Does this mean MCJIT is
2018 Sep 15
4
LLVMContext: Threads and Ownership.
Hi All,
ORC's new concurrent compilation model generates some interesting lifetime
and thread safety questions around LLVMContext: We need multiple
LLVMContexts (one per module in the simplest case, but at least one per
thread), and the lifetime of each context depends on the execution path of
the JIT'd code. We would like to deallocate contexts once all modules
associated with them have
2019 Jun 19
2
Questions about moving from MCJIT to Orc JIT
Hello LLVM-Mailing list,
in the past I was using the MCJIT (if I understand it correctly) to load IR modules, compile them and execute them. The speciality of this JIT was, that it was writing the compiled code into a shared memory - for a different process to execute them. For that task the JIT used a 'custom' memory manager, memory mapping and also resolved undefined references itself.
2019 May 07
2
Reuse llvm::ExecutionEngine
Dear LLVM-Mailing-List,
I'm using the llvm::EngineBuilder to create an instance of the llvm::ExecutionEngine, I then JIT my code, take the addresses I need and delete the llvm::ExecutionEngine. But now I started to wonder, if I could reuse that instance for a new module again?
I first tried calling llvm::EngineBuilder without setting a Module, I planned to add it later - but when I do this
2019 Jan 04
2
Undefined symbols with inline functions using the ORC JIT on Linux
Hi,
I am developing an application that uses the ORC api to JIT compile C++
code using Clang. So far I have done most of the work on Windows, where it
now mostly works as expected. However, when I tried to run my application
on Linux I ran into some problems.
The problem I ran into is that symbols for jitted inline functions cannot
be resolved. Both LLVM and Clang are checked out with latest
2019 May 08
2
Reuse llvm::ExecutionEngine
Heyho,
I can only provide you with a screenshot for the first problem I noticed:
[https://media.discordapp.net/attachments/534012750045642783/575369402195640321/unknown.png]
This code will crash when calling "eeBuilder.create".
But I also looked at what happens if I do reuse the llvm::ExecutionEngine. After the call to "finalizeObject" I use "removeModule" for the
2013 Oct 17
2
[LLVMdev] ExecutionEngine should have a non-Module creator
With the support of Multi-modules, it makes sense to have a creator /
constructor for ExecutionEngine that does not require a module.
The use-case is a program using one EE created at initialization that holds
many modules created later, as needed.
Workaround for current API could be
1) using a pointer to EE init with NULL, delaying the actual EE
construction to the time the first module is
2018 Sep 16
2
LLVMContext: Threads and Ownership.
Agreed, the existing ownership seems sub-optimal. I wouldn't say broken,
but subtle at least - looks like you get the choice to either manage the
ownership of the Module object yourself, or let the context handle it (eg:
currently it'd be valid to just do "{ LLVMContext C; new Module(C); new
Module(C); }" - Modules end up owned by the context and cleaned up there).
Might be hard
2019 Jan 05
2
Undefined symbols with inline functions using the ORC JIT on Linux
Hi Stefan,
Thanks for your reply. I tried running my simple example on Linux using lli
and it does work fine. So I think the best long-term solution is to migrate
my code to the new lazy orc jit. Unfortunately, even the simplest example
does not work on Windows:
int main() { return 0; }
This is the output:
JITDylib "<main>" (ES: 0x000001b6e4ad3670):
Search order: [
2018 Sep 16
2
LLVMContext: Threads and Ownership.
In the most basic case, I'd imagine something like this:
auto C = std::make_shared<LLVMContext>();
struct ModuleAndSharedContextDeleter { std::shared_ptr<LLVMContext> C;
operator()(Module *M) { delete M; } /* ctor to init C */};
std::unique_ptr<Module, ModuleAndSharedDeleter> M(new Module(C.get()),
ModuleAndSharedContextDeleter(C));
(or invert this and traffic in structs
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) {
+ if (jitstate &&