CIRCT  18.0.0git
Classes | Namespaces | Functions
FlattenMemRefs.cpp File Reference
#include "PassDetail.h"
#include "circt/Transforms/Passes.h"
#include "mlir/Conversion/LLVMCommon/ConversionTarget.h"
#include "mlir/Conversion/LLVMCommon/Pattern.h"
#include "mlir/Dialect/Arith/IR/Arith.h"
#include "mlir/Dialect/ControlFlow/IR/ControlFlowOps.h"
#include "mlir/Dialect/Func/IR/FuncOps.h"
#include "mlir/Dialect/MemRef/IR/MemRef.h"
#include "mlir/IR/BuiltinDialect.h"
#include "mlir/IR/BuiltinTypes.h"
#include "mlir/IR/ImplicitLocOpBuilder.h"
#include "mlir/IR/OperationSupport.h"
#include "mlir/Transforms/DialectConversion.h"
#include "mlir/Transforms/GreedyPatternRewriteDriver.h"
#include "llvm/Support/MathExtras.h"
Include dependency graph for FlattenMemRefs.cpp:

Go to the source code of this file.


struct  FunctionRewrite
 A struct for maintaining function declarations which needs to be rewritten, if they contain memref arguments that was flattened. More...


 This file defines an intermediate representation for circuits acting as an abstraction for constraints defined over an SMT's solver context.


static Value flattenIndices (ConversionPatternRewriter &rewriter, Operation *op, ValueRange indices, MemRefType memrefType)
static bool hasMultiDimMemRef (ValueRange values)
std::unique_ptr< mlir::Pass > circt::createFlattenMemRefPass ()
std::unique_ptr< mlir::Pass > circt::createFlattenMemRefCallsPass ()

Function Documentation

◆ flattenIndices()

static Value flattenIndices ( ConversionPatternRewriter &  rewriter,
Operation *  op,
ValueRange  indices,
MemRefType  memrefType 

Definition at line 45 of file FlattenMemRefs.cpp.

References assert().

◆ hasMultiDimMemRef()

static bool hasMultiDimMemRef ( ValueRange  values)

Definition at line 92 of file FlattenMemRefs.cpp.

References circt::isUniDimensional().