From Open64 Wiki

Jump to: navigation, search

Major Changes in the Open64 5.0 Release

Frontend/infrastructure/tool changes:

  o Added configure options to allow disabling of IPA or shared library support.
  o Added support for VCG graphs for procedure CFGs.
  o Addressed various C standard compliant problems related to "volatile".
  o Improved debugging by allowing the allocation of stack space for unused variables during -g
  o Added triaging support for field sensitive alias analysis.
  o Implemented ZDL (Zero-Delay-Loop) feature for DSP.
  o Extended intrinsic support for IA64.

New/improved optimizations:

  o Enabled more if-conversion.
  o Enabled CFLOW optimization within EH regions.
  o Avoided creating unnecessary region exit blocks.
  o Extended proactive loop optimizations.
  o Added inlining support for field sensitive alias analysis.
  o Implemented multi-target function pointer inlining.
  o Improved -O3 floating point performance.
  o Added frame-pointer optimization.
  o Improved optimization for structures:
    - avoided unnecessary structure copies;
    - added copy-in/copy-out optimization.
  o Improved vectorization:
    - introduced an object-oriented framework for SIMD expressions;
    - more vectoriable operators;
    - loops with small trip count;
    - reduced vectorization overhead;
    - eliminated unnecessary remainder loops;
    - if statement vectorization;
    - code motion of vectorizable loop to innermost position.
  o Improved optimization for C++ programs:
    - multi-target icall promotion;
    - devirtualization with overridden map.

Code generation/architecture support:

  o Improved SIB (Scaled-Index-Base) addressing mode code generation.
  o Improved support and code generation for SSE 4.x, AVX, and FMA instructions.
  o Improved register pressure based scheduling.
  o Added interior pointer optimization.
  o Improve padding and code alignment of basic blocks.
  o Implemented best fit loop unrolling algorithm.
  o Added comprehensive support and tuning for the Bulldozer processor.

Special Note

The following two features are now officially deprecated:

  1. gcc 3.x frontend support
  2. IRIX support

They will no longer be supported after this release.

Personal tools