Open64 Compiler
Submitted By:
Maria Akther
ID: 083-20-119
Dept.:Computer Science
Daffodil International University
Submitted To:
Mohammad ...
Introduction
Open64 is an open source, optimizing compiler tool for
Intel Itanium platform. It was released by SGI (Silico...
Overview
 Developer(s):
Silicon Graphics, Inc., Institute of Computing Technology, Chinese Academy of
Sciences, Hewlett P...
Possible source languages compilation
Open64 supports Fortran 77/95 and C/C++, as well as the shared
memory API OpenMP. It...
Architecture of the compiler
Its major components are:
 The frontend for C/C++ and Fortran 77/90,
 Interprocedural analy...
Figure
Program Representations
 Five levels of intermediate representation (IR) are used in this
compiler to serve as the common interface among all the...
2.Roles of IPA :
The only optimization component operating at program scope
Analysis: collect information from entire prog...
The Components and the Phases
Front-End Parsing / Very High Level Whirl
IPA/
Inliner
Inlines procedures /VHW, alias analys...
Open64 Research Activities
 UPC – UC Berkeley
 OpenMP & Tools – U of Houston
 EPS, a global scheduler –SNU
 Static ana...
Limitations
 C/C++ frontend was adopted from gcc 2.96, which is a
troublesome unofficial gcc compiler introducing many
co...
Planned Items for x86 Open64 Compiler
• work on processor optimizations/tuning
• improve the vectorizer
• Improve (or full...
Thank You
Upcoming SlideShare
Loading in...5
×

Open64 compiler

705

Published on

Open64 is an open source, optimizing compiler tool for Intel Itanium platform. It was released by SGI (Silicon Graphics, Inc) company and now mostly serves as a research platform for compiler and computer architecture research groups

Published in: Education, Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
705
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Open64 compiler

  1. 1. Open64 Compiler
  2. 2. Submitted By: Maria Akther ID: 083-20-119 Dept.:Computer Science Daffodil International University Submitted To: Mohammad Zaidul Karim Senior Lecturer Dept. of CSE,CS &CIS Daffodil International University
  3. 3. Introduction Open64 is an open source, optimizing compiler tool for Intel Itanium platform. It was released by SGI (Silicon Graphics, Inc) company and now mostly serves as a research platform for compiler and computer architecture research groups.
  4. 4. Overview  Developer(s): Silicon Graphics, Inc., Institute of Computing Technology, Chinese Academy of Sciences, Hewlett Packard, University of Delaware  Initial release: 2002  Stable release: 5.0 / November 10, 2011 Operating system: Cross-platform, Linux  Type: Compiler  License: GNU General Public License  Website: http://www.open64.net/
  5. 5. Possible source languages compilation Open64 supports Fortran 77/95 and C/C++, as well as the shared memory API OpenMP. It has the capability to conduct high-quality interprocedural analysis, data flow analysis, data dependence analysis and array region analysis. Possible targeted computer architectures For the Itanium and x86-64 microprocessor architectures
  6. 6. Architecture of the compiler Its major components are:  The frontend for C/C++ and Fortran 77/90,  Interprocedural analysis (IPA),  Loop nest optimizer (LNO),  Global optimizer (WOPT) and  Code generator (CG).
  7. 7. Figure
  8. 8. Program Representations
  9. 9.  Five levels of intermediate representation (IR) are used in this compiler to serve as the common interface among all the frontend and backend components. This IR is named WHIRL.  1. Front Ends:The C and C++ front ends are based on GNU technology; the Fortran90/95 front end is the SGI Pro64 (Cray) Fortran front end. Each of these produces a very high level IR for the input program units, stored as a so-called “.B” file. This representation is available for the subsequent phases.
  10. 10. 2.Roles of IPA : The only optimization component operating at program scope Analysis: collect information from entire program Optimization: performs optimizations across procedure boundaries Depends on later phases for full optimization effects Supplies cross-file information for later optimization phases 3. Loop Nest Optimizations:  Transformations for Data Cache  Transformations that help other optimizations  Vectorization and Parallellization
  11. 11. The Components and the Phases Front-End Parsing / Very High Level Whirl IPA/ Inliner Inlines procedures /VHW, alias analysis, array section, code layout, procedure cloning, dead function/variable elimination, constant propagation Loop Nest Optimizer Loop Fusion, Fission, Unrolling, Jam, Interchange, Peeling, Tiling, Vector Data Prefetching, Loop Dependence Analysis Global Optimizer Traditional Optimizations, SSA Code Generation Generate the code
  12. 12. Open64 Research Activities  UPC – UC Berkeley  OpenMP & Tools – U of Houston  EPS, a global scheduler –SNU  Static analysis / performance advisory – Google  Cyclops – University of Delaware  Speculative Parallel Threading – UMN
  13. 13. Limitations  C/C++ frontend was adopted from gcc 2.96, which is a troublesome unofficial gcc compiler introducing many compatibility problems.  It can only generate binary code for Itanium platform. And the worst thing for it is that there is no clear goal for its existence and there are so many separated branches based on it.
  14. 14. Planned Items for x86 Open64 Compiler • work on processor optimizations/tuning • improve the vectorizer • Improve (or fully utilize) alias analysis framework • Improve Open64 code generation • Improve robustness of compiler • Plans to support the new C and C++ standards which are in final stage of approval • Static analysis (intra and cross file) • Runtime checks (uninitialized variables, array bounds, checks for multithreading) • Multi-threading -Data race detection
  15. 15. Thank You

×