Effects of Loop Unrolling and Loop Fusion on Register Pressure and Code Performance.

Abstract

Many of today's high-performance computer processors are super-scalar. They can dispatch multiple instructions per cycle and, hence, provide what is commonly referred to as instruction-level parallelism. This super-scalar capability, combined with software pipelining, can increase processor throughput dramatically. Achieving maximum throughput, however, is nontrivial. Compilers must engage in aggressive optimization techniques, such as loop unrolling, speculative code motion, etc., to structure code to take full advantage of the underlying computer architecture. The phase-ordering implications of these optimizations are not well understood and are the subject of continuing research. Of particular interest are optimizations that enhance instruction-level parallelism. Two of these are loop unrolling and loop fusion. These are source-level optimizations that can be performed by either the programmer or the compiler. These optimizations have dramatic effects on the compiler's instruction scheduler. Performed too aggressively, these optimizations can increase register pressure and result in costly memory references. This paper details experiments performed to measure the effects of these source-level code transformations and how they influenced register pressure and code performance.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Jun 01, 1997
Accession Number
ADA326916

Entities

People

  • Dale Shires

Organizations

  • United States Army Research Laboratory

Tags

Communities of Interest

  • C4I

DTIC Thesaurus Topics

  • Commerce
  • Compilers
  • Computer Architecture
  • Computer Programs
  • Computers
  • Computing System Architectures
  • Electronic Mail
  • Floating Point Operations
  • Information Operations
  • Instructions
  • Iterations
  • Military Research
  • Operating Systems
  • Optimization
  • Pipelines
  • Steady State
  • Throughput

Readers

  • Atmospheric Science / Meteorology, specifically Wind Wave Turbulence.
  • Parallel and Distributed Computing.