[all-commits] [llvm/llvm-project] 2d5372: Analysis: Move LibcallLoweringInfo from CodeGen to...

Matt Arsenault via All-commits all-commits at lists.llvm.org
Tue Jul 21 01:29:18 PDT 2026


  Branch: refs/heads/users/arsenm/move-libcall-lowering-info-to-analysis
  Home:   https://github.com/llvm/llvm-project
  Commit: 2d5372641390e66149e07883a004ef4ef505d4dd
      https://github.com/llvm/llvm-project/commit/2d5372641390e66149e07883a004ef4ef505d4dd
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2026-07-20 (Mon, 20 Jul 2026)

  Changed paths:
    A llvm/include/llvm/Analysis/LibcallLoweringInfo.h
    M llvm/include/llvm/CodeGen/LibcallLoweringInfo.h
    M llvm/lib/Analysis/CMakeLists.txt
    A llvm/lib/Analysis/LibcallLoweringInfo.cpp
    M llvm/lib/CodeGen/AtomicExpandPass.cpp
    M llvm/lib/CodeGen/DwarfEHPrepare.cpp
    M llvm/lib/CodeGen/ExpandIRInsts.cpp
    M llvm/lib/CodeGen/LibcallLoweringInfo.cpp
    M llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp
    M llvm/lib/CodeGen/SafeStack.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
    M llvm/lib/CodeGen/StackProtector.cpp
    M llvm/lib/CodeGen/TargetLoweringBase.cpp
    M llvm/lib/Passes/PassBuilder.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64O0PreLegalizerCombiner.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64PreLegalizerCombiner.cpp
    M llvm/unittests/CodeGen/GlobalISel/GISelMITest.h

  Log Message:
  -----------
  Analysis: Move LibcallLoweringInfo from CodeGen to Analysis

Middle end passes need to be able to reason about library call
availability and potentially emit them without depending on codegen.
TargetLibraryInfo already lives in Analysis, and this is a step towards
the eventual merger. For now this is a mostly mechanical move, type erasing
the reference to TargetSubtargetInfo.

The per-subtarget customization (TargetSubtargetInfo::initLibcallLoweringInfo)
is inverted into a caller-supplied function_ref, so the Analysis types carry
no CodeGen/TargetSubtargetInfo reference. The module map is keyed on an opaque
erased pointer. CodeGen continues looking up based on the subtarget.

It is not yet in a state where it is usable from middle end passes; that will come
later. In principle we should be able to write arbitrary rules based on a function's
ABI attributes for which calls can be used.

Co-authored-by: Claude (Claude Opus 4.8) <noreply at anthropic.com>


  Commit: 30c63080a812ab141a52ee9c88fd7d04cf1fd8aa
      https://github.com/llvm/llvm-project/commit/30c63080a812ab141a52ee9c88fd7d04cf1fd8aa
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2026-07-21 (Tue, 21 Jul 2026)

  Changed paths:
    M llvm/include/llvm/Analysis/LibcallLoweringInfo.h

  Log Message:
  -----------
  Adjust comment


Compare: https://github.com/llvm/llvm-project/compare/581b505ee598...30c63080a812

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