[all-commits] [llvm/llvm-project] f1ac5d: [SCCP] Use ValueLatticeElement instead of LatticeV...

Florian Hahn via All-commits all-commits at lists.llvm.org
Thu Mar 12 05:03:43 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: f1ac5d2263f8419b865cc78ba1f5c8694970fb6b
      https://github.com/llvm/llvm-project/commit/f1ac5d2263f8419b865cc78ba1f5c8694970fb6b
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2020-03-12 (Thu, 12 Mar 2020)

  Changed paths:
    M llvm/lib/Transforms/Scalar/SCCP.cpp
    M llvm/test/Transforms/SCCP/ip-constant-ranges.ll
    M llvm/test/Transforms/SCCP/resolvedundefsin-tracked-fn.ll

  Log Message:
  -----------
  [SCCP] Use ValueLatticeElement instead of LatticeVal (NFCI)

This patch switches SCCP to use ValueLatticeElement for lattice values,
instead of the local LatticeVal, as first step to enable integer range support.

This patch does not make use of constant ranges for additional operations
and the only difference for now is that integer constants are represented by
single element ranges. To preserve the existing behavior, the following helpers
are used

* isConstant(LV): returns true when LV is either a constant or a constant range with a single element. This should return true in the same cases where LV.isConstant() returned true previously.
* getConstant(LV): returns a constant if LV is either a constant or a constant range with a single element. This should return a constant in the same cases as LV.getConstant() previously.
* getConstantInt(LV): same as getConstant, but additionally casted to ConstantInt.

Reviewers: davide, efriedma, mssimpso

Reviewed By: efriedma

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




More information about the All-commits mailing list