Preview Workflow

Viewing: ECE 466/ECE 566 : Compiler Optimization and Scheduling

Last approved: Thu, 01 Sep 2016 08:01:42 GMT

Last edit: Thu, 01 Sep 2016 08:01:42 GMT

Change Type
Major
ECE (Electrical and Computer Engineering)
466
006062
Dual-Level Course
Yes
566
Cross-listed Course
No
Compiler Optimization and Scheduling
Compiler Op & Sc
College of Engineering
Electrical & Computer Engineering (14ECE)
Term Offering
Fall Only
Offered Every Year
Fall 2015
Previously taught as Special Topics?
No
 
Course Delivery
Face-to-Face (On Campus)

Grading Method
Letter Grade Only
3
16
Contact Hours
(Per Week)
Component TypeContact Hours
Lecture3.0
Course Attribute(s)


If your course includes any of the following competencies, check all that apply.
University Competencies

Course Is Repeatable for Credit
No
 
 
James Tuck
Associate Professor
Full

Open when course_delivery = campus OR course_delivery = blended OR course_delivery = flip
Enrollment ComponentPer SemesterPer SectionMultiple Sections?Comments
Lecture4040NoN/A
Open when course_delivery = distance OR course_delivery = online OR course_delivery = remote
Prerequisites: ECE 209 or competency in any machine language programming and ECE 309 or CSC 316 or proficiency in either C or C++ programming using advanced data structures, like hash tables and linked lists.
Is the course required or an elective for a Curriculum?
No
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.

Prerequisites: Since the last revision of the course, ECE department started offering ECE 209, a more appropriate pre-req than ECE 306, the previous pre-req.


Catalog description: Represents the current contents of the course.


Course Learning Objectives: Represent the current contents of the course.


No

Is this a GEP Course?
No
GEP Categories

Humanities Open when gep_category = HUM
Each course in the Humanities category of the General Education Program will provide instruction and guidance that help students to:
 
 

 
 

 
 

 
 

 
 

 
 

Mathematical Sciences Open when gep_category = MATH
Each course in the Mathematial Sciences category of the General Education Program will provide instruction and guidance that help students to:
 
 

 
 

 
 

 
 

Natural Sciences Open when gep_category = NATSCI
Each course in the Natural Sciences category of the General Education Program will provide instruction and guidance that help students to:
 
 

 
 

 
 

 
 

Social Sciences Open when gep_category = SOCSCI
Each course in the Social Sciences category of the General Education Program will provide instruction and guidance that help students to:
 
 

 
 

 
 

 
 

 
 

 
 

Interdisciplinary Perspectives Open when gep_category = INTERDISC
Each course in the Interdisciplinary Perspectives category of the General Education Program will provide instruction and guidance that help students to:
 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

Visual & Performing Arts Open when gep_category = VPA
Each course in the Visual and Performing Arts category of the General Education Program will provide instruction and guidance that help students to:
 
 

 
 

 
 

 
 

 
 

 
 

Health and Exercise Studies Open when gep_category = HES
Each course in the Health and Exercise Studies category of the General Education Program will provide instruction and guidance that help students to:
 
 

 
 

 
 

 
 

 
&
 

 
 

 
 

 
 

Global Knowledge Open when gep_category = GLOBAL
Each course in the Global Knowledge category of the General Education Program will provide instruction and guidance that help students to achieve objective #1 plus at least one of objectives 2, 3, and 4:
 
 

 
 

 
Please complete at least 1 of the following student objectives.
 

 
 

 
 

 
 

 
 

 
 

US Diversity Open when gep_category = USDIV
Each course in the US Diversity category of the General Education Program will provide instruction and guidance that help students to achieve at least 2 of the following objectives:
Please complete at least 2 of the following student objectives.
 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

Requisites and Scheduling
 
a. If seats are restricted, describe the restrictions being applied.
 

 
b. Is this restriction listed in the course catalog description for the course?
 

 
List all course pre-requisites, co-requisites, and restrictive statements (ex: Jr standing; Chemistry majors only). If none, state none.
 

 
List any discipline specific background or skills that a student is expected to have prior to taking this course. If none, state none. (ex: ability to analyze historical text; prepare a lesson plan)
 

Additional Information
Complete the following 3 questions or attach a syllabus that includes this information. If a 400-level or dual level course, a syllabus is required.
 
Title and author of any required text or publications.
 

 
Major topics to be covered and required readings including laboratory and studio topics.
 

 
List any required field trips, out of class activities, and/or guest speakers.
 

No new resources required

This course is designed to give the senior student an in-depth understanding of the workings of a performance-oriented compiler. This goal is achieved by detailed study of real compiler techniques and via quantitative tradeoff analysis through programming and experimentation. The techniques learned are also useful for hand optimization of code.


Lecture will be used either to teach the high level concepts or to provide tutorials for important programming concepts related to compiler design.   To make room for programming tutorials in class, some material may be recorded and made available online for viewing outside of class.


The concepts presented in lecture will be reinforced through short handwritten home works and programming projects that require students to apply what they have learned by implementing a compiler or sub-component of a compiler.  The programming projects are challenging and are designed to teach students the skills needed to acquire a position as a compiler engineer.  The last programming project will be due during Dead Week.


Student Learning Outcomes

  1. Describe the fundamental principles of compiler design and the purpose of compiler optimizations.

  2. Describe technical approaches for program representation, scalar optimization, dataflow analysis, instruction selection, scheduling, and register allocation.

  3. Apply concepts in program representation, scalar optimization, dataflow analysis, scheduling, and register allocation to optimize code by hand.

  4. Apply principles of compiler design to implement in code a compiler or sub-component of a compiler.

  5. Describe and apply techniques for evaluating the performance of a program before and after optimization.


ECE 566 specific learning outcomes:



  1. Evaluate the similarities and differences among common optimizations and transformations.

  2. Design, implement, and validate compiler optimizations and transformations.


Evaluation MethodWeighting/Points for EachDetails
Project45%There will be approximately 7 programming assignments. These assignments are designed to teach one to become a compiler engineer and will provide one with the skills needed to apply for jobs as a compiler engineer in industry.

ECE 566 students will implement projects with more requirements and stricter testing and grading that are consistent with the additional ECE 566 specific learning outcomes. For example, ECE 566 may be required to comprehensively implement an optimization covered in lecture, while ECE 466 students only implement part of the optimization.

Also, the ECE 566 students code will need to validate their implementations. Their code will be tested on secret inputs that are not made available to the students in advance, so they must spend considerable effort validating their code to ensure it will pass the secret test cases. However, ECE 466 students are given all the test cases upfront, so that they can spend less effort testing and validating their code.

ECE 466 students will be encouraged to work in teams of two. This significantly reduces the workload an individual student. ECE 566 students must complete the project individually.

The last Programming Project will be due during dead week.
Homework10%There will be approximately four homework assignments this semester. It may be a required post on Piazza, a short problem set, or a few quiz questions on Moodle. All graded homework is to be done individually and will be submitted electronically. While you are permitted to consult with other students, the instructor, and the TAs to formulate your answers, it is crucial that you know how to do every homework assignment on your own.
Exam15%The mid-term exam will be held during a regularly scheduled lecture. It includes all material covered previously in the semester. It may draw from material covered in lecture, in homework assignments, or in programming projects.

ECE 566 students are given additional questions that evaluate the ECE 566 specific learning outcomes.
Final Exam30%The final exam is comprehensive and may cover all topics and assignments.

ECE 566 students are given additional questions that evaluate the ECE 566 specific learning outcomes.
TopicTime Devoted to Each TopicActivity
See attached schedule
I uploaded the course schedule as a spreadsheet instead of entering line-by-line. Please let me know if this format is not acceptable.

mlnosbis 4/15/2016: No overlapping courses. No consultation required for this course revision.

ghodge 4/15/2016 Ready for ABGS reviewers. Comment: Is more detailed describing the between between undergraduate and graduate level needed in the syllabus.

ABGS Reviewer Comments:
-The CAF does not illustrate how graduate requirements are different from undergraduate requirements. The only indication is the statement "Students registered for ECE 466 will have less requirements on each project than the students in 566..."

ghodge 4/21/2016 Ask instructor to clearly state differences between graduate and undergraduate. Show difference in Student Evaluation Methods above on CIM form and in syllabus. Suggest editing student learning outcomes to include both graduate and undergraduate specific outcomes.

ghodge 4/22/2016 Ready for ABGS meeting
gbyrd (Wed, 21 Oct 2015 19:03:23 GMT): Typo in Catalog Description: "tade-offs" should be "trade-offs".
Key: 4092