TC-8, Liveness AnalysisΒΆ

2023-TC-8 is a part of the TC Back End option.

2023-TC-8 submission is Saturday, June 5th 2021 at 23:42.

This section has been updated for EPITA-2023 on 2021-05-30.

At the end of this stage, the compiler computes the input of TC-9: the interference graph (or conflict graph). The options -N and --interference-dump allow the user to see these graphs, one per function. To compute the interference graph, the compiler first computes the liveness of each temporary, i.e., a graph whose nodes are the instructions, and labeled with live temporaries. The options -V, --liveness-dump dumps these graphs. Finally, the structure of the liveness graph is the flow graph: its nodes are the instructions, and edges correspond to control flow. Use options -F, --flowgraph-dump to dump them.

All dumped graphs use the DOT format. You can display them using dotty or convert them to other formats (such as PDF or PNG) using dot, both part of the GraphViz package.

Relevant lecture notes include 49-liveness-analysis.pdf.