

Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Material Type: Notes; Class: PROG ANLYS&UNDERSTANDING; Subject: Computer Science; University: University of Maryland; Term: Unknown 1989;
Typology: Study notes
1 / 3
This page cannot be seen from the preview
Don't miss anything!


Report on " Composing Dataflow Analyses and Transformations " by S. Lerner, D. Grove and C. Chambers
Report by Konstantinos Bitsakos, Dec. 5 2002
This paper addresses the problem of writing dataflow analyses in a modular way and combining them in order to create a super-analysis. Their approach is to export the results of an individual analysis to all other analyses using flow graph transformations. So, depending on the input values and the current node of the program graph, the result (flow function) of each individual analysis can be a set of abstract values or a new sub graph to replace the current node. Applying the super-analysis recursively to the new sub graph can lead to further graph transformations (by the same or other analyses). When this procedure reaches a fixed point, then the current state of the graph is saved. The most common statement (node) transformations are:
Interesting points:
different from the optimistic one, the analysis is performed again with the real output. Eventually the analysis reaches a fixpoint solution.
Limitations
Experimental results
For their experiments they performed class analysis, splitting, inlining, constant propagation and folding, common sub-expression elimination, removal of redundant loads and stores and symbolic assertion propagation in 10 Cecil small to medium (up to 50KLOC) programs. According to the performance numbers given, their approach compared with the modular-once approach produce 3-13 times better results (in the same compilation time), while compared with the modular-iterated approach produce the same results but the compilation time was much less. This leads us to believe that most of the benchmark programs exhibit non-trivial mutually beneficial interactions, but they don't take advantage of the "on the fly"/parallel transformation capabilities of their approach. They only give us the relative compilation/running time of the tests. It would be interesting to include the absolute compilation time as well.
Extensions