CIRCT 24.0.0git
Loading...
Searching...
No Matches
ExpandWhens.cpp File Reference
#include "circt/Dialect/FIRRTL/FIRRTLOps.h"
#include "circt/Dialect/FIRRTL/FIRRTLTypes.h"
#include "circt/Dialect/FIRRTL/FIRRTLUtils.h"
#include "circt/Dialect/FIRRTL/FIRRTLVisitors.h"
#include "circt/Dialect/FIRRTL/Passes.h"
#include "circt/Support/FieldRef.h"
#include "mlir/Pass/Pass.h"
#include "llvm/ADT/MapVector.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/Support/SaveAndRestore.h"
#include "circt/Dialect/FIRRTL/Passes.h.inc"
Include dependency graph for ExpandWhens.cpp:

Go to the source code of this file.

Classes

struct  HashTableStack< KeyT, ValueT >
 This is a stack of hashtables, if lookup fails in the top-most hashtable, it will attempt to lookup in lower hashtables. More...
struct  HashTableStack< KeyT, ValueT >::Iterator

Namespaces

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

Macros

#define GEN_PASS_DEF_EXPANDWHENS

Typedefs

using ScopedDriverMap = HashTableStack<FieldRef, Operation *>
 This is a determistic mapping of a FieldRef to the last operation which set a value to it.
using DriverMap = ScopedDriverMap::ScopeT

Functions

static void mergeBlock (Block &destination, Block::iterator insertPoint, Block &source)
 Move all operations from a source block in to a destination block.
static bool isInvalidValue (Value value)
 Return true if the value is an invalid value or a subelement of one.

Macro Definition Documentation

◆ GEN_PASS_DEF_EXPANDWHENS

#define GEN_PASS_DEF_EXPANDWHENS

Definition at line 29 of file ExpandWhens.cpp.

Typedef Documentation

◆ DriverMap

Definition at line 134 of file ExpandWhens.cpp.

◆ ScopedDriverMap

using ScopedDriverMap = HashTableStack<FieldRef, Operation *>

This is a determistic mapping of a FieldRef to the last operation which set a value to it.

Definition at line 133 of file ExpandWhens.cpp.

Function Documentation

◆ isInvalidValue()

bool isInvalidValue ( Value value)
static

Return true if the value is an invalid value or a subelement of one.

Definition at line 45 of file ExpandWhens.cpp.

◆ mergeBlock()

void mergeBlock ( Block & destination,
Block::iterator insertPoint,
Block & source )
static

Move all operations from a source block in to a destination block.

Leaves the source block empty.

Definition at line 39 of file ExpandWhens.cpp.

Referenced by buildMergeBlocks().