#include "circt/Dialect/HW/HWTypes.h"
#include "circt/Dialect/LLHD/IR/LLHDOps.h"
#include "circt/Dialect/LLHD/Transforms/LLHDPasses.h"
#include "mlir/Analysis/Liveness.h"
#include "mlir/Dialect/ControlFlow/IR/ControlFlowOps.h"
#include "mlir/IR/Dominance.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/GenericIteratedDominanceFrontier.h"
#include "circt/Dialect/LLHD/Transforms/LLHDPasses.h.inc"
Go to the source code of this file.
|
namespace | circt |
| The InstanceGraph op interface, see InstanceGraphInterface.td for more details.
|
|
namespace | circt::llhd |
|
|
using | DefSlot = PointerIntPair< Value, 1 > |
| The slot a reaching definition specifies a value for, alongside a bit indicating whether the definition is from a delayed drive or a blocking drive.
|
|
◆ DEBUG_TYPE
#define DEBUG_TYPE "llhd-mem2reg" |
◆ GEN_PASS_DEF_MEM2REGPASS
#define GEN_PASS_DEF_MEM2REGPASS |
◆ DefSlot
using DefSlot = PointerIntPair<Value, 1> |
The slot a reaching definition specifies a value for, alongside a bit indicating whether the definition is from a delayed drive or a blocking drive.
Definition at line 204 of file Mem2Reg.cpp.
◆ blockingSlot()
static DefSlot blockingSlot |
( |
Value |
slot | ) |
|
|
static |
◆ delayedSlot()
static DefSlot delayedSlot |
( |
Value |
slot | ) |
|
|
static |
◆ getLoc()
static Location getLoc |
( |
DefSlot |
slot | ) |
|
|
static |
◆ getSlot()
static Value getSlot |
( |
DefSlot |
slot | ) |
|
|
static |
◆ getStoredType()
static Type getStoredType |
( |
DefSlot |
slot | ) |
|
|
static |
◆ isBlockingDrive()
static bool isBlockingDrive |
( |
Operation * |
op | ) |
|
|
static |
Check whether an operation is a llhd.drive
with an epsilon delay.
This corresponds to a blocking assignment in Verilog.
Definition at line 54 of file Mem2Reg.cpp.
References isEpsilonDelay().
◆ isDelayed()
static bool isDelayed |
( |
DefSlot |
slot | ) |
|
|
static |
◆ isDeltaDelay()
static bool isDeltaDelay |
( |
Value |
value | ) |
|
|
static |
Check whether a value is defined by llhd.constant_time <0ns, 1d, 0e>
.
Definition at line 44 of file Mem2Reg.cpp.
Referenced by isDeltaDrive().
◆ isDeltaDrive()
static bool isDeltaDrive |
( |
Operation * |
op | ) |
|
|
static |
Check whether an operation is a llhd.drive
with a delta delay.
This corresponds to a non-blocking assignment in Verilog.
Definition at line 62 of file Mem2Reg.cpp.
References isDeltaDelay().
◆ isEpsilonDelay()
static bool isEpsilonDelay |
( |
Value |
value | ) |
|
|
static |