CISC 872 Fall 2001 Quiz #1 Preparation Guidelines – Oct 2 in class

 

Format

- given a code segment, identify or draw the call graph, control flow graph or supergraph

- match the data flow problem with the lattice formulation or some part of the lattice formulation

- match the transformations with the data flow problems that need to be solved to determine the safety of the transformation

- match the motivation/use/goal of a transformation with the transformation

- given a small code segment show the after picture for a specific transformation

- justify a particular ordering of the analyses and transformations

References

- Lecture notes

- Muchnick book

- Aho, Sethi, and Ullman book

Topic Coverage

1. Graphical Representations of Program Control

-Control flow graph – draw one and recognize certain features of one

-Call Graph - draw one for a particular code segment and recognize certain features of one; understand construction difficulties

-Supergraph - draw one for a particular code segment; understand the advantages/disadvantages; recognize certain features of one

2. Data Flow Problems and their Formulations

(for each problem: motivation/use of the information, lattice formulation (lattice elements, meet operator, form of transfer functions, intuitive meaning of the information gathered)

-reaching definitions

-available expressions

-live variables

-upwards exposed uses

-constant propagation

-pointer alias analysis

3. Uses of data flow analysis for transformations:

(for each transformation, how does the code get changed (before and after picture), what is gained by the transformation in terms of improving the code, possibilities for hurting the performance of the code, what data flow problems need to be computed to determine the safety and profitability of the transformation, the conditions for safely performing the transformation without changing the program semantics)

-Common subexpression elimination

- partial redundancy elimination

- loop invariant code motion

- code hoisting

- constant folding

- copy propagation and elimination

- sparse conditional constant propagation

- loop induction variable analysis and transformations