[all-commits] [llvm/llvm-project] 64ad6e: [IR] Remove uses of the oddly named ConstantFP::ge...

Craig Topper via All-commits all-commits at lists.llvm.org
Tue Apr 4 09:01:46 PDT 2023

  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 64ad6ead1f5839dc6920295d00ec8b16ea118f4a
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2023-04-04 (Tue, 04 Apr 2023)

  Changed paths:
    M llvm/lib/IR/Constants.cpp
    M llvm/lib/IR/Instructions.cpp

  Log Message:
  [IR] Remove uses of the oddly named ConstantFP::getZeroValueForNegation in integer code.

Confusingly ConstantFP's getZeroValueForNegation intentionally
handles non-FP constants. It calls getNullValue in Constant.

Nearly all uses in tree are for integers rather than FP. Maybe due
to replacing FSub -0.0, X idiom with an FNeg instructions a few
years ago.

This patch replaces all the integer uses in tree with ConstantInt::get(0, Ty).

The one remaining use is in clang with a FIXME that it should use fneg.
I'll fix that next and then delete ConstantFP::getZeroValueForNegation.

Reviewed By: nikic

Differential Revision: https://reviews.llvm.org/D147492

  Commit: 0109f8d1e3bf64e4b23db6e2f284185207e46541
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2023-04-04 (Tue, 04 Apr 2023)

  Changed paths:
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/test/CodeGen/aarch64-v8.2a-fp16-intrinsics-constrained.c
    M clang/test/CodeGen/aarch64-v8.2a-fp16-intrinsics.c

  Log Message:
  [AArch64] Use fneg instead of fsub -0.0, X Cin IR expansion of __builtin_neon_vfmsh_f16.

Addresses the FIXME and removes the only in tree use of
llvm::ConstantFP::getZeroValueForNegation for an FP type.

Reviewed By: dmgreen, SjoerdMeijer

Differential Revision: https://reviews.llvm.org/D147497

Compare: https://github.com/llvm/llvm-project/compare/8dad7f495302...0109f8d1e3bf

More information about the All-commits mailing list