llvm-project
221d5c57 - [libc] Disable `-ffreestanding` and `-fno-builtin` on the GPU build (#97636)

Commit
1 year ago
[libc] Disable `-ffreestanding` and `-fno-builtin` on the GPU build (#97636) Summary: This patch removed the `-ffreestanding` and `-fno-builtin` flags from the publically installed version of the GPU library. The presense of `-fno-builtin` caused issues that prevented all inlining in the GPU C library, see https://discourse.llvm.org/t/rfc-libc-ffreestanding-fno-builtin/75883. Previously, I attempted to fix this by loosening the restriction that `"no-builtins"` functions cannot be inlined into functions without that attribute. However, that opened up a lot of extra issues that stalled that approach. This patch instead removes that and instead passes `-fno-builtin-<xyz>` for the few calls that are known to be problematic. I believe this works in general as the GPU backends do not emit any libcalls and the implementations of most of these simply reduce to builtins right now. This is a very useful patch as we can now actually inline calls.
Author
Parents
Loading