sm - princeton university computer science · pdf fileregister allocation vs. splitting live...

7
1 Topic 12: Acyclic Instruction Scheduling COS 320 Compiling Techniques Princeton University Spring 2015 Prof. David August The Back End Scheduling Scheduling

Upload: buinga

Post on 19-Mar-2018

219 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: sm - Princeton University Computer Science · PDF fileRegister allocation vs. splitting live ranges rl Branch TRUE : rl 10, 1 TRUE A data dependence is a constraint on scheduling arising

1

Topic 12: Acyclic Instruction Scheduling

COS 320

Compiling Techniques

Princeton University Spring 2015

Prof. David August

The Back End

Scheduling

Scheduling

Page 2: sm - Princeton University Computer Science · PDF fileRegister allocation vs. splitting live ranges rl Branch TRUE : rl 10, 1 TRUE A data dependence is a constraint on scheduling arising

Instruction Level Parallelism

Data Dependence

Data Dependence

False Dependence

Page 3: sm - Princeton University Computer Science · PDF fileRegister allocation vs. splitting live ranges rl Branch TRUE : rl 10, 1 TRUE A data dependence is a constraint on scheduling arising

Control Dependence

Control Dependences

Dependences

Resources

Page 4: sm - Princeton University Computer Science · PDF fileRegister allocation vs. splitting live ranges rl Branch TRUE : rl 10, 1 TRUE A data dependence is a constraint on scheduling arising

Pipelining

Resource Map

Scheduling

Heuristic: List Scheduling

Page 5: sm - Princeton University Computer Science · PDF fileRegister allocation vs. splitting live ranges rl Branch TRUE : rl 10, 1 TRUE A data dependence is a constraint on scheduling arising

List Scheduling

List Scheduling

List Scheduling Priority

Hardware Scheduling

Page 6: sm - Princeton University Computer Science · PDF fileRegister allocation vs. splitting live ranges rl Branch TRUE : rl 10, 1 TRUE A data dependence is a constraint on scheduling arising

Expression Reformulation

Loop Unrolling

Renaming

Accumulator Expansion

Page 7: sm - Princeton University Computer Science · PDF fileRegister allocation vs. splitting live ranges rl Branch TRUE : rl 10, 1 TRUE A data dependence is a constraint on scheduling arising

Accumulator Expansion

Induction Variable Elimination

Loop Unrolling and Optimization

Pipelining