yosys/backends/cxxrtl
whitequark f75bc6c7aa cxxrtl: disable optimization of debug_items().
Implementing outlining has greatly increased the amount of debug
information in a typical build, and consequently exposed performance
issues in C++ compilers, which are similar for both GCC and Clang;
the compile time of Minerva SoC SRAM increased almost twofold.

Although one would expect the slowdown to be caused by the increased
use of templates in `debug_eval()`, it is actually almost entirely
attributable to optimizations and codegen for `debug_items()`.

Fortunately, it is neither possible nor desirable to optimize
`debug_items()`: in most cases it is called exactly once, and its
body is a linear sequence of calls with unique arguments.

This commit turns off optimizations for `debug_items()` on GCC and
Clang, improving -Os compile time of Minerva SoC SRAM by ~40% (!)
2020-12-15 11:02:38 +00:00
..
Makefile.inc cxxrtl: rename cxxrtl.cc→cxxrtl_backend.cc. 2020-06-07 03:48:40 +00:00
cxxrtl.h cxxrtl: disable optimization of debug_items(). 2020-12-15 11:02:38 +00:00
cxxrtl_backend.cc cxxrtl: disable optimization of debug_items(). 2020-12-15 11:02:38 +00:00
cxxrtl_capi.cc cxxrtl: implement debug information outlining. 2020-12-14 01:27:27 +00:00
cxxrtl_capi.h cxxrtl: implement debug information outlining. 2020-12-14 01:27:27 +00:00
cxxrtl_vcd.h cxxrtl: implement debug information outlining. 2020-12-14 01:27:27 +00:00
cxxrtl_vcd_capi.cc cxxrtl: add missing namespace. 2020-06-09 06:26:43 +00:00
cxxrtl_vcd_capi.h Fix formatting. NFC. 2020-06-10 15:48:40 +00:00