[all-commits] [llvm/llvm-project] 0f4eb5: ValueTracking: Replace CannotBeNegativeZero

Matt Arsenault via All-commits all-commits at lists.llvm.org
Wed Jul 12 10:14:20 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 0f4eb557e87912afa412b1b0299d10eb7443410b
      https://github.com/llvm/llvm-project/commit/0f4eb557e87912afa412b1b0299d10eb7443410b
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2023-07-12 (Wed, 12 Jul 2023)

  Changed paths:
    M llvm/include/llvm/Analysis/ValueTracking.h
    M llvm/lib/Analysis/InstructionSimplify.cpp
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  Log Message:
  -----------
  ValueTracking: Replace CannotBeNegativeZero

This is now just a wrapper around computeKnownFPClass.


  Commit: 05f0de3d74e97b594da99225a7a0b44e6ea1f3b1
      https://github.com/llvm/llvm-project/commit/05f0de3d74e97b594da99225a7a0b44e6ea1f3b1
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2023-07-12 (Wed, 12 Jul 2023)

  Changed paths:
    A llvm/test/Transforms/Attributor/nofpclass-select.ll

  Log Message:
  -----------
  ValueTracking: Add base computeKnownFPClass select handling tests

Prepare to handle class clamping patterns. Working around some kind of
select special casing bug in attributor where computeKnownFPClass is
never called on select.


  Commit: 6ed48ebf2e80c3ada88b95c0122ead24c4cd4f29
      https://github.com/llvm/llvm-project/commit/6ed48ebf2e80c3ada88b95c0122ead24c4cd4f29
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2023-07-12 (Wed, 12 Jul 2023)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Transforms/Attributor/nofpclass-select.ll
    M llvm/test/Transforms/InstCombine/minmax-fp.ll

  Log Message:
  -----------
  ValueTracking: Recognize fpclass clamping select patterns

Improve computeKnownFPClass select handling to cover the case where
the condition performs a class test. This allows us to recognize
no-nans in cases like:

  %not.nan = fcmp ord float %x, 0.0
  %select = select i1 %not.nan, float %x, float 0.0

Math library code has similar edge case filtering on the inputs and
final results.

https://reviews.llvm.org/D153089


Compare: https://github.com/llvm/llvm-project/compare/d1367ca46ee4...6ed48ebf2e80


More information about the All-commits mailing list