Lecture 9
Induction
Induction Variables and
Strength Reduction
I.
Overview of optimization
II. Algorithm to find induction variables
Carnegie Mellon
Todd C. Mowry
15-745: Strength Reduction
1
Example
Lecture 10
Partial Redundancy Elimination
Global code motion optimization
Remove partially redundant expressions
Loop invariant code motion
Can be extended to do Strength Reduction
No loop analysis
Lecture 11
Lazy Code Motion
I.
Forms of redundancy (quick review)
global common subexpression elimination
loop invariant code motion
partial redundancy
II. Lazy Code Motion Algorithm
Al
Mathematical c
Lecture 12
Region-Based Analysis
I. Basic Idea
II. Algorithm
III. Optimization and Complexity
IV. Comparing region-based analysis with iterative
algorithms
algorithms
Reading: ALSU 9.7
Carnegie Mellon
Lecture 15
Register Allocation & Spilling
I. Introduction
II. Abstraction and the Problem
III. Algorithm
IV. Spilling
Reading: ALSU 8.8.4
Carnegie Mellon
Todd C. Mowry
15-745: Register Allocation
1
I.
Lecture 16
Register Allocation:
Coalescing
(Slides courtesy of Seth Goldstein and David Koes.)
Carnegie Mellon
Todd C. Mowry
15-745: Register Spilling
1
Review: An Example, k=4
v <-
1
w <-
v+3
x <-
w+
Lecture 18
List Scheduling & Global Scheduling
Reading: Chapter 10.3-10.4
Carnegie Mellon
Todd C. Mowry
15745: List & Global Scheduling
1
Review: The Ideal Scheduling Outcome
What prevents us from ac
Lecture 19
Software Pipelining
I .
Introduction
II. Problem Formulation
III. Algorithm
Carnegie Mellon
Todd C. Mowry
15-745: Software Pipelining
1
I. Example of DoAll Loops
Machine:
Per clock: 1 read