[LLVMbugs] [Bug 2673] New: ExpandLibCall function does not try to resolve libcalls to currently lowered module .

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Wed Aug 13 07:24:36 PDT 2008


           Summary: ExpandLibCall function does not try to resolve libcalls
                    to currently lowered module.
           Product: new-bugs
           Version: unspecified
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: new bugs
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: mikael.lepisto at tut.fi
                CC: llvmbugs at cs.uiuc.edu

When operation which is not supported by target are generated by ISEL lowering
(such as div and rem) and there is no native linker available for target, the
emulation code for libcall functions needs to be linked to program statically.

However even if libcall functions are found from currently lowered module,
ExpandLibCall function does not try to use those functions for emulating e.g.
div functionality. It just automatically supposes that libcall is external and
will be linked to code later on.

Maybe ExpandLibCall function should first check if needed libcall is already
found from module and use that implementation and if it's not found then rely
on externally linked libcall code?

In my case I link in libcall code just before ISEL and after ISEL there is
still external references to __divsi3 symbol in those places where div was
expanded, even though the function by that name is found from the same program.

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