[LLVMbugs] [Bug 5126] New: JIT should use non-stub address outside of calls

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Sat Oct 3 00:14:16 PDT 2009


http://llvm.org/bugs/show_bug.cgi?id=5126

           Summary: JIT should use non-stub address outside of calls
           Product: libraries
           Version: trunk
          Platform: PC
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Target-Independent JIT
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: jyasskin at google.com
                CC: llvmbugs at cs.uiuc.edu


Created an attachment (id=3604)
 --> (http://llvm.org/bugs/attachment.cgi?id=3604)
Test provoking the bug

The JIT uses stubs for a couple purposes: retargeting dlsym-found external
functions, lazily compiling internal functions, and on x86-64 calling functions
defined more than 32 bits away from the call site. For at least far calls, that
stub should only be used for calls, and not for other uses of the address.

The attached patch demonstrates that external functions when lazy compilation
is turned on copy the stub's address into a return value, and when PR5116 is
fixed a similar test will show that simple far calls use the stub's address
too.

Unladen Swallow ran into this because we're trying to use "%1 = load fptr; cmp
%1, @global" to guard inlined calls to @global, but %1 can't possibly match a
stub.


-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list