List of Tables

Introduction

Description of compiler phases.

Parsing

Nullable, FIRST, and FOLLOW for Grammar 3.15.
Predictive parsing table for Grammar 3.15. We omit the columns for num, /, and -, as they are similar to others in the table.
LR parsing table for Grammar 3.1.
LR(0) parsing table for Grammar 3.20.
LR(1) and LALR(1) parsing tables for Grammar 3.26.
LR parsing table for Grammar 3.5.
Conflicts of Table 3.35 resolved.

Activation Records

Formal parameters for g(x1, x2, x3) where x1 escapes.

Liveness Analysis

Liveness calculation following forward control-flow edges.
Liveness calculation following reverse control-flow edges.
X and Y are solutions to the liveness equations; Z is not a solution.

Object-Oriented Languages

Facilities for type testing and safe casting.

Dataflow Analysis

Quadruples expressed in the Tree language. Occurrences of a, b, c, f, L denote TEMP, CONST, or LABEL nodes only.
Gen and kill for reaching definitions.
Gen and kill for available expressions.
Transfer function for alias flow analysis.

Pipelining and Scheduling

(a) Tableau of software-pipelined loop schedule; there is a group of instructions fj with slope 0, another group abg with slope 2, and a third group cdeh with slope 3. (b) The smaller-slope groups are pushed down to slope 3, and a pattern is found (boxed) that constitutes the pipelined loop.