mirror of
https://github.com/verilator/verilator.git
synced 2026-09-04 00:30:34 +02:00
Internals: UINFO now includes newline itself. No functional change.
This commit is contained in:
+10
-10
@@ -172,7 +172,7 @@ class TableVisitor final : public VNVisitor {
|
||||
public:
|
||||
void simulateVarRefCb(AstVarRef* nodep) {
|
||||
// Called by TableSimulateVisitor on each unique varref encountered
|
||||
UINFO(9, " SimVARREF " << nodep << endl);
|
||||
UINFO(9, " SimVARREF " << nodep);
|
||||
AstVarScope* const vscp = nodep->varScopep();
|
||||
if (nodep->access().isWriteOrRW()) {
|
||||
// We'll make the table with a separate natural alignment for each output var, so
|
||||
@@ -233,9 +233,9 @@ private:
|
||||
<< " in width (bits)=" << m_inWidthBits << " out width (bytes)="
|
||||
<< m_outWidthBytes << " Spacetime=" << (space / time) << "("
|
||||
<< space << "/" << time << ")"
|
||||
<< ": " << nodep << endl);
|
||||
<< ": " << nodep);
|
||||
if (chkvis.optimizable()) {
|
||||
UINFO(3, " Table Optimize spacetime=" << (space / time) << " " << nodep << endl);
|
||||
UINFO(3, " Table Optimize spacetime=" << (space / time) << " " << nodep);
|
||||
m_totalBytes += space;
|
||||
}
|
||||
return chkvis.optimizable();
|
||||
@@ -287,7 +287,7 @@ private:
|
||||
for (uint32_t i = 0; i <= VL_MASK_I(m_inWidthBits); ++i) {
|
||||
const uint32_t inValue = i;
|
||||
// Make a new simulation structure so we can set new input values
|
||||
UINFO(8, " Simulating " << std::hex << inValue << endl);
|
||||
UINFO(8, " Simulating " << std::hex << inValue);
|
||||
|
||||
// Above simulateVisitor clears user 3, so
|
||||
// all outputs default to nullptr to mean 'recirculating'.
|
||||
@@ -304,7 +304,7 @@ private:
|
||||
// We are using 32 bit arithmetic, because there's no way the input table can be
|
||||
// 2^32 bytes!
|
||||
UASSERT_OBJ(shift <= 32, nodep, "shift overflow");
|
||||
UINFO(8, " Input " << invscp->name() << " = " << cnst.name() << endl);
|
||||
UINFO(8, " Input " << invscp->name() << " = " << cnst.name());
|
||||
}
|
||||
|
||||
// Simulate
|
||||
@@ -317,12 +317,12 @@ private:
|
||||
V3Number outputAssignedMask{nodep, static_cast<int>(m_outVarps.size()), 0};
|
||||
for (TableOutputVar& tov : m_outVarps) {
|
||||
if (V3Number* const outnump = simvis.fetchOutNumberNull(tov.varScopep())) {
|
||||
UINFO(8, " Output " << tov.name() << " = " << *outnump << endl);
|
||||
UINFO(8, " Output " << tov.name() << " = " << *outnump);
|
||||
UASSERT_OBJ(!outnump->isAnyXZ(), outnump, "Table should not contain X/Z");
|
||||
outputAssignedMask.setBit(tov.ord(), 1); // Mark output as assigned
|
||||
tov.addValue(inValue, *outnump);
|
||||
} else {
|
||||
UINFO(8, " Output " << tov.name() << " not set for this input\n");
|
||||
UINFO(8, " Output " << tov.name() << " not set for this input");
|
||||
tov.setMayBeUnassigned();
|
||||
}
|
||||
}
|
||||
@@ -388,13 +388,13 @@ private:
|
||||
iterateChildren(nodep);
|
||||
}
|
||||
void visit(AstScope* nodep) override {
|
||||
UINFO(4, " SCOPE " << nodep << endl);
|
||||
UINFO(4, " SCOPE " << nodep);
|
||||
VL_RESTORER(m_scopep);
|
||||
m_scopep = nodep;
|
||||
iterateChildren(nodep);
|
||||
}
|
||||
void visit(AstAlways* nodep) override {
|
||||
UINFO(4, " ALWAYS " << nodep << endl);
|
||||
UINFO(4, " ALWAYS " << nodep);
|
||||
if (treeTest(nodep)) {
|
||||
// Well, then, I'll be a memory hog.
|
||||
replaceWithTable(nodep);
|
||||
@@ -426,7 +426,7 @@ void TableSimulateVisitor::varRefCb(AstVarRef* nodep) {
|
||||
// Table class functions
|
||||
|
||||
void V3Table::tableAll(AstNetlist* nodep) {
|
||||
UINFO(2, __FUNCTION__ << ": " << endl);
|
||||
UINFO(2, __FUNCTION__ << ":");
|
||||
{ TableVisitor{nodep}; } // Destruct before checking
|
||||
V3Global::dumpCheckGlobalTree("table", 0, dumpTreeEitherLevel() >= 3);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user