...похоже, у меня налаживается сон, я читаю то, что не мог читать не в отпуске. ;)
Вот, например:
https://github.com/true-grue/Compiler-Development/blob/master/docs/sea_of_nodes.md Оттуда я вышел на диссертацию про выбор операций при генерации кода:
https://kth.diva-portal.org/smash/get/diva2:1185339/FULLTEXT03.pdf Цитата:...The dissertation also proposes extensions to the model for integrating instruction scheduling and register allocation, two other important problems of code generation.
The model is enabled by a novel, graph-based representation that unifies data and control flow for entire functions. The representation is crucial for integrating instruction selection with global code motion and for modeling sophisticated instructions, whose behavior contains both data and control flow, as graphs.
Through experimental evaluation, universal instruction selection is demonstrated to handle architectures with a rich instruction set and scales up to functions with hundreds of operations. For these functions, it generates code of equal or better quality compared to the state of the art. The dissertation also demonstrates that there is sufficient data parallelism to be exploited through selection of SIMD instructions and that this exploitation benefits from global code motion. With these results, it is argued that constraint programming is a flexible, practical, competitive, and extensible approach for combining global instruction selection, global code motion, and block ordering...
Вот-с.
Буду читать далее.