llvm / llvm-project

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
http://llvm.org
Other
26.7k stars 10.94k forks source link

[libc][arm][setjmp/longjmp] mark these noinline (for LTO) #94073

Open nickdesaulniers opened 1 month ago

nickdesaulniers commented 1 month ago

https://github.com/ARM-software/abi-aa/blob/main/clibabi32/clibabi32.rst#setjmph

and called out of line.

We'd like to support LTO'ing the libc. Inlining setjmp/longjmp is going to break assumptions about which values are in which registers. We should mark these function definitions noinline, should we one day support LTO'ing libc for arm32.

llvmbot commented 1 month ago

@llvm/issue-subscribers-libc

Author: Nick Desaulniers (paternity leave) (nickdesaulniers)

https://github.com/ARM-software/abi-aa/blob/main/clibabi32/clibabi32.rst#setjmph > and called out of line. We'd like to support LTO'ing the libc. Inlining setjmp/longjmp is going to break assumptions about which values are in which registers. We should mark these function definitions noinline, should we one day support LTO'ing libc for arm32.