[LLVMdev] direct calls to inttoptr constants
Tobias
ubub at gmx.net
Wed Feb 11 05:30:29 PST 2009
Hello Mark,
I've followed your advice and changed the IR to:
%0 = call i32 inttoptr (i32 12345678 to i32 (i32)*)(i32 0) nounwind
the call is still indirect.
IMHO llc does not call it directly because the address is neither
a globalvalue (JIT) nor a external symbol.
That's why it uses a fallback mechanism to call it indirectly
assuming the address is not constant and is calculated at runtime.
tobias
Mark wrote:
> I'm doing something similar (I use LLVM as part of my JIT compiler) and
> if I remember correctly, LLVM does the correct thing.
>
> I think you need to try changing the i64 value to an i32 value.
> If that doesn't work you could also try replacing the tail call with a
> normal call.
>
>
> Mark.
More information about the llvm-dev
mailing list