CIRCT 24.0.0git
Loading...
Searching...
No Matches
ElaborationPass.cpp File Reference
#include "circt/Dialect/RTG/IR/RTGAttributes.h"
#include "circt/Dialect/RTG/IR/RTGOps.h"
#include "circt/Dialect/RTG/IR/RTGVisitors.h"
#include "circt/Dialect/RTG/Transforms/RTGPasses.h"
#include "circt/Support/Namespace.h"
#include "mlir/Dialect/Arith/IR/Arith.h"
#include "mlir/Dialect/Func/IR/FuncOps.h"
#include "mlir/Dialect/Index/IR/IndexDialect.h"
#include "mlir/Dialect/Index/IR/IndexOps.h"
#include "mlir/Dialect/SCF/IR/SCF.h"
#include "mlir/IR/IRMapping.h"
#include "mlir/IR/PatternMatch.h"
#include "llvm/ADT/DenseMapInfoVariant.h"
#include "llvm/ADT/ScopeExit.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/Support/Debug.h"
#include <memory>
#include <random>
#include <type_traits>
#include "circt/Dialect/RTG/Transforms/RTGPasses.h.inc"
Include dependency graph for ElaborationPass.cpp:

Go to the source code of this file.

Classes

struct  llvm::DenseMapInfo< bool >

Namespaces

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

Macros

#define GEN_PASS_DEF_ELABORATIONPASS
#define DEBUG_TYPE   "rtg-elaboration"
#define VISIT_UNSUPPORTED(STORAGETYPE)

Functions

static llvm::raw_ostream & operator<< (llvm::raw_ostream &os, const ElaboratorValue &value)
static void print (TypedAttr val, llvm::raw_ostream &os)
static void print (BagStorage *val, llvm::raw_ostream &os)
static void print (bool val, llvm::raw_ostream &os)
static void print (size_t val, llvm::raw_ostream &os)
static void print (SequenceStorage *val, llvm::raw_ostream &os)
static void print (RandomizedSequenceStorage *val, llvm::raw_ostream &os)
static void print (InterleavedSequenceStorage *val, llvm::raw_ostream &os)
static void print (ArrayStorage *val, llvm::raw_ostream &os)
static void print (SetStorage *val, llvm::raw_ostream &os)
static void print (const VirtualRegisterStorage *val, llvm::raw_ostream &os)
static void print (const UniqueLabelStorage *val, llvm::raw_ostream &os)
static void print (const TupleStorage *val, llvm::raw_ostream &os)
static void print (const MemoryStorage *val, llvm::raw_ostream &os)
static void print (const MemoryBlockStorage *val, llvm::raw_ostream &os)
static void print (const SymbolicComputationWithIdentityValue *val, llvm::raw_ostream &os)
static void print (const SymbolicComputationWithIdentityStorage *val, llvm::raw_ostream &os)
static void print (const SymbolicComputationStorage *val, llvm::raw_ostream &os)
static void print (const OpaqueExternalStorage *val, llvm::raw_ostream &os)
static void print (const MutStorage *val, llvm::raw_ostream &os)
static void print (const ContinuationStorage *val, llvm::raw_ostream &os)
static bool onlyLegalToMaterializeInTarget (Type type)

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "rtg-elaboration"

Definition at line 47 of file ElaborationPass.cpp.

◆ GEN_PASS_DEF_ELABORATIONPASS

#define GEN_PASS_DEF_ELABORATIONPASS

Definition at line 38 of file ElaborationPass.cpp.

◆ VISIT_UNSUPPORTED

#define VISIT_UNSUPPORTED ( STORAGETYPE)
Value:
/* NOLINTNEXTLINE(bugprone-macro-parentheses)*/ \
TypedAttr visit(STORAGETYPE *val) { return {}; }

Definition at line 1083 of file ElaborationPass.cpp.

Function Documentation

◆ onlyLegalToMaterializeInTarget()

bool onlyLegalToMaterializeInTarget ( Type type)
static

Definition at line 3465 of file ElaborationPass.cpp.

◆ operator<<()

llvm::raw_ostream & operator<< ( llvm::raw_ostream & os,
const ElaboratorValue & value )
static

Definition at line 942 of file ElaborationPass.cpp.

References print().

◆ print() [1/20]

void print ( ArrayStorage * val,
llvm::raw_ostream & os )
static

Definition at line 862 of file ElaborationPass.cpp.

◆ print() [2/20]

void print ( BagStorage * val,
llvm::raw_ostream & os )
static

Definition at line 822 of file ElaborationPass.cpp.

◆ print() [3/20]

void print ( bool val,
llvm::raw_ostream & os )
static

Definition at line 831 of file ElaborationPass.cpp.

◆ print() [4/20]

void print ( const ContinuationStorage * val,
llvm::raw_ostream & os )
static

Definition at line 937 of file ElaborationPass.cpp.

◆ print() [5/20]

void print ( const MemoryBlockStorage * val,
llvm::raw_ostream & os )
static

Definition at line 896 of file ElaborationPass.cpp.

◆ print() [6/20]

void print ( const MemoryStorage * val,
llvm::raw_ostream & os )
static

Definition at line 891 of file ElaborationPass.cpp.

◆ print() [7/20]

void print ( const MutStorage * val,
llvm::raw_ostream & os )
static

Definition at line 933 of file ElaborationPass.cpp.

◆ print() [8/20]

void print ( const OpaqueExternalStorage * val,
llvm::raw_ostream & os )
static

Definition at line 929 of file ElaborationPass.cpp.

◆ print() [9/20]

void print ( const SymbolicComputationStorage * val,
llvm::raw_ostream & os )
static

Definition at line 919 of file ElaborationPass.cpp.

◆ print() [10/20]

void print ( const SymbolicComputationWithIdentityStorage * val,
llvm::raw_ostream & os )
static

Definition at line 909 of file ElaborationPass.cpp.

◆ print() [11/20]

void print ( const SymbolicComputationWithIdentityValue * val,
llvm::raw_ostream & os )
static

Definition at line 903 of file ElaborationPass.cpp.

◆ print() [12/20]

void print ( const TupleStorage * val,
llvm::raw_ostream & os )
static

Definition at line 884 of file ElaborationPass.cpp.

◆ print() [13/20]

void print ( const UniqueLabelStorage * val,
llvm::raw_ostream & os )
static

Definition at line 880 of file ElaborationPass.cpp.

◆ print() [14/20]

void print ( const VirtualRegisterStorage * val,
llvm::raw_ostream & os )
static

Definition at line 876 of file ElaborationPass.cpp.

◆ print() [15/20]

void print ( InterleavedSequenceStorage * val,
llvm::raw_ostream & os )
static

Definition at line 855 of file ElaborationPass.cpp.

◆ print() [16/20]

void print ( RandomizedSequenceStorage * val,
llvm::raw_ostream & os )
static

Definition at line 846 of file ElaborationPass.cpp.

◆ print() [17/20]

void print ( SequenceStorage * val,
llvm::raw_ostream & os )
static

Definition at line 839 of file ElaborationPass.cpp.

◆ print() [18/20]

void print ( SetStorage * val,
llvm::raw_ostream & os )
static

Definition at line 869 of file ElaborationPass.cpp.

◆ print() [19/20]

void print ( size_t val,
llvm::raw_ostream & os )
static

Definition at line 835 of file ElaborationPass.cpp.

◆ print() [20/20]