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

Matt Arsenault via All-commits all-commits at lists.llvm.org
Mon Aug 4 05:11:08 PDT 2025


  Branch: refs/heads/users/arsenm/runtime-libcalls/move-exception-model-calls-config-tablegen
  Home:   https://github.com/llvm/llvm-project
  Commit: 630c9ba04202c5bc39d479590db5604db141cc12
      https://github.com/llvm/llvm-project/commit/630c9ba04202c5bc39d479590db5604db141cc12
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2025-08-04 (Mon, 04 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