Streamline preprocessing of P4. Currently the compiler needs to invoke cpp even when invoked with –no-cpp because it needs the preprocessor to inline #include files. And moreover, it is using a hardcoded system include path because the compiler options are not passed to the method invoking the preprocessor. This can turn into a significant improvement in execution time if cpp is not spawned as a process for every include directive.
Streamline the mechanism of the compiler driver to pass options to the backend. Even though we have the -Xp4c option, developers expect that the driver supports all the backend options natively. We have been adding a number of these directly into the driver, however, that is not a scalable solution.
Improve compiler error reporting
Implemente the analog of P414 p4-graphs that works with the p4c IR.
Fully document the classes for both IR and compiler passes and organize the documentation into chapters. There is also significant material captured in a Powerpoint presentation that would be good to integrate into the generated HTML documentation.