 |
The Most Advanced
Optimizing Compiler Technology
|
| |
For twenty-five 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-five years, Green Hills Software has been the leader in
optimizing compiler technology, making Green Hills optimizing compilers the world's
most popular embedded compilers.
|
No one is more dedicated to maximizing the reliability of your
electronic product than
Green Hills Software |