[all-commits] [llvm/llvm-project] a3a316: [libc] Remove use of BlockStore for GPU atexit (#8...

Joseph Huber via All-commits all-commits at lists.llvm.org
Fri Feb 23 12:11:04 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: a3a316e2875258929f062fbffb81e2a9d5b4ce48
      https://github.com/llvm/llvm-project/commit/a3a316e2875258929f062fbffb81e2a9d5b4ce48
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-02-23 (Fri, 23 Feb 2024)

  Changed paths:
    M libc/src/stdlib/atexit.cpp

  Log Message:
  -----------
  [libc] Remove use of BlockStore for GPU atexit (#82823)

Summary:
The GPU backends have restrictions on the kinds of initializers they can
produce. The use of BlockStore here currently breaks the backends
through the use of recursive initializers. This prevents it from
actually being included in any builds. This patchs changes it to just
use a fixed size of 64 slots .The chances of someone exceeding the 64
slots in practice is very, very low.

However, this is primarily a bandaid solution as a real solution will
need to use a lock free data structure to push work in parallel.
Currently the mutexes on the GPU build do nothing, so they only work if
the user guards the use themselves.



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