[all-commits] [llvm/llvm-project] e2db84: RuntimeLibcalls: Split lowering decisions into Lib...

Matt Arsenault via All-commits all-commits at lists.llvm.org
Sun Oct 26 21:15:47 PDT 2025


  Branch: refs/heads/users/arsenm/runtime-libcalls/split-libcall-lowering-info-runtime-libcall-info
  Home:   https://github.com/llvm/llvm-project
  Commit: e2db84249c42fcd91a8b7e96bfe9e16fc4e237c6
      https://github.com/llvm/llvm-project/commit/e2db84249c42fcd91a8b7e96bfe9e16fc4e237c6
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2025-10-26 (Sun, 26 Oct 2025)

  Changed paths:
    M llvm/include/llvm/CodeGen/TargetLowering.h
    M llvm/include/llvm/IR/RuntimeLibcalls.h
    M llvm/lib/CodeGen/TargetLoweringBase.cpp
    M llvm/lib/IR/RuntimeLibcalls.cpp
    M llvm/lib/LTO/LTO.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp
    M llvm/lib/Transforms/Utils/DeclareRuntimeLibcalls.cpp
    M llvm/test/TableGen/RuntimeLibcallEmitter-calling-conv.td
    M llvm/test/TableGen/RuntimeLibcallEmitter-conflict-warning.td
    M llvm/test/TableGen/RuntimeLibcallEmitter.td
    M llvm/test/Transforms/Util/DeclareRuntimeLibcalls/basic.ll
    M llvm/utils/TableGen/Basic/RuntimeLibcallsEmitter.cpp

  Log Message:
  -----------
  RuntimeLibcalls: Split lowering decisions into LibcallLoweringInfo

Introduce a new class for the TargetLowering usage. This tracks the
subtarget specific lowering decisions for which libcall to use.
RuntimeLibcallsInfo is a module level property, which may have multiple
implementations of a particular libcall available. This attempts to be
a minimum boilerplate patch to introduce the new concept.

In the future we should have a tablegen way of selecting which
implementations should be used for a subtarget. Currently we
do have some conflicting implementations added, it just happens
to work out that the default cases to prefer is alphabetically
first (plus some of these still are using manual overrides
in TargetLowering constructors).


  Commit: 712ae6921eb41a9bba6e95cd79ec8e7ca5d13688
      https://github.com/llvm/llvm-project/commit/712ae6921eb41a9bba6e95cd79ec8e7ca5d13688
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2025-10-26 (Sun, 26 Oct 2025)

  Changed paths:
    M llvm/include/llvm/CodeGen/TargetLowering.h
    M llvm/include/llvm/IR/RuntimeLibcalls.h
    M llvm/lib/CodeGen/TargetLoweringBase.cpp
    M llvm/lib/IR/RuntimeLibcalls.cpp

  Log Message:
  -----------
  CodeGen: Move LibcallLoweringInfo to be with RuntimeLibcallInfo

Eventually this will be program dependent state, so it should not
be part of TargetLowering. It's easiest to have this as part of
the analysis that will provide RuntimeLibcallInfo. In principle
we would also need this to more precisely refine the set of libcalls
that full LTO could trim based on the subtarget.


  Commit: 6c5985250f2636d7998cc5a2ea5658aa9b09303b
      https://github.com/llvm/llvm-project/commit/6c5985250f2636d7998cc5a2ea5658aa9b09303b
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2025-10-26 (Sun, 26 Oct 2025)

  Changed paths:
    A llvm/include/llvm/CodeGen/LibcallLoweringInfo.h
    M llvm/include/llvm/CodeGen/TargetLowering.h
    M llvm/include/llvm/IR/RuntimeLibcalls.h
    M llvm/lib/CodeGen/CMakeLists.txt
    A llvm/lib/CodeGen/LibcallLoweringInfo.cpp
    M llvm/lib/IR/RuntimeLibcalls.cpp

  Log Message:
  -----------
  CodeGen: Move LibcallLoweringInfo to separate file


Compare: https://github.com/llvm/llvm-project/compare/4d1530d61354...6c5985250f26

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