enum ValueLatticeElement::ValueLatticeElementTy
Declared at: llvm/include/llvm/Analysis/ValueLattice.h:30
Enumerators
Name | Value | Comment |
---|---|---|
unknown | 0 | 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". Transition to any other state allowed. |
undef | 1 | This Value is an UndefValue constant or produces undef. Undefined values can be merged with constants (or single element constant ranges), assuming all uses of the result will be replaced. Transition allowed to the following states: constant constantrange_including_undef overdefined |
constant | 2 | This Value has a specific constant value. The constant cannot be undef. (For constant integers, constantrange is used instead. Integer typed constantexprs can appear as constant.) Note that the constant state can be reached by merging undef & constant states. Transition allowed to the following states: overdefined |
notconstant | 3 | This Value is known to not have the specified value. (For constant integers, constantrange is used instead. As above, integer typed constantexprs can appear here.) Transition allowed to the following states: overdefined |
constantrange | 4 | The Value falls within this range. (Used only for integer typed values.) Transition allowed to the following states: constantrange (new range must be a superset of the existing range) constantrange_including_undef overdefined |
constantrange_including_undef | 5 | This Value falls within this range, but also may be undef. Merging it with other constant ranges results in constantrange_including_undef. Transition allowed to the following states: overdefined |
overdefined | 6 | We can not precisely model the dynamic values this value might take. No transitions are allowed after reaching overdefined. |