[all-commits] [llvm/llvm-project] dba4ed: RuntimeLibcalls: Move exception call config to tab...

Matt Arsenault via All-commits all-commits at lists.llvm.org
Tue Aug 5 18:30:16 PDT 2025


  Branch: refs/heads/users/arsenm/runtime-libcalls/move-exception-model-calls-config-tablegen
  Home:   https://github.com/llvm/llvm-project
  Commit: dba4ed6b6b17c2095c681c19f03eb6ea625b3ed9
      https://github.com/llvm/llvm-project/commit/dba4ed6b6b17c2095c681c19f03eb6ea625b3ed9
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2025-08-06 (Wed, 06 Aug 2025)

  Changed paths:
    M llvm/include/llvm/IR/RuntimeLibcalls.h
    M llvm/include/llvm/IR/RuntimeLibcalls.td
    M llvm/lib/IR/RuntimeLibcalls.cpp
    M llvm/test/TableGen/RuntimeLibcallEmitter-calling-conv.td
    M llvm/test/TableGen/RuntimeLibcallEmitter.td
    M llvm/utils/TableGen/Basic/RuntimeLibcallsEmitter.cpp

  Log Message:
  -----------
  RuntimeLibcalls: Move exception call config to tablegen

Also starts pruning out these calls if the exception model is
forced to none.

I worked backwards from the logic in addPassesToHandleExceptions
and the pass content. There appears to be some tolerance
for mixing and matching exception modes inside of a single module.
As far as I can tell _Unwind_CallPersonality is only relevant for
wasm, so just add it there.

As usual, the arm64ec case makes things difficult and is
missing test coverage. The set of calls in list form is necessary
to use foreach for the duplication, but in every other context a
dag is more convenient. You cannot use foreach over a dag, and I
haven't found a way to flatten a dag into a list.

This removes the last manual setLibcallImpl call in generic code.



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