{[ promptMessage ]}

Bookmark it

{[ promptMessage ]}

lecture-09-6up

# lecture-09-6up - Lecture Overview Introduction Constraints...

This preview shows pages 1–3. Sign up to view the full content.

Lecture Overview Introduction Constraints List Scheduling Conclusion Introduction Scheduling (Part 1) Introduction and Acyclic Scheduling CS 380C: Advanced Compiler Techniques Thursday, October 11th 2007 Lecture Overview Introduction Constraints List Scheduling Conclusion Lecture Overview Code Generator Back end part of compiler (code generator) Instruction scheduling Register allocation Instruction Scheduling Input: set of instructions Output: total order on that set Lecture Overview Introduction Constraints List Scheduling Conclusion Lecture Outline Lectures 1 Introduction and acylic scheduling (today) 2 Software pipelining (Tuesday 23) Today Definition of instruction scheduling Constraints Scheduling process Acylic scheduling: list scheduling Lecture Overview Introduction Constraints List Scheduling Conclusion Introduction to Instruction Scheduling Context Backend part of the compiler chain (code generation) Inputs: set of instructions (assembly instructions) Outputs: a schedule Set of scheduling dates (one date per instruction) Total order Goal Minimize the execution time (number of cycles) Di ff erent possible objective functions to minimize: Power consumption . . . Lecture Overview Introduction Constraints List Scheduling Conclusion Constraints Is it possible to generate any schedule? Lecture Overview Introduction Constraints List Scheduling Conclusion Constraints Is it possible to generate any schedule? Example: a = b + c ; d = a + 3 ; e = f + d ; Possibility to change instruction order?

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
Lecture Overview Introduction Constraints List Scheduling Conclusion Constraints Is it possible to generate any schedule? Example: a = b + c ; d = a + 3 ; e = f + d ; Possibility to change instruction order? No, because of data dependences Flow dependences on a and d Lecture Overview Introduction Constraints List Scheduling Conclusion Constraints Data dependences enforce a partial order for the final schedule Other types of constraints? Lecture Overview Introduction Constraints List Scheduling Conclusion Constraints Data dependences enforce a partial order for the final schedule Other types of constraints? Example: a = b + c ; d = e + f ; Target architecture with 1 ALU Lecture Overview Introduction Constraints List Scheduling Conclusion Constraints Data dependences enforce a partial order for the final schedule Other types of constraints? Example: a = b + c ; d = e + f ; Target architecture with 1 ALU Impossible to use the same functional unit concurrently Resource constraints Lecture Overview Introduction Constraints List Scheduling Conclusion Constraints Data dependences enforce a partial order for the final schedule Other types of constraints? Example: a = b + c ; d = e + f ; Target architecture with 1 ALU Impossible to use the same functional unit concurrently Resource constraints Constraints Two types of constraints: data dependences and resource usage Lecture Overview Introduction Constraints List Scheduling Conclusion Constraints influencing Instruction Scheduling Constraints Data dependences Resource constraints Rule The final schedule must respect these constraints
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}