[llvm-bugs] [Bug 30337] New: Don't emit Win64 pdata/xdata for "leaf" functions

via llvm-bugs llvm-bugs at lists.llvm.org
Fri Sep 9 09:07:18 PDT 2016


https://llvm.org/bugs/show_bug.cgi?id=30337

            Bug ID: 30337
           Summary: Don't emit Win64 pdata/xdata for "leaf" functions
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: normal
          Priority: P
         Component: Backend: X86
          Assignee: unassignedbugs at nondot.org
          Reporter: hans at chromium.org
                CC: llvm-bugs at lists.llvm.org
            Blocks: 26299
    Classification: Unclassified

>From https://msdn.microsoft.com/en-us/library/ms235286.aspx:

"Leaf functions are functions that do not change any non-volatile registers. ..
Leaf functions can be unwound simply by simulating a return, so pdata and xdata
are not required."

Not emitting these would be good for binary size.

Note that such functions can still tail-call others, so they're not really
leafs in the call-graph sense.

If we hook up a way to determine whether a function is a leaf in this sense, we
can also use it to do conditional tail-calls for Win64. Such calls would
generally confuse the unwinder, but in leaf functions they are fine.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20160909/036895b3/attachment.html>


More information about the llvm-bugs mailing list