LLZK 3.0.0
An open-source IR for Zero Knowledge (ZK) circuits
Loading...
Searching...
No Matches
TransformationPasses.td
Go to the documentation of this file.
1//===-- TransformationPasses.td ----------------------------*- tablegen -*-===//
2//
3// Part of the LLZK Project, under the Apache License v2.0.
4// See LICENSE.txt for license information.
5// Copyright 2025 Veridise Inc.
6// SPDX-License-Identifier: Apache-2.0
7//
8//===----------------------------------------------------------------------===//
9
10#ifndef LLZK_ARRAY_TRANSFORMATION_PASSES_TD
11#define LLZK_ARRAY_TRANSFORMATION_PASSES_TD
12
13include "llzk/Pass/PassBase.td"
14
15def ArrayToScalarPass : LLZKPass<"llzk-array-to-scalar"> {
16 let summary = "Replace arrays with scalar values";
17 let description = [{
18 Replace known-shape arrays with the proper number of scalar values
19 }];
20}
21
22def StraightLineStaticArrayPromotionPass
23 : LLZKPass<"llzk-straight-line-static-array-promotion"> {
24 let summary = "Promote straight-line static array accesses to SSA values";
25 let description = [{
26 Promote statically indexed array elements whose accesses have a single linear order within one
27 block or nested single-execution regions. Arrays involving control-flow joins, dynamic indices,
28 or escaping values are left unchanged.
29 }];
30}
31
32#endif // LLZK_ARRAY_TRANSFORMATION_PASSES_TD