[llvm-bugs] [Bug 50553] New: Link register not saved across Statepoint call sites

via llvm-bugs llvm-bugs at lists.llvm.org
Tue Jun 1 09:07:09 PDT 2021


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

            Bug ID: 50553
           Summary: Link register not saved across Statepoint call sites
           Product: libraries
           Version: 12.0
          Hardware: All
                OS: All
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: Backend: AArch64
          Assignee: unassignedbugs at nondot.org
          Reporter: david.lloyd at redhat.com
                CC: arnaud.degrandmaison at arm.com,
                    llvm-bugs at lists.llvm.org, smithp352 at googlemail.com,
                    Ties.Stuij at arm.com

On Aarch64, it seems that the link register isn't saved across statepoint call
sites, causing general havoc.

The workaround appears to be to forcibly enable frame pointers for non-leaf
functions, but there may be other register issues that are not as obvious.

Using `llc -march=aarch64`, it can be shown with a simple program that the
branch does not preserve the link register. Here's the example on godbolt:
https://godbolt.org/z/a7oYva4Eb

As can be seen, forcing the frame pointer to be used fixes the issue.

-- 
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/20210601/ed5ed134/attachment.html>


More information about the llvm-bugs mailing list