[all-commits] [llvm/llvm-project] dfb369: [ValueTracking] Directly use KnownBits shift funct...

Nikita Popov via All-commits all-commits at lists.llvm.org
Thu Jun 1 00:46:35 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: dfb369399d2a54c8dd8752c47ecbf7a8c3c11421
      https://github.com/llvm/llvm-project/commit/dfb369399d2a54c8dd8752c47ecbf7a8c3c11421
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2023-06-01 (Thu, 01 Jun 2023)

  Changed paths:
    M compiler-rt/test/ubsan/TestCases/Misc/coverage-levels.cpp
    M llvm/include/llvm/Support/KnownBits.h
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/lib/Support/KnownBits.cpp
    M llvm/test/Analysis/ScalarEvolution/extract-highbits-variablemask.ll
    M llvm/test/Analysis/ScalarEvolution/extract-lowbits-variablemask.ll
    M llvm/test/Analysis/ScalarEvolution/shift-recurrences.ll
    M llvm/test/Analysis/ValueTracking/known-power-of-two-urem.ll
    M llvm/test/Transforms/IndVarSimplify/shift-range-checks.ll
    M llvm/test/Transforms/InstCombine/zext-or-icmp.ll

  Log Message:
  -----------
  [ValueTracking] Directly use KnownBits shift functions

Make ValueTracking directly call the KnownBits shift helpers, which
provides more precise results.

Unfortunately, ValueTracking has a special case where sometimes we
determine non-zero shift amounts using isKnownNonZero(). I have my
doubts about the usefulness of that special-case (it is only tested
in a single unit test), but I've reproduced the special-case via an
extra parameter to the KnownBits methods.

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




More information about the All-commits mailing list