The Most Advanced Optimizing Compiler Technology

 

For twenty-eight years, Green Hills Software has consistently beaten every competitor on published compiler benchmarks. This has been made possible by Green Hills Software's continuous commitment to delivering the most advanced compiler optimization technology.

Basic Compiler Optimizations

Green Hills optimizing compilers perform all standard compiler optimizations:

  • Collapse constant expressions
  • Reduce constant multiplies to shifts and adds
  • Short circuit boolean evaluation
  • Dead code elimination
  • Peephole optimizations

Common Compiler Optimizations

Green Hills Software's optimizing compilers perform all of the more advanced compiler optimizations implemented by competing compilers:

  • Register allocation by coloring
  • Pipeline optimizations
  • Put small structs and unions in registers
  • Common subexpression elimination
  • Pass arguments in registers
  • Global constant & value propagation
  • Allocate data by size to minimize wasted space
  • Align data to maximize performance
  • Alpha & omega motion

Advanced Compiler Optimizations

Green Hills optimizing compilers also perform advanced global optimizations rarely found in competing compilers, including:

  • Allocate global variable and values in registers
  • Remove tail recursion
  • Reduce constant divides to constant multiplies
  • Delete unused functions
  • Remove common code across functions
  • Reorder functions to optimize cache hits
  • Optimize the use of conditional instructions
  • Use of base registers to minimize offsets

Loop Optimizations

Green Hills optimizing compilers have the most advanced loop optimization technology:

  • Subscript strength reduction
  • Loop invariant removal
  • Register caching over loops
  • Loop unroller
  • Loop rotation
  • Use of hardware loop counter

Vectorizer

Green Hills optimizing compilers include the most advanced supercomputer vectorization techniques:

  • Loop interchange
  • Strip mining
  • Loop blocking
  • Automatic utilization of prefetch instructions
  • Common loops recognition: vector dot product, vector times matrix, matrix time matrix, Real and complex FFT, Real and complex convolution, vector reduction: sum, product, min, max, minabs, maxabs

DSP Optimizations

Green Hills optimizing compilers implement all of the optimizations required for digital signal processors:

  • Zero overhead loops
  • Modulo array addressing
  • Use of multiply and add instructions
  • Saturated signed and unsigned instructions
  • Multiple operations per instruction
  • Chained operations and streaming memory access
  • Simultaneous loads/stores to different memory banks
  • Reverse bit indexing for fast fourier transform
  • FFT butterfly instruction
  • Signed and unsigned fractional datatypes
  • Recognize common loops

Function Inlining

Green Hills optimizing compilers implement the most advanced function inlining:

  • Manual inlining
  • Automatic inlining
  • Inline across programming languages
  • Automatic inlining across source files

Peephole Optimizations

Green Hills optimizing compilers perform many machine dependent peephole optimizations:

  • Expression tree reshaper
  • Inline builtin functions
  • Renumber registers to delete moves
  • Automatically generate multiply and add instructions
  • Eliminate redundant loads and stores
  • Use bit field extract/insert
  • Merge bitfield loads and stores
  • Branch to branch optimizations
  • Tail merging
  • Code hoisting
  • Optimize function entry and exit
  • Use of autoincrement/decrement addressing modes

Multiple Issue Instruction Pipeline Scheduling

The Green Hills instruction scheduler can model many different pipelined multiple instruction issue multiple data stream architectures:

  • Multiple instruction assembly for parallel execution
  • Multiple instruction issue (superscalar)
  • Pipeline functional units (superpipelined)
  • Multiple functional units (parallel execution)
  • Very long instruction words (VLIW)

For twenty-eight years, Green Hills Software has been the leader in optimizing compiler technology, making Green Hills optimizing compilers the world's most popular embedded compilers.

© 1996-2014 Green Hills Software Trademark & Patent Notice