[all-commits] [llvm/llvm-project] 8b2767: [KnownBits] Cleanup some misspelling / logic in {u...

goldsteinn via All-commits all-commits at lists.llvm.org
Tue Jun 6 13:14:25 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 8b2767f25708c8e9c1bc5682ee60bc3eb6754424
      https://github.com/llvm/llvm-project/commit/8b2767f25708c8e9c1bc5682ee60bc3eb6754424
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2023-06-06 (Tue, 06 Jun 2023)

  Changed paths:
    M llvm/lib/Support/KnownBits.cpp

  Log Message:
  -----------
  [KnownBits] Cleanup some misspelling / logic in {u,s}div

Chronically misspelled 'denominator' as 'denuminator' and a few other
cases.

On the logic side, no longer require `RHS` to be strictly positive in
`sdiv`. This in turn means we need to handle a possible zero `denom`
in the APInt division.

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


  Commit: 809b1d834dfc59575be228cfbccb95b10c2c34e2
      https://github.com/llvm/llvm-project/commit/809b1d834dfc59575be228cfbccb95b10c2c34e2
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2023-06-06 (Tue, 06 Jun 2023)

  Changed paths:
    M llvm/lib/Support/KnownBits.cpp
    M llvm/test/CodeGen/WebAssembly/pr59626.ll

  Log Message:
  -----------
  [KnownBits] Return `0` for poison {s,u}div inputs

It seems consistent to always return zero for known poison rather than
varying the value. We do the same elsewhere.

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


  Commit: 85378b7663763e6639123088aa8a82289c62ca0e
      https://github.com/llvm/llvm-project/commit/85378b7663763e6639123088aa8a82289c62ca0e
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2023-06-06 (Tue, 06 Jun 2023)

  Changed paths:
    M llvm/lib/Support/KnownBits.cpp

  Log Message:
  -----------
  [KnownBits] Factor out and improve the lowbit computation for {u,s}div

There are some new cases if the division is `exact`:
    1: If `TZ(LHS) == TZ(RHS)` then the result is always Odd
    2: If `TZ(LHS) > TZ(RHS)` then the `TZ(LHS)-TZ(RHS)` bits of the
       result are zero.
Proofs: https://alive2.llvm.org/ce/z/3rAZqF

As well, return zero in known poison cases to be consistent rather
than just working about the bits we are changing.

Reviewed By: nikic

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


  Commit: e387f49d133de0e43c390ea3b7020a7decd2eed3
      https://github.com/llvm/llvm-project/commit/e387f49d133de0e43c390ea3b7020a7decd2eed3
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2023-06-06 (Tue, 06 Jun 2023)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  Log Message:
  -----------
  [InstCombine] Remove deadcode in `(icmp SignTest(shl/shr X))`; NFC

This is dead as of: D145341

Reviewed By: nikic

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


Compare: https://github.com/llvm/llvm-project/compare/2a8df8d0b9e1...e387f49d133d


More information about the All-commits mailing list