|
LLZK 0.1.0
Veridise's ZK Language IR
|
This file implements the -llzk-array-to-scalar pass. More...
#include "llzk/Dialect/Array/IR/Ops.h"#include "llzk/Dialect/Array/Transforms/TransformationPasses.h"#include "llzk/Dialect/Array/Util/ArrayTypeHelper.h"#include "llzk/Dialect/Constrain/IR/Dialect.h"#include "llzk/Dialect/Felt/IR/Dialect.h"#include "llzk/Dialect/Function/IR/Ops.h"#include "llzk/Dialect/Include/IR/Dialect.h"#include "llzk/Transforms/LLZKConversionUtils.h"#include "llzk/Util/Concepts.h"#include <mlir/IR/BuiltinOps.h>#include <mlir/Pass/PassManager.h>#include <mlir/Transforms/DialectConversion.h>#include <mlir/Transforms/Passes.h>#include <llvm/Support/Debug.h>#include "llzk/Dialect/Array/Transforms/TransformationPasses.h.inc"Go to the source code of this file.
Classes | |
| class | llzk::array::impl::ArrayToScalarPassBase< DerivedT > |
Namespaces | |
| namespace | llzk |
| namespace | llzk::array |
| namespace | llzk::array::impl |
Macros | |
| #define | GEN_PASS_DEF_ARRAYTOSCALARPASS |
| #define | DEBUG_TYPE "llzk-array-to-scalar" |
This file implements the -llzk-array-to-scalar pass.
The steps of this transformation are as follows:
Note: This transformation imposes a "last write wins" semantics on array elements. If different/configurable semantics are added in the future, some additional transformation would be necessary before/during this pass so that multiple writes to the same index can be handled properly while they still exist.
Note: This transformation will introduce an undef op when there exists a read from an array index that was not earlier written to.
Definition in file ArrayToScalarPass.cpp.
| #define DEBUG_TYPE "llzk-array-to-scalar" |
Definition at line 84 of file ArrayToScalarPass.cpp.
| #define GEN_PASS_DEF_ARRAYTOSCALARPASS |
Definition at line 74 of file ArrayToScalarPass.cpp.