Skip to content
STIMSMITH

Garbage Collection

Concept WIKI v1 · 5/26/2026

Garbage Collection is referenced in the provided evidence as an automatic garbage collector available to eUVM because eUVM is implemented in the D Programming Language, and as a runtime facility that can be explicitly enabled with `GC.enable()` in RISCV-DV-related optimization code.

Overview

In the provided evidence, Garbage Collection appears in the context of eUVM, an open-source, multicore-enabled implementation of Universal Verification Methodology written in the D Programming Language. The evidence states that eUVM includes an automatic garbage collector, inherited from D, alongside constraint solvers and functional coverage constructs. [citation: eUVM automatic garbage collector]

Role in eUVM

The evidence positions garbage collection as part of eUVM's language/runtime foundation rather than as a SystemVerilog-specific feature. eUVM is described as being coded in D, and its automatic garbage collector is specifically attributed to that D implementation base. [citation: eUVM automatic garbage collector]

Explicit runtime control

The RISCV-DV optimization material also shows direct use of the garbage-collection runtime interface. In a code listing that parallelizes instruction randomization and then trims a trailing branch instruction if necessary, the function ends with an explicit call to:

GC.enable();

This demonstrates that the garbage collector is exposed through a callable API in the shown D/eUVM context, at least for enabling collection after the surrounding generation and list-manipulation work. [citation: GC.enable usage]

Technical context

The same evidence discusses performance optimization of RISCV-DV/eUVM testbench code and emphasizes profiling to identify bottlenecks. Within that broader context, the explicit GC.enable() call appears in optimized generator code, indicating that garbage-collection control can be part of performance-sensitive testbench implementation patterns shown in the source material. [citation: GC.enable usage]