Displaying 20 results from an estimated 7000 matches similar to: "[LLVMdev] MCJIT and Kaleidoscope Tutorial"
2013 Jun 04
0
[LLVMdev] MCJIT and Kaleidoscope Tutorial
Am 04.06.2013 16:05, schrieb David Tweed:
> | I am curious about JMM->invalidInstructionCache(), which I found in
> | lli.cpp implementation. lli.cpp contains also call finalizeObject(), I
> | just overlooked it. lli.cpp calls finalizeObject(), which calls
> | applyPermissions, which in turn calls invalidateInstructionCache. So why
> | lli.cpp does call
2013 Jun 04
0
[LLVMdev] MCJIT and Kaleidoscope Tutorial
Hi Dmitri,
You might want to try replacing the call to JMM->invalidInstructionCache() with a call to TheExecutionEngine->finalizeObject(). If you are getting a non-NULL pointer from getPointerToFunction but it crashes when you try to call it, that is most likely because the memory for the generated code has not been marked as executable. That happens inside finalizeObject, which also
2013 Jun 04
1
[LLVMdev] MCJIT and Kaleidoscope Tutorial
Hi Dmitri,
You're right. The lli code should be cleaned up. As David said, there was a time when the call to invalidate the instruction cache was necessary. It isn't necessary anymore.
-Andy
-----Original Message-----
From: Dmitri Rubinstein [mailto:dmitri.rubinstein at googlemail.com]
Sent: Tuesday, June 04, 2013 7:20 AM
To: David Tweed
Cc: Kaylor, Andrew; LLVM Dev
Subject: Re:
2013 Jun 04
1
[LLVMdev] MCJIT and Kaleidoscope Tutorial
Hi Andrew,
Am 04.06.2013 02:13, schrieb Kaylor, Andrew:
> Hi Dmitri,
>
> You might want to try replacing the call to JMM->invalidInstructionCache() with a call to TheExecutionEngine->finalizeObject(). If you are getting a non-NULL pointer from getPointerToFunction but it crashes when you try to call it, that is most likely because the memory for the generated code has not been
2013 Nov 08
2
[LLVMdev] UNREACHABLE executed at MCJIT.cpp:322!
I'm trying to get MCJIT working but I get the following errors:
Full-featured argument passing not supported yet!
UNREACHABLE executed at MCJIT.cpp:322!
I'm sure the first one will be a problem, but the second one prevents me
from testing anything. I don't know how to fix the problem.
My code works when using the non-MC JIT, and I added to my EngineBuilder:
.setUseMCJIT(true)
2013 Nov 08
1
[LLVMdev] UNREACHABLE executed at MCJIT.cpp:322!
It was the return type which was i64. I changed it also to my
abi_int_size and it works now. I have to take care of a few other type
translations, but it looks like MCJIT is working now.
Thank you.
On 08/11/13 18:12, Yaron Keren wrote:
> Something must be wrong with the Function Type. Try to debug into
> runFunction to see which if condition fails.
> Just a guess, if this is on 64
2013 Nov 08
2
[LLVMdev] UNREACHABLE executed at MCJIT.cpp:322!
That makes it more mysterious then since I am indeed only calling a main
function. Perhaps I have to invoke it a different way. Here's my call I
have now:
auto main = linker->getModule()->getFunction( "main" );
std::vector<llvm::GenericValue> args(2);
args[0].IntVal = llvm::APInt( platform::abi_int_size, 0 );
args[1].PointerVal = nullptr;
llvm::GenericValue gv =
2013 Apr 23
1
[LLVMdev] LLVM JIT Questions
This sounds great, but will it work on Windows as well ?
I considered MCJIT for my work, but was not sure if there are any features
supported by old JIT but missing in MCJIT.
Thanks,
Dmitri
Am 23.04.2013 20:26 schrieb "Kaylor, Andrew" <andrew.kaylor at intel.com>:
> Yes, exactly. My patch adds a new ObjectCache class which can be
> registered with MCJIT. MCJIT will
2013 Apr 23
3
[LLVMdev] LLVM JIT Questions
On Tue, Apr 23, 2013 at 10:39 AM, Kaylor, Andrew <andrew.kaylor at intel.com>wrote:
> Hi Dmitri,
>
> Regarding your first question, if you can use the MCJIT engine a caching
> mechanism will be available very soon. I'm preparing to commit a patch
> today to add this capability. I'm not sure what it would take to get
> something similar working with the older JIT
2013 Nov 08
0
[LLVMdev] UNREACHABLE executed at MCJIT.cpp:322!
MCJIT::runFunction supports only main-style argument passing but not other
cases like the JIT.
These types of arguments will work:
(int, char**, char**)
(int, char**)
(int)
(void)
The general case is not supported since it requires creating a small stub
function, compiling and running it on the fly, supported by JIT but not
MCJIT.
However, with the supported calling sequences, you can probably
2013 Apr 23
0
[LLVMdev] LLVM JIT Questions
Yes, exactly. My patch adds a new ObjectCache class which can be registered with MCJIT. MCJIT will then call this component before attempting to generate code to see if it has a cached object image for a given module. If the ObjectCache has a cached object, MCJIT will skip the code generation step and just perform linking and loading. If the ObjectCache does not have a cached version MCJIT
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
2013 Nov 08
0
[LLVMdev] UNREACHABLE executed at MCJIT.cpp:322!
Something must be wrong with the Function Type. Try to debug into
runFunction to see which if condition fails.
Just a guess, if this is on 64 bit system the first argument type may be
int64 but needs to be int32.
Yaron
2013/11/8 edA-qa mort-ora-y <eda-qa at disemia.com>
> That makes it more mysterious then since I am indeed only calling a main
> function. Perhaps I have to invoke
2013 Apr 23
3
[LLVMdev] LLVM JIT Questions
Hi all,
For my current project I need a couple of informations about JIT. I seen
similar questions already, but the answers are a bit older and I hope
somebody can provide me a recent information.
1. In my project I frequently construct LLVM IR, compile it and execute
with JIT. Because the constructed IR is often the same (but can vary
depending on input data) I would like to cache produced
2013 Mar 09
0
[LLVMdev] MCJIT and Lazy Compilation
Hi Andy/Albert,
Sorry for the slow reply, my day job caught up with me.
Two bits of progress. (a) MCJIT is working nicely for non-trivial
examples in Extempore on x86 and ARM, and (b) the page
permissions are now RO again. For your amusement a *very*
cheesy video of Extempore running on-the-fly with MCJIT on an
ARM Pandaboard. Viewer discretion is advised!
https://vimeo.com/60407237
Here is the
2013 Apr 23
0
[LLVMdev] LLVM JIT Questions
Hi Dmitri,
Regarding your first question, if you can use the MCJIT engine a caching mechanism will be available very soon. I'm preparing to commit a patch today to add this capability. I'm not sure what it would take to get something similar working with the older JIT engine. I expect it would take a fair amount of work because the older JIT engine isn't designed around object
2015 Mar 13
4
[LLVMdev] Thoughts about ExecutionEngine/MCJIT interface
Hi,
I think ExecutionEngine as a common interface for both Interpreter and
MCJIT is almost useless in the current form. There are separated methods in
ExecutionEngine for similar or the same features provided by Interpreter
and MCJIT, i.e. to get a pointer to function you should call
getPointerToFunction() for Interpreter or getFunctionAddress() for MCJIT.
Personally, I'm using MCJIT and
2013 Nov 01
4
[LLVMdev] [Proposal] Adding callback mechanism to Execution Engines
Hello,
I would like to have your opinions on this.
*Problem:*
Currently, there are no ways to perform hypercalls into LLVM (they transfer
execution from the program being executed to the LLVM infrastructure to
perform compilation). The goal of this project is to cleanly integrate an
API into the LLVM code/execution engine to create custom callbacks. The
“lli” executable should allow having a
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
2015 Mar 26
2
[LLVMdev] MCJIT finalizeObject output to use in external process
No, I was asking how to extract the code from MCJIT, and you said it use a
custom memory manager.
When you say that I must treat each section as a block, do you mean that
there is inter-block relative offsets need to be maintained? Or that when I
get a section, I must copy it to target process memory as a one-shot
contiguous block. If it's second, I think we're ok.
On Wed, Mar 25, 2015