Improve V3Premit performance etc. (#4736)

- Enable creating constant pool entries for RHS of simple
  var = const assignments
- Never extract ArraySel (it's just pointer arithmetic)
- Remove unnecessary AstTraceInc precond child tree
- Always fully recurse expressions (fix transplanted from #4617)
- General cleanup

Overall the patch is performance neutral to slightly positive, but saves
~10% peak Verialtor memory usage due to not creating temporaries (which
are later expanded) for any ArraySels.
This commit is contained in:
Geza Lore
2023-12-06 09:42:46 -05:00
committed by GitHub
parent 39d9bd4d47
commit f3bace10ae
4 changed files with 149 additions and 190 deletions
-1
View File
@@ -740,7 +740,6 @@ class EmitCTrace final : EmitCFunc {
}
void emitTraceChangeOne(AstTraceInc* nodep, int arrayindex) {
iterateAndNextConstNull(nodep->precondsp());
// Note: Both VTraceType::CHANGE and VTraceType::FULL use the 'full' methods
const std::string func = nodep->traceType() == VTraceType::CHANGE ? "chg" : "full";
bool emitWidth = true;