forked from OSchip/llvm-project
[LVI] Clarify comments describing the lattice values
There has been much recent confusion about the partition in the lattice between constant and non-constant values. Hopefully, documenting this will prevent confusion going forward. llvm-svn: 267440
This commit is contained in:
parent
6671577eb3
commit
3bb2832900
|
@ -63,19 +63,24 @@ namespace llvm {
|
||||||
namespace {
|
namespace {
|
||||||
class LVILatticeVal {
|
class LVILatticeVal {
|
||||||
enum LatticeValueTy {
|
enum LatticeValueTy {
|
||||||
/// This Value has no known value yet.
|
/// This Value has no known value yet. As a result, this implies the
|
||||||
|
/// producing instruction is dead. Caution: We use this as the starting
|
||||||
|
/// state in our local meet rules. In this usage, it's taken to mean
|
||||||
|
/// "nothing known yet".
|
||||||
undefined,
|
undefined,
|
||||||
|
|
||||||
/// This Value has a specific constant value.
|
/// This Value has a specific constant value. (For integers, constantrange
|
||||||
|
/// is used instead.)
|
||||||
constant,
|
constant,
|
||||||
|
|
||||||
/// This Value is known to not have the specified value.
|
/// This Value is known to not have the specified value. (For integers,
|
||||||
|
/// constantrange is used instead.)
|
||||||
notconstant,
|
notconstant,
|
||||||
|
|
||||||
/// The Value falls within this range.
|
/// The Value falls within this range. (Used only for integer typed values.)
|
||||||
constantrange,
|
constantrange,
|
||||||
|
|
||||||
/// This value is not known to be constant, and we know that it has a value.
|
/// We can not precisely model the dynamic values this value might take.
|
||||||
overdefined
|
overdefined
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue