CIRCT  20.0.0git
Classes | Namespaces | Macros | Functions
FlattenMemRefs.cpp File Reference
#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/Pass/Pass.h"
#include "mlir/Transforms/DialectConversion.h"
#include "mlir/Transforms/GreedyPatternRewriteDriver.h"
#include "llvm/Support/MathExtras.h"
#include "circt/Transforms/Passes.h.inc"
Include dependency graph for FlattenMemRefs.cpp:

Go to the source code of this file.

Classes

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

Namespaces

 circt
 The InstanceGraph op interface, see InstanceGraphInterface.td for more details.
 

Macros

#define GEN_PASS_DEF_FLATTENMEMREF
 
#define GEN_PASS_DEF_FLATTENMEMREFCALLS
 

Functions

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 ()
 

Macro Definition Documentation

◆ GEN_PASS_DEF_FLATTENMEMREF

#define GEN_PASS_DEF_FLATTENMEMREF

Definition at line 30 of file FlattenMemRefs.cpp.

◆ GEN_PASS_DEF_FLATTENMEMREFCALLS

#define GEN_PASS_DEF_FLATTENMEMREFCALLS

Definition at line 31 of file FlattenMemRefs.cpp.

Function Documentation

◆ flattenIndices()

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

Definition at line 51 of file FlattenMemRefs.cpp.

References assert().

◆ hasMultiDimMemRef()

static bool hasMultiDimMemRef ( ValueRange  values)
static

Definition at line 98 of file FlattenMemRefs.cpp.

References circt::isUniDimensional().