[LLVMdev] JIT support for inline asm on Linux
Ashok Nalkund
ashoknn at qualcomm.com
Mon May 7 23:16:28 PDT 2012
On 5/7/2012 10:17 PM, Bendersky, Eli wrote:
<snip>
>>> $lli -entry-function="ISimEngine_GetVersion" -use-mcjit libengine.bc
>>> LLVM ERROR: Inline asm not supported by this streamer because we don't
>>> have an asm parser for this target
>>
>> I also tried other variations of the call with the same result:
>>> $lli -entry-function="ISimEngine_GetVersion" -use-mcjit -mattr=+avx
>>> -mcpu=corei7-avx libengine.bc
>>
>> I updated my program looking at lli.cpp and it also gave the same error as
>> above. The info from lli --version is below:
>>
>>> $lli --version
>>> LLVM (http://llvm.org/):
>>> LLVM version 3.2svn
>>> Optimized build with assertions.
>>> Built May 7 2012 (10:54:43).
>>> Default target: x86_64-unknown-linux-gnu
>>> Host CPU: corei7-avx
>>
>> Any pointers? I saw another thread "Trouble using the MCJIT: "Target does
>> not support MC emission" error" but that didnt seem to have positive
>> ending.
>>
>
> Sorry, I'm not familiar with these parts (ASM parsing in MC). Perhaps someone else could help here. I wonder, though, did you manage to get some code running without inline ASM?
> Eli
I tried the attached program, compiled with clang and used lli to run it:
clang -cc1 -O0 -g -emit-llvm test.c
lli -use-mcjit test.ll
The lli prints out what looks like binary data. If I remove the inline
asm from the program, it works fine.
TIA,
Ashok
-------------- next part --------------
//#include <stdio.h>
/*
void f(void)
{
}
*/
int main(void)
{
int foo = 10, bar = 15;
__asm__ __volatile__("addl %%ebx,%%eax"
:"=a"(foo)
:"a"(foo), "b"(bar)
);
//printf("foo+bar=%d\n", foo);
return 0;
}
More information about the llvm-dev
mailing list