LLZK 0.1.0
An open-source IR for Zero Knowledge (ZK) circuits
Loading...
Searching...
No Matches
LLZKFuseProductLoopsPass.cpp File Reference

This file implements the -llzk-fuse-product-loops pass. More...

#include "llzk/Dialect/Function/IR/Ops.h"
#include "llzk/Dialect/Polymorphic/IR/Ops.h"
#include "llzk/Dialect/Struct/IR/Ops.h"
#include "llzk/Transforms/LLZKFuseProductLoopsPass.h"
#include "llzk/Transforms/LLZKTransformationPasses.h"
#include "llzk/Util/AlignmentHelper.h"
#include "llzk/Util/Constants.h"
#include <mlir/Dialect/SCF/Utils/Utils.h>
#include <llvm/Support/Debug.h>
#include <llvm/Support/SMTAPI.h>
#include <memory>
#include "llzk/Transforms/LLZKTransformationPasses.h.inc"
Include dependency graph for LLZKFuseProductLoopsPass.cpp:

Go to the source code of this file.

Classes

class  llzk::impl::FuseProductLoopsPassBase< DerivedT >
class  llzk::FuseProductLoopsPass

Namespaces

namespace  llzk
namespace  llzk::impl

Macros

#define GEN_PASS_DECL_FUSEPRODUCTLOOPSPASS
#define GEN_PASS_DEF_FUSEPRODUCTLOOPSPASS

Functions

llvm::SMTExprRef llzk::mkExpr (mlir::Value value, llvm::SMTSolver *solver)
llvm::SMTExprRef llzk::tripCount (mlir::scf::ForOp op, llvm::SMTSolver *solver)
mlir::LogicalResult llzk::fuseMatchingLoopPairs (mlir::Region &body, mlir::MLIRContext *context)
 Identify pairs of scf.for loops that can be fused, fuse them, and then recurse to fuse nested loops.
std::unique_ptr< mlir::Pass > llzk::createFuseProductLoopsPass ()

Variables

constexpr int llzk::INDEX_WIDTH = 64

Detailed Description

This file implements the -llzk-fuse-product-loops pass.

Definition in file LLZKFuseProductLoopsPass.cpp.

Macro Definition Documentation

◆ GEN_PASS_DECL_FUSEPRODUCTLOOPSPASS

#define GEN_PASS_DECL_FUSEPRODUCTLOOPSPASS

Definition at line 32 of file LLZKFuseProductLoopsPass.cpp.

◆ GEN_PASS_DEF_FUSEPRODUCTLOOPSPASS

#define GEN_PASS_DEF_FUSEPRODUCTLOOPSPASS

Definition at line 33 of file LLZKFuseProductLoopsPass.cpp.