Chapter 8: Code Generation
1. Issues in Code Generator Design
- What are the issues in the design of a code generator?[2020, 2016, 2014, 2013, 2011]
- Or, Illustrate the issues in the design of a code generator.[2018]
- Or, How would you solve the issues in the design of code generators?[2017]
- Or, Explain the problems in code generation.[2016]
2. Directed Acyclic Graph (DAG)
- What is DAG? What are the applications of DAG? Write the algorithm for constructing a DAG.[2021, 2018, 2015, 2013, 2011]
3. Basic Blocks and Flow Graphs
- What do you mean by basic blocks and flow graphs?[2015]
4. Transformations on Basic Blocks
- Describe the structure-preserving transformations on a basic block.[2016, 2013, 2011]
5. Simplifications
- 
Draw a DAG for the following basic block: iota := b + c b := a - d c := b + c d := a - d[2020, 2018] 
- 
What is DAG? Construct the DAG for the following basic block: D := B^ * C E := A + B B := B^ * C A := E - D[2016] 
- 
Define DAG. Construct a DAG and discover the sequence of instructions for: a + a^ * (b - c) + (b - c) * d[2017] 
- 
Construct the syntax tree and DAG for the expression: 11 = b^ * -c + b^ * -c[2015, 2014] 
- 
Prepare and eliminate the common sub-expression from the basic block: iota := b + c b := a - d c := b + c d := a - d[2017]