[LLVMdev] code generation for calls in JITted code after r88984

Zoltan Varga vargaz at gmail.com
Tue Dec 15 01:05:49 PST 2009


Hi,

After this commit:
http://llvm.org/viewvc/llvm-project?view=rev&revision=88984

the X86 JIT no longer emits calls using call <ADDR>, but always uses mov
REG, <ADDR>, call *REG. This causes problems for the usage of LLVM in JITs
since the JIT can no longer patch the callsite after the callee have been
compiled. According to the comments for the commit, this was done to fix the
large code model on amd64, but this affects JITs which can guarantee that
both the caller and callee have 32 bit addresses, since the code model is
set uncoditionally to Large, even if another code model was passed to
createJIT ():

http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86TargetMachine.cpp?r1=86251&r2=88984&pathrev=88984

Would it be possible to fix this or make it configurable ?

                               thanks

                                    Zoltan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20091215/792d6a95/attachment.html>


More information about the llvm-dev mailing list