|
LLZK 0.1.0
Veridise's ZK Language IR
|
A value at a given point of the SourceRefLattice. More...
#include <SourceRefLattice.h>
Public Member Functions | |
| SourceRefLatticeValue (ScalarTy s) | |
| SourceRefLatticeValue (SourceRef r) | |
| SourceRefLatticeValue () | |
| virtual | ~SourceRefLatticeValue ()=default |
| SourceRefLatticeValue (mlir::ArrayRef< int64_t > shape) | |
| const SourceRef & | getSingleValue () const |
| mlir::ChangeResult | insert (const SourceRef &rhs) |
| Directly insert the ref into this value. | |
| std::pair< SourceRefLatticeValue, mlir::ChangeResult > | translate (const TranslationMap &translation) const |
| For the refs contained in this value, translate them given the translation map and return the transformed value. | |
| std::pair< SourceRefLatticeValue, mlir::ChangeResult > | referenceField (SymbolLookupResult< component::FieldDefOp > fieldRef) const |
| Add the given fieldRef to the SourceRefs contained within this value. | |
| std::pair< SourceRefLatticeValue, mlir::ChangeResult > | extract (const std::vector< SourceRefIndex > &indices) const |
| Perform an array.extract or array.read operation, depending on how many indices are provided. | |
| Public Member Functions inherited from llzk::dataflow::AbstractLatticeValue< SourceRefLatticeValue, SourceRefSet > | |
| AbstractLatticeValue (ScalarTy s) | |
| AbstractLatticeValue () | |
| AbstractLatticeValue (const mlir::ArrayRef< int64_t > shape) | |
| AbstractLatticeValue (const AbstractLatticeValue &rhs) | |
| AbstractLatticeValue & | operator= (const AbstractLatticeValue &rhs) |
| bool | isScalar () const |
| bool | isSingleValue () const |
| bool | isArray () const |
| bool | isDynamicArray () const |
| const ScalarTy & | getScalarValue () const |
| ScalarTy & | getScalarValue () |
| const ArrayTy & | getArrayValue () const |
| ArrayTy & | getArrayValue () |
| const SourceRefLatticeValue & | getElemFlatIdx (unsigned i) const |
| Directly index into the flattened array using a single index. | |
| SourceRefLatticeValue & | getElemFlatIdx (unsigned i) |
| size_t | getArraySize () const |
| size_t | getNumArrayDims () const |
| void | print (mlir::raw_ostream &os) const |
| ScalarTy | foldToScalar () const |
| If this is an array value, combine all elements into a single scalar value and return it. | |
| mlir::ChangeResult | setValue (const AbstractLatticeValue &rhs) |
| Sets this value to be equal to rhs. | |
| mlir::ChangeResult | update (const SourceRefLatticeValue &rhs) |
| Union this value with that of rhs. | |
| bool | operator== (const AbstractLatticeValue &rhs) const |
Protected Member Functions | |
| mlir::ChangeResult | translateScalar (const TranslationMap &translation) |
| Translate this value using the translation map, assuming this value is a scalar. | |
| virtual std::pair< SourceRefLatticeValue, mlir::ChangeResult > | elementwiseTransform (llvm::function_ref< SourceRef(const SourceRef &)> transform) const |
| Perform a recursive transformation over all elements of this value and return a new value with the modifications. | |
| Protected Member Functions inherited from llzk::dataflow::AbstractLatticeValue< SourceRefLatticeValue, SourceRefSet > | |
| std::variant< ScalarTy, ArrayTy > & | getValue () |
| const std::vector< int64_t > & | getArrayShape () const |
| int64_t | getArrayDim (unsigned i) const |
| void | copyArrayShape (const AbstractLatticeValue &rhs) |
| mlir::ChangeResult | updateScalar (const ScalarTy &rhs) |
| Union this value with the given scalar. | |
| mlir::ChangeResult | updateArray (const ArrayTy &rhs) |
| Union this value with the given array. | |
| mlir::ChangeResult | foldAndUpdate (const SourceRefLatticeValue &rhs) |
| Folds the current value into a scalar and folds rhs to a scalar and updates the current value to the union of the two scalars. | |
A value at a given point of the SourceRefLattice.
Definition at line 25 of file SourceRefLattice.h.
|
inlineexplicit |
Definition at line 40 of file SourceRefLattice.h.
|
inlineexplicit |
Definition at line 41 of file SourceRefLattice.h.
|
inline |
Definition at line 42 of file SourceRefLattice.h.
|
virtualdefault |
|
inlineexplicit |
Definition at line 46 of file SourceRefLattice.h.
|
protectedvirtual |
Perform a recursive transformation over all elements of this value and return a new value with the modifications.
Definition at line 163 of file SourceRefLattice.cpp.
| std::pair< SourceRefLatticeValue, mlir::ChangeResult > llzk::SourceRefLatticeValue::extract | ( | const std::vector< SourceRefIndex > & | indices | ) | const |
Perform an array.extract or array.read operation, depending on how many indices are provided.
Definition at line 71 of file SourceRefLattice.cpp.
|
inline |
Definition at line 48 of file SourceRefLattice.h.
| mlir::ChangeResult llzk::SourceRefLatticeValue::insert | ( | const SourceRef & | rhs | ) |
Directly insert the ref into this value.
If this is a scalar value, insert the ref into the value's set. If this is an array value, the array is folded into a single scalar, then the ref is inserted.
Definition at line 38 of file SourceRefLattice.cpp.
| std::pair< SourceRefLatticeValue, mlir::ChangeResult > llzk::SourceRefLatticeValue::referenceField | ( | SymbolLookupResult< component::FieldDefOp > | fieldRef | ) | const |
Add the given fieldRef to the SourceRefs contained within this value.
For example, if fieldRef is a field reference @foo and this value represents self, the new value will represent self[@foo].
| fieldRef | The field reference into the current value. |
Definition at line 64 of file SourceRefLattice.cpp.
| std::pair< SourceRefLatticeValue, mlir::ChangeResult > llzk::SourceRefLatticeValue::translate | ( | const TranslationMap & | translation | ) | const |
For the refs contained in this value, translate them given the translation map and return the transformed value.
Definition at line 48 of file SourceRefLattice.cpp.
|
protected |
Translate this value using the translation map, assuming this value is a scalar.
Definition at line 139 of file SourceRefLattice.cpp.