Compilers: Principles, Techniques, and Tools,
A. Aho, R. Sethi, and J. Ullman, Addison-Wesley, 1988.
(Chapters: 9.4, 10.4 Edition 1; Chapters 6.6, 9.6 Edition 2)
Class 3: (9/8/2021)
"Trace Selection for Compiling Large C
Applications to Microcode",
P. Chang and W. Hwu, MICRO-21, 1988 [pdf]
"The Superblock: An Effective Technique
for ILP Compilation ",
W. Hwu et al., Journal of Supercomputing, 1993 [pdf] (updated with more professional pdf)
Class 4: (9/13/2021)
"The Program Dependence Graph and Its Use in
Optimization", J. Ferrante, K. Ottenstein, and J. Warren, ACM
Transactions on Programming Languages and Systems, 1987. [pdf] (Its a
long paper, just look at the part on control dependences)
"On Predicated Execution",
J. Park and M. Schlansker, HP Labs Tech Report, HPL-91-58, 1991 [pdf]
Optional if you want to learn more about selective if-conversion: "Effective Compiler Support for Predicated
Execution using the Hyperblock", S. Mahlke et al., Proc. MICRO-25, 1992 [pdf]
Class 5: (9/15/2021)
Compilers: Principles, Techniques, and Tools, A. Aho, R. Sethi, and J. Ullman, Addison-Wesley, 1988. (Chapters: 10.5, 10.6 Edition 1; Chapters 9.2 Edition 2)
Class 6: (9/20/2021)
Compilers: Principles, Techniques, and Tools, A. Aho, R. Sethi, and J. Ullman, Addison-Wesley, 1988. (Chapters: 10.5, 10.6, 10.9, 10.10 Edition 1; Chapters 9.2, 9.3 Edition 2)
Class 7: (9/22/2021)
"Practical Improvements to the Construction and
Destruction of Static Single Assignment Form,"
P. Briggs, K. Cooper, T. Harvey, and L. Simpson, Software--Practice and Experience, 28(8), July 1998, pp. 859--891. [pdf]
Class 8: (9/27/2021)
Compilers: Principles, Techniques, and Tools, A. Aho, R. Sethi, and J. Ullman, Addison-Wesley, 1988. (Chapters: 9.9, 10.2, 10.3, 10.7 Edition 1; Chapters 8.5, 8.7, 9.1, 9.4, 9.5 Edition 2)
Class 9: (9/29/2021)
"Compiler Code Transformations for Superscalar-Based High-Performance
Systems",
S. Mahlke, W. Chen, J. Gyllenhaal, W. Hwu, P. Chang, and T. Kiyohara,
Proceedings of Supercomputing '92, Nov. 1992, pp. 808-817. [pdf]
Class 10: (10/4/2021)
"Machine Description Driven Compilers for EPIC
Processors", B. Rau, V. Kathail, and S. Aditya, HP Technical Report, HPL-98-40, 1998. [pdf] (Note this is a long paper,
but very informative to skim over for how to build a retargetable compiler)
Class 11: (10/6/2021)
"The Importance of Prepass Scheduling for Superscalar and Superpipelined
Processors", P. Chang et al., IEEE Transactions on Computers, 1995, pp. 353-370. [pdf]
Class 12: (10/11/2021)
"Iterative Modulo Scheduling: An Algorithm for
Software Pipelining Loops", B. Rau, MICRO-27, Dec. 1994, pp. 63-74. [pdf]
Classes 13&14: (10/13/2021, 10/27/2021)
"Iterative Modulo Scheduling: An Algorithm for
Software Pipelining Loops", B. Rau, MICRO-27, Dec. 1994, pp. 63-74. [pdf]
"Code Generation Schema for Modulo Scheduled
Loops", B. Rau, M. Schlansker, and P. Tirumalai, MICRO-25, Dec. 1992. [pdf]