Cache Optimizations & the Loop Nest Optimizer


Click here to start

Return to PowerLearn Home Page

Table of Contents

Cache Optimizations & the Loop Nest Optimizer

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

PPT Slide

PPT Slide

PPT Slide

PPT Slide

PPT Slide

Software Pipelining (SWP)


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

Vector Update Summary

Vector Update Summary

Author: Frank Kampe 


Other information: