forked from github/verilator
a8f83d5758
The goal of this patch is to move functionality related to constructing the thread entry points and then invoking them out of V3EmitC (and into V3Partition). The long term goal being enabling V3EmitC to emit functions partitioned based on header dependencies. V3EmitC having to deal with only AstCFunc instances and no other magic will facilitate this. In this patch: - We construct AstCFuncs for each thread entry point in V3Partition::finalize and move AstMTaskBody nodes under these functions. - Add the invocation of the threads as text statements within the AstExecGraph, so they are still invoked where the exec graph is located. (the entry point functions are still referenced via AstCCall or AstAddOrCFunc, so lazy declarations of referenced functions are created automatically). - Explicitly handle MTask state variables (VlMTaskVertex in verilated_threads.h) within Verilator, so no need to text bash a lot of these any more (some text refs still remain but they are all created next to each other within V3Partition.cpp). The effect of all this on the emitted code should be nothing but some identifier/ordering changes. No functional change intended. |
||
---|---|---|
.. | ||
t | ||
.gdbinit | ||
.gitignore | ||
CMakeLists.txt | ||
driver.pl | ||
input.vc | ||
input.xsim.vc | ||
Makefile | ||
Makefile_obj |