"EPIC: An Architecture for Instruction-Level Parallel
Processors,"
M. Schlansker, B. Rau, HP Labs Tech Report, HPL-1999-111, 1999. [pdf] (OPTIONAL reading, look it over if you are more interested in VLIW/EPIC
processors)
Class 2: (9/12/2011)
Compilers: Principles, Techniques, and Tools,
A. Aho, R. Sethi, and J. Ullman, Addison-Wesley, 1988.
(Chapters: 9.4, 10.4)
Class 3: (9/14/2011)
"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]
Class 4: (9/19/2011)
"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]
Class 5: (9/21/2011)
"Effective Compiler Support for Predicated
Execution using the Hyperblock", S. Mahlke et al., Proc. MICRO-25, 1992 [pdf]
"Control CPR: A Branch Height Reduction Optimization for EPIC Processors",
M. Schlansker et al., Proc. PLDI-99, 1999 [pdf]
Class 6: (9/26/2011)
Compilers: Principles, Techniques, and Tools, A. Aho, R. Sethi, and J. Ullman, Addison-Wesley, 1988. (Sections: 10.5, 10.6, 10.9, 10.10)
Class 7: (9/28/2011)
"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: (10/3/2011)
Compilers: Principles, Techniques, and Tools, A. Aho, R. Sethi, and J. Ullman, Addison-Wesley, 1988. (Sections: 9.9, 10.2, 10.3, 10.7)
Class 9: (10/5/2011)
"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/10/2011)
"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)
Class 11: (10/12/2011)
"The Importance of Prepass Scheduling for Superscalar and Superpipelined
Processors", P. Chang et al., IEEE Transactions on Computers, 1995, pp. 353-370. [pdf]
No Class for Fall Break (10/17/2011)
Class 12: (10/19/2011)
"Sentinel Scheduling for VLIW and Superscalar
Processors", S. Mahlke et al., ASPLOS-5, Oct. 1992, pp. 238-247. [pdf]
Class 13: (10/24/2011)
"Iterative Modulo Scheduling: An Algorithm for
Software Pipelining Loops", B. Rau, MICRO-27, Dec. 1994, pp. 63-74. [pdf]
No Class due to Project Proposals (10/26/2011)
Class 14: (10/31/2011)
"Code Generation Schema for Modulo Scheduled
Loops", B. Rau, M. Schlansker, and P. Tirumalai, MICRO-25, Dec. 1992. [pdf]
Class 15: (11/2/2011)
"Register Allocation and Spilling Via Graph
Coloring,"
G. Chaitin, Proc. 1982 SIGPLAN Symposium on Compiler Construction, 1982. [pdf]
Class 16: (11/7/2011)
"Revisiting the Sequential Programming Model for Multi-Core,"
Matthew J. Bridges, Neil Vachharajani, Yun Zhang, Thomas Jablin, and David I. August, Proceedings of the 40th IEEE/ACM International Symposium on Microarchitecture, Dec. 2007. [pdf]
Class 17: (11/9/2011)
"Automatic Thread Extraction with Decoupled Software Pipelining,"
G. Ottoni, R. Rangan, A. Stoler, and D. I. August, Proceedings of the 38th IEEE/ACM International Symposium on Microarchitecture, Nov. 2005. [pdf]
No Reading Assignment due to midterm exam (11/14/2011)
No Reading Assignment due cancelled class (11/16/2011)
Class 18: (11/21/2011)
"Spice: Speculative Parallel Iteration Chunk Execution,"
Easwaran Raman, Neil Vachharajani, Ram Rangan, and David I. August,
Proceedings of the 2008 International Symposium on Code Generation and Optimization, Apr. 2008. [pdf]
No Reading Assignment due cancelled class (11/23/2011)
Class 19: (11/28/2011)
"Exploiting coarse-grained task, data, and pipeline parallelism in stream programs,"
M. Gordon, W. Thies, and S. Amarasinghe,
Proceedings of the 12th International Conference on Architectural Support for Programming Languages and Operating Systems, Oct. 2006. [pdf]
Class 20: (11/30/2011)
"Orchestrating the Execution of Stream Programs on Multicore Platforms,"
M. Kudlur, and S. Mahlke,
Proc. ACM SIGPLAN 2008 Conference on Programming Languages Design and Implementation,
Jun. 2008, pp. 114-124. [pdf]
No Reading Assignment due cancelled class (12/5/2011)
No Reading Assignment due cancelled class (12/7/2011)
Class 21: (12/12/2011)
"Program optimization space pruning for a multithreaded GPU,"
S. Ryoo, C. Rodrigues, S. Stone, S. Baghsorkhi, S. Ueng, J. Straton, and W. Hwu,
Proc. Intl. Sym. on Code Generation and Optimization, Mar. 2008. [pdf]