[all-commits] [llvm/llvm-project] 238c3d: [CodeGen][Mips] Remove fp128 libcall list (#153798)

Nikita Popov via All-commits all-commits at lists.llvm.org
Mon Aug 18 00:23:03 PDT 2025


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

  Changed paths:
    M llvm/include/llvm/CodeGen/TargetLowering.h
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
    M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
    M llvm/lib/Target/Mips/MipsCCState.cpp
    M llvm/lib/Target/Mips/MipsCCState.h
    M llvm/lib/Target/Mips/MipsCallLowering.cpp
    M llvm/lib/Target/Mips/MipsFastISel.cpp
    M llvm/lib/Target/Mips/MipsISelLowering.cpp
    M llvm/test/CodeGen/Mips/fmuladd-soft-float.ll

  Log Message:
  -----------
  [CodeGen][Mips] Remove fp128 libcall list (#153798)

Mips requires fp128 args/returns to be passed differently than i128. It
handles this by inspecting the pre-legalization type. However, for soft
float libcalls, the original type is currently not provided (it will
look like a i128 call). To work around that, MIPS maintains a list of
libcalls working on fp128.

This patch removes that list by providing the original, pre-softening
type to calling convention lowering. This is done by carrying additional
information in CallLoweringInfo, as we unfortunately do need both types
(we want the un-softened type for OrigTy, but we need the softened type
for the actual register assignment etc.)

This is in preparation for completely removing all the custom
pre-analysis code in the Mips backend and replacing it with use of
OrigTy.



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