# List of Tables

## Introduction

- Table 1.2: Description of compiler phases.

## Parsing

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

## Activation Records

- Table 6.4: Formal parameters for
*g*(*x*_{1}, *x*_{2}, *x*_{3}) where *x*_{1} escapes.

## Liveness Analysis

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

## Object-Oriented Languages

- Table 14.6. Facilities for type testing and safe casting.

## Dataflow Analysis

- Table 17.1: Quadruples expressed in the
`Tree` language. Occurrences of *a, b, c, f, L* denote TEMP, CONST, or LABEL nodes only.
- Table 17.2: Gen and kill for reaching definitions.
- Table 17.4:
*Gen* and *kill* for available expressions.
- Table 17.10: Transfer function for alias flow analysis.

## Pipelining and Scheduling

- Table 20.6: (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.

Comments