[all-commits] [llvm/llvm-project] ecfffb: [libc][OSUtil] refactor quick_exit to be an object...

Nick Desaulniers via All-commits all-commits at lists.llvm.org
Tue Mar 26 08:28:06 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ecfffbfd3921fd47f3afc1d03a7518b34ec396b3
      https://github.com/llvm/llvm-project/commit/ecfffbfd3921fd47f3afc1d03a7518b34ec396b3
  Author: Nick Desaulniers <nickdesaulniers at users.noreply.github.com>
  Date:   2024-03-26 (Tue, 26 Mar 2024)

  Changed paths:
    M libc/src/__support/OSUtil/CMakeLists.txt
    M libc/src/__support/OSUtil/baremetal/CMakeLists.txt
    A libc/src/__support/OSUtil/baremetal/quick_exit.cpp
    R libc/src/__support/OSUtil/baremetal/quick_exit.h
    M libc/src/__support/OSUtil/darwin/CMakeLists.txt
    R libc/src/__support/OSUtil/darwin/quick_exit.h
    M libc/src/__support/OSUtil/gpu/CMakeLists.txt
    M libc/src/__support/OSUtil/gpu/quick_exit.cpp
    R libc/src/__support/OSUtil/gpu/quick_exit.h
    M libc/src/__support/OSUtil/linux/CMakeLists.txt
    A libc/src/__support/OSUtil/linux/quick_exit.cpp
    R libc/src/__support/OSUtil/linux/quick_exit.h
    M libc/src/__support/OSUtil/quick_exit.h
    M libc/src/stdlib/CMakeLists.txt
    M libc/src/stdlib/_Exit.cpp
    M libc/src/stdlib/exit.cpp
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel

  Log Message:
  -----------
  [libc][OSUtil] refactor quick_exit to be an object library everywhere (#85955)

The usage of __builtin_unreachable after calls to quick_exit were distressing.
If a function is properly marked [[noreturn]] then __builtin_unreachable is not
necessary.

Looking into this further, we seem to have header only implementations for CPU
targets. The inline nature of these functions is curious; we're going to exit,
it doesn't matter if we need to pay the call of a function or not. If we just
make these functions have distinct TUs rather than be header only, we can clean
up the cmake rules for quick_exit which were different between CPU and GPU.

Remove darwin support for quick_exit. This isn't being tested, and we can bring
it back when necessary.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list