[all-commits] [llvm/llvm-project] e92b7e: [CodeGen] Provide original IR type to CC lowering ...

Nikita Popov via All-commits all-commits at lists.llvm.org
Sun Aug 10 23:58:14 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e92b7e9641949f9d9c2ca8964c31a437272d15af
      https://github.com/llvm/llvm-project/commit/e92b7e9641949f9d9c2ca8964c31a437272d15af
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2025-08-11 (Mon, 11 Aug 2025)

  Changed paths:
    M llvm/include/llvm/CodeGen/CallingConvLower.h
    M llvm/include/llvm/CodeGen/GlobalISel/CallLowering.h
    M llvm/include/llvm/CodeGen/TargetCallingConv.h
    M llvm/lib/CodeGen/CallingConvLower.cpp
    M llvm/lib/CodeGen/GlobalISel/CallLowering.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
    M llvm/lib/CodeGen/TargetLoweringBase.cpp
    M llvm/lib/Target/AArch64/AArch64CallingConvention.cpp
    M llvm/lib/Target/AArch64/AArch64CallingConvention.h
    M llvm/lib/Target/AArch64/AArch64FastISel.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64CallLowering.cpp
    M llvm/lib/Target/ARM/ARMCallingConv.h
    M llvm/lib/Target/ARM/ARMFastISel.cpp
    M llvm/lib/Target/Lanai/LanaiISelLowering.cpp
    M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
    M llvm/lib/Target/MSP430/MSP430ISelLowering.cpp
    M llvm/lib/Target/Mips/MipsFastISel.cpp
    M llvm/lib/Target/Mips/MipsISelLowering.cpp
    M llvm/lib/Target/PowerPC/PPCCallingConv.h
    M llvm/lib/Target/PowerPC/PPCFastISel.cpp
    M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVCallingConv.cpp
    M llvm/lib/Target/RISCV/RISCVCallingConv.h
    M llvm/lib/Target/X86/GISel/X86CallLowering.cpp
    M llvm/lib/Target/X86/X86CallingConv.h
    M llvm/lib/Target/X86/X86FastISel.cpp
    M llvm/utils/TableGen/CallingConvEmitter.cpp

  Log Message:
  -----------
  [CodeGen] Provide original IR type to CC lowering (NFC) (#152709)

It is common to have ABI requirements for illegal types: For example,
two i64 argument parts that originally came from an fp128 argument may
have a different call ABI than ones that came from a i128 argument.

The current calling convention lowering does not provide access to this
information, so backends come up with various hacks to support it (like
additional pre-analysis cached in CCState, or bypassing the default
logic entirely).

This PR adds the original IR type to InputArg/OutputArg and passes it
down to CCAssignFn. It is not actually used anywhere yet, this just does
the mechanical changes to thread through the new argument.



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