[llvm-commits] patch: no stubs (to lazy resolver) when jit lazy compilation is disabled

Nick Lewycky nicholas at mxc.ca
Sun Oct 11 14:57:39 PDT 2009


Nate Begeman wrote:
> 
> On Oct 11, 2009, at 11:03 AM, Nick Lewycky wrote:
> 
>> The JIT still produces lazy function resolver stubs even when lazy 
>> compilation is disabled. It then goes back through and rewrites these 
>> stubs before considering the compilation completed. This patch changes 
>> that behaviour to make it compile the function but never create the stub.
> 
> Hi Nick,
> 
> I don't understand how this actually works; you're returning an address 
> of 0 for the GV instead of a stub, but there's no process by which the 
> call to address zero is rewritten to the actual address after the 
> pending function is emitted.  Can you explain how this would work in 
> non-lazy jitting if function C called A and B which call each other?

It doesn't, but thanks for explaining what's wrong. I thought the code 
was already returning NULL in certain cases and just assumed it knew how 
to handle that. I've coded up your example as a unit test and it does 
indeed end up calling null.

Nick




More information about the llvm-commits mailing list