With #70 , normalizations (which need always to be run) are separated from optimizations (which can be skipped, still resulting in valid code).
The remaining optimizations should be made configurable (similar to all the common C++ compilers):
[x] extend Configuration to store an easily extensible configuration of currently enabled/disabled optimizations (e.g. map with optimization-name and status)
[x] extend command-line interface (and help) allowing every optimization to be explicitly enabled/disabled
[x] additionally group optimizations (according to effort/effect), similar to -O0 to -O3 in gcc/clang.
[ ] add configurability of optimizations to TestVC4C (see comment)
This enables us to debug single optimizations easily (see discussion in #55)
With #70 , normalizations (which need always to be run) are separated from optimizations (which can be skipped, still resulting in valid code). The remaining optimizations should be made configurable (similar to all the common C++ compilers):
Configuration
to store an easily extensible configuration of currently enabled/disabled optimizations (e.g. map with optimization-name and status)-O0
to-O3
in gcc/clang.TestVC4C
(see comment)This enables us to debug single optimizations easily (see discussion in #55)