
















Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Material Type: Notes; Professor: Mahlke; Class: Advanced Compilers; Subject: Electrical Engineering And Computer Science; University: University of Michigan - Ann Arbor; Term: Winter 2002;
Typology: Study notes
1 / 24
This page cannot be seen from the preview
Don't miss anything!

















From last time - Dependences Dependences define precedence relations among operations for scheduling
Dependence edge latencies^ Y
Edge latency
= minimum number of cycles necessary
between initiation of the predecessor and successor inorder to satisfy the dependence
Register flow dependence, a
Æ
b
Register anti dependence, a
Æ
b
Register output dependence, a
Æ
b
Negative latency^ »
Dependence edge latencies (2)^ Y
Memory dependences, a
Æ
b (all types, flow, anti, output)
Hardware orders memory ops by order in MultiOp y^
Latency can be 0 with this support
Control dependences^ »
y^
Op b cannot issue until prior branch completed y^
latency = branch_latency
y^
Op a must be issued before the branch completes y^
latency = 1 – branch_latency (can be negative) y^
conservative, latency = MAX(0, 1-branch_latency)
Dependence graph properties - Estart^ Y
Estart = earliest start time, ASAP^ »
Lstart^ Y
Lstart = latest start time, ALAP^ »
Critical path^ Y
Critical operations = Operations with slack = 0^ »
Class problem (2)
Height-based priority^ Y
Height-based is the most common^ »
List scheduling (cycle scheduler)^ Y
Build dependence graph, calculate priority
Add all ops to UNSCHEDULED set
time = -
while (UNSCHEDULED is not empty)^ »
y^
op can be scheduled at current time? (are the resources free?)^ X^
Yes, schedule it, op.issue_time = time^ ±
Mark resources busy in RU_map relative to issue time ± Remove op from UNSCHEDULED/READY sets X^
No, continue
Cycle scheduling example (2)
3m
5m 2
2m
op^
pr 1
7m
Cycle scheduling example (3)
3m
5m 2
2m
op^
pr 1
7m
Operation scheduling example (1)
3m
5m 2
2m
op^
pr 1
7m
Operation scheduling example (2)
3m
5m 2
2m
op^
pr 1
7m