[all-commits] [llvm/llvm-project] 5785cb: [llvm] Ensure that soft float targets don't emit `...

Alex Rønne Petersen via All-commits all-commits at lists.llvm.org
Sat Oct 19 06:13:36 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 5785cbb40570c3847aa994b2d2b7e03321eee7eb
      https://github.com/llvm/llvm-project/commit/5785cbb40570c3847aa994b2d2b7e03321eee7eb
  Author: Alex Rønne Petersen <alex at alexrp.com>
  Date:   2024-10-19 (Sat, 19 Oct 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/TargetLowering.h
    M llvm/lib/Target/ARM/ARMISelLowering.cpp
    M llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    A llvm/test/CodeGen/ARM/fmuladd-soft-float.ll
    A llvm/test/CodeGen/Mips/fmuladd-soft-float.ll
    A llvm/test/CodeGen/SPARC/fmuladd-soft-float.ll
    A llvm/test/CodeGen/SystemZ/fmuladd-soft-float.ll
    A llvm/test/CodeGen/X86/fmuladd-soft-float.ll

  Log Message:
  -----------
  [llvm] Ensure that soft float targets don't emit `fma()` libcalls. (#106615)

The previous behavior could be harmful in some edge cases, such as
emitting a call to `fma()` in the `fma()` implementation itself.

Do this by just being more accurate in `isFMAFasterThanFMulAndFAdd()`.
This was already done for PowerPC; this commit just extends that to Arm,
z/Arch, and x86. MIPS and SPARC already got it right, but I added tests
for them too, for good measure.

Note: I don't have commit access.



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