[all-commits] [llvm/llvm-project] f94bbe: [LVI] Refactor getValueFromICmpCondition (NFC)

Nikita Popov via All-commits all-commits at lists.llvm.org
Sun Sep 20 12:22:18 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: f94bbe19b6f6086ff94b1eb4ef0bc5802752bfe1
      https://github.com/llvm/llvm-project/commit/f94bbe19b6f6086ff94b1eb4ef0bc5802752bfe1
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2020-09-20 (Sun, 20 Sep 2020)

  Changed paths:
    M llvm/lib/Analysis/LazyValueInfo.cpp

  Log Message:
  -----------
  [LVI] Refactor getValueFromICmpCondition (NFC)

Rewrite this in a way where the core logic is in a separate
function, that is invoked with swapped operands. This makes it
easier to add handling for additional icmp patterns.


  Commit: 91af6a78d00f731826ff2eb81c9a9281b1d21388
      https://github.com/llvm/llvm-project/commit/91af6a78d00f731826ff2eb81c9a9281b1d21388
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2020-09-20 (Sun, 20 Sep 2020)

  Changed paths:
    M llvm/test/Transforms/CorrelatedValuePropagation/icmp.ll

  Log Message:
  -----------
  [CVP] Add tests for mask comparisons (NFC)


  Commit: 445db89b537e5397a2d4b08e79751edb845b2c2a
      https://github.com/llvm/llvm-project/commit/445db89b537e5397a2d4b08e79751edb845b2c2a
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2020-09-20 (Sun, 20 Sep 2020)

  Changed paths:
    M llvm/lib/Analysis/LazyValueInfo.cpp
    M llvm/test/Transforms/CorrelatedValuePropagation/icmp.ll

  Log Message:
  -----------
  [LVI] Get value range from mask comparison

InstCombine likes to canonicalize comparisons of the form
X == C || X == C+1 into (X & -2) == C'. Make sure LVI can still
recover the value range from this. Can of course also be useful
for proper mask comparisons.

For the sake of clarity, the implementation goes through KnownBits
to compute the range.


Compare: https://github.com/llvm/llvm-project/compare/0bfeede669f0...445db89b537e


More information about the All-commits mailing list