It is important that mechanisms are developed to allow greater modularity in the use of OpenQL. Users should be able to specify which compiler passes (scheduler, mapper, optimizers, etc) are used for a specific run, and developers should be able to contribute with additional modules for new functionality. In this way, allowing for a modular compilation chain in OpenQL would support new use cases and easier development of new compiler features.
Documentation on the following subjects would be indispensable for implementation of the suggested features:
i) available compilation passes (and respective configuration and functionality)
ii) compiler inter-module interfaces (intermediate circuit representations)
The discussions on intermediate representation languages, in issue #255, and on transpilation capabilities, issue #272, are of high relevance in the context of this issue.
It is important that mechanisms are developed to allow greater modularity in the use of OpenQL. Users should be able to specify which compiler passes (scheduler, mapper, optimizers, etc) are used for a specific run, and developers should be able to contribute with additional modules for new functionality. In this way, allowing for a modular compilation chain in OpenQL would support new use cases and easier development of new compiler features.
Documentation on the following subjects would be indispensable for implementation of the suggested features: i) available compilation passes (and respective configuration and functionality) ii) compiler inter-module interfaces (intermediate circuit representations)
The discussions on intermediate representation languages, in issue #255, and on transpilation capabilities, issue #272, are of high relevance in the context of this issue.