Loading [MathJax]/extensions/tex2jax.js
CIRCT 21.0.0git
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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 <queue>
#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 >
 
struct  llvm::DenseMapInfo< LabelValue >
 

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"
 

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 LabelValue &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 bool onlyLegalToMaterializeInTarget (Type type)
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "rtg-elaboration"

Definition at line 44 of file ElaborationPass.cpp.

◆ GEN_PASS_DEF_ELABORATIONPASS

#define GEN_PASS_DEF_ELABORATIONPASS

Definition at line 34 of file ElaborationPass.cpp.

Function Documentation

◆ computeMask()

static uint32_t computeMask ( size_t  w)
static

Definition at line 55 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 62 of file ElaborationPass.cpp.

References computeMask().

◆ onlyLegalToMaterializeInTarget()

static bool onlyLegalToMaterializeInTarget ( Type  type)
static

Definition at line 2027 of file ElaborationPass.cpp.

◆ operator<<()

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

Definition at line 634 of file ElaborationPass.cpp.

References print().

◆ print() [1/15]

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

Definition at line 589 of file ElaborationPass.cpp.

◆ print() [2/15]

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

Definition at line 549 of file ElaborationPass.cpp.

◆ print() [3/15]

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

Definition at line 558 of file ElaborationPass.cpp.

◆ print() [4/15]

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

Definition at line 611 of file ElaborationPass.cpp.

◆ print() [5/15]

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

Definition at line 627 of file ElaborationPass.cpp.

◆ print() [6/15]

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

Definition at line 622 of file ElaborationPass.cpp.

◆ print() [7/15]

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

Definition at line 615 of file ElaborationPass.cpp.

◆ print() [8/15]

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

Definition at line 607 of file ElaborationPass.cpp.

◆ print() [9/15]

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

Definition at line 603 of file ElaborationPass.cpp.

◆ print() [10/15]

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

Definition at line 582 of file ElaborationPass.cpp.

◆ print() [11/15]

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

Definition at line 573 of file ElaborationPass.cpp.

◆ print() [12/15]

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

Definition at line 566 of file ElaborationPass.cpp.

◆ print() [13/15]

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

Definition at line 596 of file ElaborationPass.cpp.

◆ print() [14/15]

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

Definition at line 562 of file ElaborationPass.cpp.

◆ print() [15/15]

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