CIRCT 23.0.0git
Loading...
Searching...
No Matches
Classes | Namespaces | Macros | Functions
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/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/Support/Debug.h"
#include <random>
#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 uint32_t computeMask (size_t w)
 
static uint32_t getUniformlyInRange (std::mt19937 &rng, uint32_t a, uint32_t b)
 Get a number uniformly at random in the in specified range.
 
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 bool onlyLegalToMaterializeInTarget (Type type)
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "rtg-elaboration"

Definition at line 43 of file ElaborationPass.cpp.

◆ GEN_PASS_DEF_ELABORATIONPASS

#define GEN_PASS_DEF_ELABORATIONPASS

Definition at line 33 of file ElaborationPass.cpp.

◆ VISIT_UNSUPPORTED

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

Definition at line 863 of file ElaborationPass.cpp.

Function Documentation

◆ computeMask()

static uint32_t computeMask ( size_t  w)
static

Definition at line 54 of file ElaborationPass.cpp.

Referenced by getUniformlyInRange().

◆ getUniformlyInRange()

static uint32_t getUniformlyInRange ( std::mt19937 &  rng,
uint32_t  a,
uint32_t  b 
)
static

Get a number uniformly at random in the in specified range.

Definition at line 61 of file ElaborationPass.cpp.

References computeMask().

◆ onlyLegalToMaterializeInTarget()

static bool onlyLegalToMaterializeInTarget ( Type  type)
static

Definition at line 2480 of file ElaborationPass.cpp.

◆ operator<<()

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

Definition at line 722 of file ElaborationPass.cpp.

References print().

◆ print() [1/17]

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

Definition at line 655 of file ElaborationPass.cpp.

◆ print() [2/17]

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

Definition at line 615 of file ElaborationPass.cpp.

◆ print() [3/17]

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

Definition at line 624 of file ElaborationPass.cpp.

◆ print() [4/17]

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

Definition at line 689 of file ElaborationPass.cpp.

◆ print() [5/17]

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

Definition at line 684 of file ElaborationPass.cpp.

◆ print() [6/17]

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

Definition at line 712 of file ElaborationPass.cpp.

◆ print() [7/17]

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

Definition at line 702 of file ElaborationPass.cpp.

◆ print() [8/17]

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

Definition at line 696 of file ElaborationPass.cpp.

◆ print() [9/17]

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

Definition at line 677 of file ElaborationPass.cpp.

◆ print() [10/17]

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

Definition at line 673 of file ElaborationPass.cpp.

◆ print() [11/17]

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

Definition at line 669 of file ElaborationPass.cpp.

◆ print() [12/17]

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

Definition at line 648 of file ElaborationPass.cpp.

◆ print() [13/17]

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

Definition at line 639 of file ElaborationPass.cpp.

◆ print() [14/17]

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

Definition at line 632 of file ElaborationPass.cpp.

◆ print() [15/17]

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

Definition at line 662 of file ElaborationPass.cpp.

◆ print() [16/17]

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

Definition at line 628 of file ElaborationPass.cpp.

◆ print() [17/17]

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