Dr. James Tuck
Electrical and Computer Engineering
ECE 566 Compiler Optimization and Scheduling
3 Credit Hours
Provide insight into current compiler designs dealing with present and future generations of high performance processors and embedded systems. Introduce basic concepts in scanning and parsing. Investigate in depth program representation, dataflow analysis, scalar optimization, memory disambiguation, and interprocedural optimizations. Examine hardware/software tade-offs in the design of high performance processors, in particular VLIW versus dynamically scheduled architectures. Investigate back-end code generation techniques related to instruction selection, instruction scheduling for local, cyclic and global acyclic code, and register allocation and its interactions with scheduling and optimization.
In order to take this class, you must have:
–completed Computer Systems Programming (NC State ECE 209) or demonstrated competence in any machine programming language OR
–completed Data Structures (NC State ECE 309 or CSC 316) or deonstrated competence with programming data structures and object oriented programming OR
–proficiency in either C or C++ programming using advanced data structures, like hash tables and linked lists.
- Provide insight into current compiler designs dealing with present and future generations of high performance processors and embedded systems.
- Describe the parts of a compiler and what they do: frontend, middle-end, and back-end.
- Describe dataflow analysis, optimizations, classical and parallelism enhancing optimizations, instruction scheduling, and register allocation; manually apply them to programs.
- Implement a simple compiler and compiler optimizations in LLVM (llvm.org).
–Primary course content will be available in the form of course notes available on the webpage.
—Engineering a Compiler, Second Edition, by Keith Cooper and Linda Torczon, Morgan Kaufman Publishers, ISBN: 1-55860-698-X.
**The bookstore is making online versions of the book available for purchase. These will also be acceptable.
Computer and Software Requirements
Please review minimum computer specifications recommended by NC State University and Engineering Online.