[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