CIRCT 21.0.0git
Loading...
Searching...
No Matches
Classes | Namespaces | Macros | Functions | Variables
FlattenMemRefs.cpp File Reference
#include "circt/Support/LLVM.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/Pass/Pass.h"
#include "mlir/Transforms/DialectConversion.h"
#include "mlir/Transforms/GreedyPatternRewriteDriver.h"
#include "llvm/Support/FormatVariadic.h"
#include "llvm/Support/LogicalResult.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

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

Macros

#define GEN_PASS_DEF_FLATTENMEMREF
 
#define GEN_PASS_DEF_FLATTENMEMREFCALLS
 

Functions

static std::atomic< unsigned > globalCounter (0)
 
static MemRefType getFlattenedMemRefType (MemRefType type)
 
static std::string getFlattenedMemRefName (StringAttr baseName, MemRefType type)
 
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 ()
 

Variables

static DenseMap< StringAttr, StringAttr > globalNameMap
 

Macro Definition Documentation

◆ GEN_PASS_DEF_FLATTENMEMREF

#define GEN_PASS_DEF_FLATTENMEMREF

Definition at line 33 of file FlattenMemRefs.cpp.

◆ GEN_PASS_DEF_FLATTENMEMREFCALLS

#define GEN_PASS_DEF_FLATTENMEMREFCALLS

Definition at line 34 of file FlattenMemRefs.cpp.

Function Documentation

◆ flattenIndices()

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

Definition at line 69 of file FlattenMemRefs.cpp.

References assert().

◆ getFlattenedMemRefName()

static std::string getFlattenedMemRefName ( StringAttr  baseName,
MemRefType  type 
)
static

Definition at line 60 of file FlattenMemRefs.cpp.

References globalCounter().

◆ getFlattenedMemRefType()

static MemRefType getFlattenedMemRefType ( MemRefType  type)
static

Definition at line 55 of file FlattenMemRefs.cpp.

◆ globalCounter()

static std::atomic< unsigned > globalCounter ( )
static

Referenced by getFlattenedMemRefName().

◆ hasMultiDimMemRef()

static bool hasMultiDimMemRef ( ValueRange  values)
static

Definition at line 117 of file FlattenMemRefs.cpp.

References circt::isUniDimensional().

Variable Documentation

◆ globalNameMap

DenseMap<StringAttr, StringAttr> globalNameMap
static

Definition at line 53 of file FlattenMemRefs.cpp.