39 if (
auto sf = dyn_cast<SubfieldOp>(op))
41 if (
auto sf = dyn_cast<OpenSubfieldOp>(op))
44 if (
auto si = dyn_cast<SubindexOp>(op))
46 if (
auto si = dyn_cast<OpenSubindexOp>(op))
49 if (
auto sa = dyn_cast<SubaccessOp>(op))
52 if (isa<WireOp, RegOp, RegResetOp, InvalidValueOp, chirrtl::MemoryPortOp>(op))
55 if (
auto mem = dyn_cast<MemOp>(op))
57 if (
auto inst = dyn_cast<InstanceOp>(op))
59 if (
auto inst = dyn_cast<InstanceChoiceOp>(op))
63 if (op->getNumResults()) {
64 auto type = op->getResult(0).getType();
65 if (
auto baseType = type_dyn_cast<FIRRTLBaseType>(type);
66 baseType && !baseType.isGround())
Flow foldFlow(Value val, Flow accumulatedFlow=Flow::Source)
Compute the flow for a Value, val, as determined by the FIRRTL specification.