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: [email protected]
          Reporter: [email protected]
                CC: [email protected],
                    [email protected], [email protected],
                    [email protected]

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.
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to