Print optimization report in uplc optimize#7765
Conversation
|
|
Is there any value in recording passes which did not make any changes? I was also thinking of removing these from the trace produced for the certifier since, at least from the certifier's perspective, there's nothing interesting about proving syntactic equality which is trivial and it would be better if the trace would emphasize the passes which made actual changes. |
It's important to tell people which passes were run, especially since there are flags to turn on/off various passes. Otherwise users would be wondering: I turned on this pass, why didn't it show up in the report? |
ana-pantilie
left a comment
There was a problem hiding this comment.
We have a golden test for the certifier report version, I think we should have one for this version as well.
Also, what purpose does the certifier report have now that we have this feature? If it's just to see which optimization stages are certified and whether they passed the certifier, I'd rather we add that information to this report instead.
|
|
||
| type OptimizerReport = [ReportEntry] | ||
|
|
||
| -- FIXME: we need a lot of `reverse` here because `OptimizerTrace` contains the passes |
There was a problem hiding this comment.
Yeah this is annoying, we should probably make allASTs and getOptimizerTrace (and other functions which extract elements/the list from the trace) run reverse.
Done
Certifier report also shows the number of optimization sites. We can merge the two reports later. It's not trivial because the certifier report is constructed in Agda. We do need this new report for the time being - it makes little sense to produce a report only when running the certifier. |
Previously, optimization numbers are only recorded in the certifier report. This makes
uplc optimizegenerate a standalone optimization report, regardless of whether--certifyis enabled.Example report: