Lattice
Lattice for constant analysis.
Bottom dataclass
Bottom()
Bases: Result
flowchart TD
kirin.analysis.const.lattice.Bottom[Bottom]
kirin.analysis.const.lattice.Result[Result]
kirin.ir.attrs.abc.Attribute[Attribute]
kirin.print.printable.Printable[Printable]
kirin.lattice.mixin.IsSubsetEqMixin[IsSubsetEqMixin]
kirin.lattice.mixin.SimpleJoinMixin[SimpleJoinMixin]
kirin.lattice.mixin.SimpleMeetMixin[SimpleMeetMixin]
kirin.lattice.abc.BoundedLattice[BoundedLattice]
kirin.lattice.abc.Lattice[Lattice]
kirin.analysis.const._visitor._ElemVisitor[_ElemVisitor]
kirin.analysis.const.lattice.Result --> kirin.analysis.const.lattice.Bottom
kirin.ir.attrs.abc.Attribute --> kirin.analysis.const.lattice.Result
kirin.print.printable.Printable --> kirin.ir.attrs.abc.Attribute
kirin.lattice.mixin.IsSubsetEqMixin --> kirin.analysis.const.lattice.Result
kirin.lattice.abc.BoundedLattice --> kirin.lattice.mixin.IsSubsetEqMixin
kirin.lattice.abc.Lattice --> kirin.lattice.abc.BoundedLattice
kirin.lattice.mixin.SimpleJoinMixin --> kirin.analysis.const.lattice.Result
kirin.lattice.abc.BoundedLattice --> kirin.lattice.mixin.SimpleJoinMixin
kirin.lattice.abc.Lattice --> kirin.lattice.abc.BoundedLattice
kirin.lattice.mixin.SimpleMeetMixin --> kirin.analysis.const.lattice.Result
kirin.lattice.abc.BoundedLattice --> kirin.lattice.mixin.SimpleMeetMixin
kirin.lattice.abc.Lattice --> kirin.lattice.abc.BoundedLattice
kirin.lattice.abc.BoundedLattice --> kirin.analysis.const.lattice.Result
kirin.lattice.abc.Lattice --> kirin.lattice.abc.BoundedLattice
kirin.analysis.const._visitor._ElemVisitor --> kirin.analysis.const.lattice.Result
click kirin.analysis.const.lattice.Bottom href "" "kirin.analysis.const.lattice.Bottom"
click kirin.analysis.const.lattice.Result href "" "kirin.analysis.const.lattice.Result"
click kirin.ir.attrs.abc.Attribute href "" "kirin.ir.attrs.abc.Attribute"
click kirin.print.printable.Printable href "" "kirin.print.printable.Printable"
click kirin.lattice.mixin.IsSubsetEqMixin href "" "kirin.lattice.mixin.IsSubsetEqMixin"
click kirin.lattice.mixin.SimpleJoinMixin href "" "kirin.lattice.mixin.SimpleJoinMixin"
click kirin.lattice.mixin.SimpleMeetMixin href "" "kirin.lattice.mixin.SimpleMeetMixin"
click kirin.lattice.abc.BoundedLattice href "" "kirin.lattice.abc.BoundedLattice"
click kirin.lattice.abc.Lattice href "" "kirin.lattice.abc.Lattice"
click kirin.analysis.const._visitor._ElemVisitor href "" "kirin.analysis.const._visitor._ElemVisitor"
Bottom element of the lattice.
is_subseteq
is_subseteq(other: Result) -> bool
Subseteq operation.
Source code in src/kirin/analysis/const/lattice.py
68 69 | |
PartialConst dataclass
PartialConst()
Bases: Result
flowchart TD
kirin.analysis.const.lattice.PartialConst[PartialConst]
kirin.analysis.const.lattice.Result[Result]
kirin.ir.attrs.abc.Attribute[Attribute]
kirin.print.printable.Printable[Printable]
kirin.lattice.mixin.IsSubsetEqMixin[IsSubsetEqMixin]
kirin.lattice.mixin.SimpleJoinMixin[SimpleJoinMixin]
kirin.lattice.mixin.SimpleMeetMixin[SimpleMeetMixin]
kirin.lattice.abc.BoundedLattice[BoundedLattice]
kirin.lattice.abc.Lattice[Lattice]
kirin.analysis.const._visitor._ElemVisitor[_ElemVisitor]
kirin.analysis.const.lattice.Result --> kirin.analysis.const.lattice.PartialConst
kirin.ir.attrs.abc.Attribute --> kirin.analysis.const.lattice.Result
kirin.print.printable.Printable --> kirin.ir.attrs.abc.Attribute
kirin.lattice.mixin.IsSubsetEqMixin --> kirin.analysis.const.lattice.Result
kirin.lattice.abc.BoundedLattice --> kirin.lattice.mixin.IsSubsetEqMixin
kirin.lattice.abc.Lattice --> kirin.lattice.abc.BoundedLattice
kirin.lattice.mixin.SimpleJoinMixin --> kirin.analysis.const.lattice.Result
kirin.lattice.abc.BoundedLattice --> kirin.lattice.mixin.SimpleJoinMixin
kirin.lattice.abc.Lattice --> kirin.lattice.abc.BoundedLattice
kirin.lattice.mixin.SimpleMeetMixin --> kirin.analysis.const.lattice.Result
kirin.lattice.abc.BoundedLattice --> kirin.lattice.mixin.SimpleMeetMixin
kirin.lattice.abc.Lattice --> kirin.lattice.abc.BoundedLattice
kirin.lattice.abc.BoundedLattice --> kirin.analysis.const.lattice.Result
kirin.lattice.abc.Lattice --> kirin.lattice.abc.BoundedLattice
kirin.analysis.const._visitor._ElemVisitor --> kirin.analysis.const.lattice.Result
click kirin.analysis.const.lattice.PartialConst href "" "kirin.analysis.const.lattice.PartialConst"
click kirin.analysis.const.lattice.Result href "" "kirin.analysis.const.lattice.Result"
click kirin.ir.attrs.abc.Attribute href "" "kirin.ir.attrs.abc.Attribute"
click kirin.print.printable.Printable href "" "kirin.print.printable.Printable"
click kirin.lattice.mixin.IsSubsetEqMixin href "" "kirin.lattice.mixin.IsSubsetEqMixin"
click kirin.lattice.mixin.SimpleJoinMixin href "" "kirin.lattice.mixin.SimpleJoinMixin"
click kirin.lattice.mixin.SimpleMeetMixin href "" "kirin.lattice.mixin.SimpleMeetMixin"
click kirin.lattice.abc.BoundedLattice href "" "kirin.lattice.abc.BoundedLattice"
click kirin.lattice.abc.Lattice href "" "kirin.lattice.abc.Lattice"
click kirin.analysis.const._visitor._ElemVisitor href "" "kirin.analysis.const._visitor._ElemVisitor"
Base class for partial constant values.
PartialLambda dataclass
PartialLambda(
code: Statement,
captured: tuple[Result, ...],
argnames: list[str] | None = None,
)
Bases: PartialConst
flowchart TD
kirin.analysis.const.lattice.PartialLambda[PartialLambda]
kirin.analysis.const.lattice.PartialConst[PartialConst]
kirin.analysis.const.lattice.Result[Result]
kirin.ir.attrs.abc.Attribute[Attribute]
kirin.print.printable.Printable[Printable]
kirin.lattice.mixin.IsSubsetEqMixin[IsSubsetEqMixin]
kirin.lattice.mixin.SimpleJoinMixin[SimpleJoinMixin]
kirin.lattice.mixin.SimpleMeetMixin[SimpleMeetMixin]
kirin.lattice.abc.BoundedLattice[BoundedLattice]
kirin.lattice.abc.Lattice[Lattice]
kirin.analysis.const._visitor._ElemVisitor[_ElemVisitor]
kirin.analysis.const.lattice.PartialConst --> kirin.analysis.const.lattice.PartialLambda
kirin.analysis.const.lattice.Result --> kirin.analysis.const.lattice.PartialConst
kirin.ir.attrs.abc.Attribute --> kirin.analysis.const.lattice.Result
kirin.print.printable.Printable --> kirin.ir.attrs.abc.Attribute
kirin.lattice.mixin.IsSubsetEqMixin --> kirin.analysis.const.lattice.Result
kirin.lattice.abc.BoundedLattice --> kirin.lattice.mixin.IsSubsetEqMixin
kirin.lattice.abc.Lattice --> kirin.lattice.abc.BoundedLattice
kirin.lattice.mixin.SimpleJoinMixin --> kirin.analysis.const.lattice.Result
kirin.lattice.abc.BoundedLattice --> kirin.lattice.mixin.SimpleJoinMixin
kirin.lattice.abc.Lattice --> kirin.lattice.abc.BoundedLattice
kirin.lattice.mixin.SimpleMeetMixin --> kirin.analysis.const.lattice.Result
kirin.lattice.abc.BoundedLattice --> kirin.lattice.mixin.SimpleMeetMixin
kirin.lattice.abc.Lattice --> kirin.lattice.abc.BoundedLattice
kirin.lattice.abc.BoundedLattice --> kirin.analysis.const.lattice.Result
kirin.lattice.abc.Lattice --> kirin.lattice.abc.BoundedLattice
kirin.analysis.const._visitor._ElemVisitor --> kirin.analysis.const.lattice.Result
click kirin.analysis.const.lattice.PartialLambda href "" "kirin.analysis.const.lattice.PartialLambda"
click kirin.analysis.const.lattice.PartialConst href "" "kirin.analysis.const.lattice.PartialConst"
click kirin.analysis.const.lattice.Result href "" "kirin.analysis.const.lattice.Result"
click kirin.ir.attrs.abc.Attribute href "" "kirin.ir.attrs.abc.Attribute"
click kirin.print.printable.Printable href "" "kirin.print.printable.Printable"
click kirin.lattice.mixin.IsSubsetEqMixin href "" "kirin.lattice.mixin.IsSubsetEqMixin"
click kirin.lattice.mixin.SimpleJoinMixin href "" "kirin.lattice.mixin.SimpleJoinMixin"
click kirin.lattice.mixin.SimpleMeetMixin href "" "kirin.lattice.mixin.SimpleMeetMixin"
click kirin.lattice.abc.BoundedLattice href "" "kirin.lattice.abc.BoundedLattice"
click kirin.lattice.abc.Lattice href "" "kirin.lattice.abc.Lattice"
click kirin.analysis.const._visitor._ElemVisitor href "" "kirin.analysis.const._visitor._ElemVisitor"
Partial lambda constant value.
This represents a closure with captured variables.
Source code in src/kirin/analysis/const/lattice.py
206 207 208 209 210 211 212 213 214 215 216 217 218 | |
join
join(other: Result) -> Result
Join operation.
Source code in src/kirin/analysis/const/lattice.py
239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 | |
meet
meet(other: Result) -> Result
Meet operation.
Source code in src/kirin/analysis/const/lattice.py
258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 | |
PartialTuple dataclass
PartialTuple(data: tuple[Result, ...])
Bases: PartialConst
flowchart TD
kirin.analysis.const.lattice.PartialTuple[PartialTuple]
kirin.analysis.const.lattice.PartialConst[PartialConst]
kirin.analysis.const.lattice.Result[Result]
kirin.ir.attrs.abc.Attribute[Attribute]
kirin.print.printable.Printable[Printable]
kirin.lattice.mixin.IsSubsetEqMixin[IsSubsetEqMixin]
kirin.lattice.mixin.SimpleJoinMixin[SimpleJoinMixin]
kirin.lattice.mixin.SimpleMeetMixin[SimpleMeetMixin]
kirin.lattice.abc.BoundedLattice[BoundedLattice]
kirin.lattice.abc.Lattice[Lattice]
kirin.analysis.const._visitor._ElemVisitor[_ElemVisitor]
kirin.analysis.const.lattice.PartialConst --> kirin.analysis.const.lattice.PartialTuple
kirin.analysis.const.lattice.Result --> kirin.analysis.const.lattice.PartialConst
kirin.ir.attrs.abc.Attribute --> kirin.analysis.const.lattice.Result
kirin.print.printable.Printable --> kirin.ir.attrs.abc.Attribute
kirin.lattice.mixin.IsSubsetEqMixin --> kirin.analysis.const.lattice.Result
kirin.lattice.abc.BoundedLattice --> kirin.lattice.mixin.IsSubsetEqMixin
kirin.lattice.abc.Lattice --> kirin.lattice.abc.BoundedLattice
kirin.lattice.mixin.SimpleJoinMixin --> kirin.analysis.const.lattice.Result
kirin.lattice.abc.BoundedLattice --> kirin.lattice.mixin.SimpleJoinMixin
kirin.lattice.abc.Lattice --> kirin.lattice.abc.BoundedLattice
kirin.lattice.mixin.SimpleMeetMixin --> kirin.analysis.const.lattice.Result
kirin.lattice.abc.BoundedLattice --> kirin.lattice.mixin.SimpleMeetMixin
kirin.lattice.abc.Lattice --> kirin.lattice.abc.BoundedLattice
kirin.lattice.abc.BoundedLattice --> kirin.analysis.const.lattice.Result
kirin.lattice.abc.Lattice --> kirin.lattice.abc.BoundedLattice
kirin.analysis.const._visitor._ElemVisitor --> kirin.analysis.const.lattice.Result
click kirin.analysis.const.lattice.PartialTuple href "" "kirin.analysis.const.lattice.PartialTuple"
click kirin.analysis.const.lattice.PartialConst href "" "kirin.analysis.const.lattice.PartialConst"
click kirin.analysis.const.lattice.Result href "" "kirin.analysis.const.lattice.Result"
click kirin.ir.attrs.abc.Attribute href "" "kirin.ir.attrs.abc.Attribute"
click kirin.print.printable.Printable href "" "kirin.print.printable.Printable"
click kirin.lattice.mixin.IsSubsetEqMixin href "" "kirin.lattice.mixin.IsSubsetEqMixin"
click kirin.lattice.mixin.SimpleJoinMixin href "" "kirin.lattice.mixin.SimpleJoinMixin"
click kirin.lattice.mixin.SimpleMeetMixin href "" "kirin.lattice.mixin.SimpleMeetMixin"
click kirin.lattice.abc.BoundedLattice href "" "kirin.lattice.abc.BoundedLattice"
click kirin.lattice.abc.Lattice href "" "kirin.lattice.abc.Lattice"
click kirin.analysis.const._visitor._ElemVisitor href "" "kirin.analysis.const._visitor._ElemVisitor"
Partial tuple constant value.
join
join(other: Result) -> Result
Join operation.
Source code in src/kirin/analysis/const/lattice.py
138 139 140 141 142 143 144 145 146 147 148 149 | |
meet
meet(other: Result) -> Result
Meet operation.
Source code in src/kirin/analysis/const/lattice.py
151 152 153 154 155 156 157 158 159 160 161 162 | |
PartialTupleMeta
Bases: LatticeAttributeMeta
flowchart TD
kirin.analysis.const.lattice.PartialTupleMeta[PartialTupleMeta]
kirin.ir.attrs.abc.LatticeAttributeMeta[LatticeAttributeMeta]
kirin.lattice.abc.LatticeMeta[LatticeMeta]
kirin.ir.attrs.abc.AttributeMeta[AttributeMeta]
kirin.ir.attrs.abc.LatticeAttributeMeta --> kirin.analysis.const.lattice.PartialTupleMeta
kirin.lattice.abc.LatticeMeta --> kirin.ir.attrs.abc.LatticeAttributeMeta
kirin.ir.attrs.abc.AttributeMeta --> kirin.ir.attrs.abc.LatticeAttributeMeta
click kirin.analysis.const.lattice.PartialTupleMeta href "" "kirin.analysis.const.lattice.PartialTupleMeta"
click kirin.ir.attrs.abc.LatticeAttributeMeta href "" "kirin.ir.attrs.abc.LatticeAttributeMeta"
click kirin.lattice.abc.LatticeMeta href "" "kirin.lattice.abc.LatticeMeta"
click kirin.ir.attrs.abc.AttributeMeta href "" "kirin.ir.attrs.abc.AttributeMeta"
Metaclass for PartialTuple.
This metaclass canonicalizes PartialTuple instances with all Value elements into a single Value instance.
Result dataclass
Result()
Bases: Attribute, IsSubsetEqMixin['Result'], SimpleJoinMixin['Result'], SimpleMeetMixin['Result'], BoundedLattice['Result'], _ElemVisitor
flowchart TD
kirin.analysis.const.lattice.Result[Result]
kirin.ir.attrs.abc.Attribute[Attribute]
kirin.print.printable.Printable[Printable]
kirin.lattice.mixin.IsSubsetEqMixin[IsSubsetEqMixin]
kirin.lattice.mixin.SimpleJoinMixin[SimpleJoinMixin]
kirin.lattice.mixin.SimpleMeetMixin[SimpleMeetMixin]
kirin.lattice.abc.BoundedLattice[BoundedLattice]
kirin.lattice.abc.Lattice[Lattice]
kirin.analysis.const._visitor._ElemVisitor[_ElemVisitor]
kirin.ir.attrs.abc.Attribute --> kirin.analysis.const.lattice.Result
kirin.print.printable.Printable --> kirin.ir.attrs.abc.Attribute
kirin.lattice.mixin.IsSubsetEqMixin --> kirin.analysis.const.lattice.Result
kirin.lattice.abc.BoundedLattice --> kirin.lattice.mixin.IsSubsetEqMixin
kirin.lattice.abc.Lattice --> kirin.lattice.abc.BoundedLattice
kirin.lattice.mixin.SimpleJoinMixin --> kirin.analysis.const.lattice.Result
kirin.lattice.abc.BoundedLattice --> kirin.lattice.mixin.SimpleJoinMixin
kirin.lattice.abc.Lattice --> kirin.lattice.abc.BoundedLattice
kirin.lattice.mixin.SimpleMeetMixin --> kirin.analysis.const.lattice.Result
kirin.lattice.abc.BoundedLattice --> kirin.lattice.mixin.SimpleMeetMixin
kirin.lattice.abc.Lattice --> kirin.lattice.abc.BoundedLattice
kirin.lattice.abc.BoundedLattice --> kirin.analysis.const.lattice.Result
kirin.lattice.abc.Lattice --> kirin.lattice.abc.BoundedLattice
kirin.analysis.const._visitor._ElemVisitor --> kirin.analysis.const.lattice.Result
click kirin.analysis.const.lattice.Result href "" "kirin.analysis.const.lattice.Result"
click kirin.ir.attrs.abc.Attribute href "" "kirin.ir.attrs.abc.Attribute"
click kirin.print.printable.Printable href "" "kirin.print.printable.Printable"
click kirin.lattice.mixin.IsSubsetEqMixin href "" "kirin.lattice.mixin.IsSubsetEqMixin"
click kirin.lattice.mixin.SimpleJoinMixin href "" "kirin.lattice.mixin.SimpleJoinMixin"
click kirin.lattice.mixin.SimpleMeetMixin href "" "kirin.lattice.mixin.SimpleMeetMixin"
click kirin.lattice.abc.BoundedLattice href "" "kirin.lattice.abc.BoundedLattice"
click kirin.lattice.abc.Lattice href "" "kirin.lattice.abc.Lattice"
click kirin.analysis.const._visitor._ElemVisitor href "" "kirin.analysis.const._visitor._ElemVisitor"
Base class for constant analysis results.
Unknown dataclass
Unknown()
Bases: Result
flowchart TD
kirin.analysis.const.lattice.Unknown[Unknown]
kirin.analysis.const.lattice.Result[Result]
kirin.ir.attrs.abc.Attribute[Attribute]
kirin.print.printable.Printable[Printable]
kirin.lattice.mixin.IsSubsetEqMixin[IsSubsetEqMixin]
kirin.lattice.mixin.SimpleJoinMixin[SimpleJoinMixin]
kirin.lattice.mixin.SimpleMeetMixin[SimpleMeetMixin]
kirin.lattice.abc.BoundedLattice[BoundedLattice]
kirin.lattice.abc.Lattice[Lattice]
kirin.analysis.const._visitor._ElemVisitor[_ElemVisitor]
kirin.analysis.const.lattice.Result --> kirin.analysis.const.lattice.Unknown
kirin.ir.attrs.abc.Attribute --> kirin.analysis.const.lattice.Result
kirin.print.printable.Printable --> kirin.ir.attrs.abc.Attribute
kirin.lattice.mixin.IsSubsetEqMixin --> kirin.analysis.const.lattice.Result
kirin.lattice.abc.BoundedLattice --> kirin.lattice.mixin.IsSubsetEqMixin
kirin.lattice.abc.Lattice --> kirin.lattice.abc.BoundedLattice
kirin.lattice.mixin.SimpleJoinMixin --> kirin.analysis.const.lattice.Result
kirin.lattice.abc.BoundedLattice --> kirin.lattice.mixin.SimpleJoinMixin
kirin.lattice.abc.Lattice --> kirin.lattice.abc.BoundedLattice
kirin.lattice.mixin.SimpleMeetMixin --> kirin.analysis.const.lattice.Result
kirin.lattice.abc.BoundedLattice --> kirin.lattice.mixin.SimpleMeetMixin
kirin.lattice.abc.Lattice --> kirin.lattice.abc.BoundedLattice
kirin.lattice.abc.BoundedLattice --> kirin.analysis.const.lattice.Result
kirin.lattice.abc.Lattice --> kirin.lattice.abc.BoundedLattice
kirin.analysis.const._visitor._ElemVisitor --> kirin.analysis.const.lattice.Result
click kirin.analysis.const.lattice.Unknown href "" "kirin.analysis.const.lattice.Unknown"
click kirin.analysis.const.lattice.Result href "" "kirin.analysis.const.lattice.Result"
click kirin.ir.attrs.abc.Attribute href "" "kirin.ir.attrs.abc.Attribute"
click kirin.print.printable.Printable href "" "kirin.print.printable.Printable"
click kirin.lattice.mixin.IsSubsetEqMixin href "" "kirin.lattice.mixin.IsSubsetEqMixin"
click kirin.lattice.mixin.SimpleJoinMixin href "" "kirin.lattice.mixin.SimpleJoinMixin"
click kirin.lattice.mixin.SimpleMeetMixin href "" "kirin.lattice.mixin.SimpleMeetMixin"
click kirin.lattice.abc.BoundedLattice href "" "kirin.lattice.abc.BoundedLattice"
click kirin.lattice.abc.Lattice href "" "kirin.lattice.abc.Lattice"
click kirin.analysis.const._visitor._ElemVisitor href "" "kirin.analysis.const._visitor._ElemVisitor"
Unknown constant value. This is the top element of the lattice.
is_subseteq
is_subseteq(other: Result) -> bool
Subseteq operation.
Source code in src/kirin/analysis/const/lattice.py
48 49 | |
Value dataclass
Value(data: Any)
Bases: Result
flowchart TD
kirin.analysis.const.lattice.Value[Value]
kirin.analysis.const.lattice.Result[Result]
kirin.ir.attrs.abc.Attribute[Attribute]
kirin.print.printable.Printable[Printable]
kirin.lattice.mixin.IsSubsetEqMixin[IsSubsetEqMixin]
kirin.lattice.mixin.SimpleJoinMixin[SimpleJoinMixin]
kirin.lattice.mixin.SimpleMeetMixin[SimpleMeetMixin]
kirin.lattice.abc.BoundedLattice[BoundedLattice]
kirin.lattice.abc.Lattice[Lattice]
kirin.analysis.const._visitor._ElemVisitor[_ElemVisitor]
kirin.analysis.const.lattice.Result --> kirin.analysis.const.lattice.Value
kirin.ir.attrs.abc.Attribute --> kirin.analysis.const.lattice.Result
kirin.print.printable.Printable --> kirin.ir.attrs.abc.Attribute
kirin.lattice.mixin.IsSubsetEqMixin --> kirin.analysis.const.lattice.Result
kirin.lattice.abc.BoundedLattice --> kirin.lattice.mixin.IsSubsetEqMixin
kirin.lattice.abc.Lattice --> kirin.lattice.abc.BoundedLattice
kirin.lattice.mixin.SimpleJoinMixin --> kirin.analysis.const.lattice.Result
kirin.lattice.abc.BoundedLattice --> kirin.lattice.mixin.SimpleJoinMixin
kirin.lattice.abc.Lattice --> kirin.lattice.abc.BoundedLattice
kirin.lattice.mixin.SimpleMeetMixin --> kirin.analysis.const.lattice.Result
kirin.lattice.abc.BoundedLattice --> kirin.lattice.mixin.SimpleMeetMixin
kirin.lattice.abc.Lattice --> kirin.lattice.abc.BoundedLattice
kirin.lattice.abc.BoundedLattice --> kirin.analysis.const.lattice.Result
kirin.lattice.abc.Lattice --> kirin.lattice.abc.BoundedLattice
kirin.analysis.const._visitor._ElemVisitor --> kirin.analysis.const.lattice.Result
click kirin.analysis.const.lattice.Value href "" "kirin.analysis.const.lattice.Value"
click kirin.analysis.const.lattice.Result href "" "kirin.analysis.const.lattice.Result"
click kirin.ir.attrs.abc.Attribute href "" "kirin.ir.attrs.abc.Attribute"
click kirin.print.printable.Printable href "" "kirin.print.printable.Printable"
click kirin.lattice.mixin.IsSubsetEqMixin href "" "kirin.lattice.mixin.IsSubsetEqMixin"
click kirin.lattice.mixin.SimpleJoinMixin href "" "kirin.lattice.mixin.SimpleJoinMixin"
click kirin.lattice.mixin.SimpleMeetMixin href "" "kirin.lattice.mixin.SimpleMeetMixin"
click kirin.lattice.abc.BoundedLattice href "" "kirin.lattice.abc.BoundedLattice"
click kirin.lattice.abc.Lattice href "" "kirin.lattice.abc.Lattice"
click kirin.analysis.const._visitor._ElemVisitor href "" "kirin.analysis.const._visitor._ElemVisitor"
Constant value. Wraps any hashable Python value.