Improvement Opportunities
Compiler Optimization Techniques
Scalar Architecture: Cache System
Scalar Architecture: Cache Organization
Problems of Scalar Optimization
Loop Nest Optimizer
Array Indexing
Data Storage in Memory
Loop Interchange: FORTRAN
Index Reversal
The Significance of Loop Interchange
Loop Interchange in C
Array Placement Effects
Direct-Mapped Caches: Thrashing
Set-Associative Caches
Array Padding: Example
Maxwell Code Example
Maxwell Example - continued
Dangers of Array Padding
Variable Length Arrays (VLA)
Loop Unrolling
Prefetch Data from Memory
Outer Loop Unrolling
PPT Slide
Blocking for Cache (tiling)
Blocking: Example
Blocking Example: Transpose
Loop Fusion
Loop Fusion in Array Assignments
Loop Fission
LNO: Gather-Scatter
LNO: Vector Intrinsics
Vector Intrinsics: Performance
Data Dependence Classification
Data Dependence in Loops
Specifying the Dependency Rules
The IVDEP Directive
Three Types of IVDEP Directive
The Argument Alias Problem
Aliases: the Optimizer Options
The restrict Keyword
Alias in Storage Allocation
Procedure Inlining
Software Pipelining (SWP)
Summary
Case Study: Vector Update
Vector Update Code
Vector Update: Stride Analysis
Vector Update: Loop Interchange
Vector Update: DAXPY Form
Vector Update: 2D Form
Vector Update: Compiler Opt
Vector Update Summary
Email: u2591@sgi.com
Other information: 281-493-8372