OpenAD Front Ends
F90 front end

The major portion for the Fortran90 front end come from the Open64 compiler in the version that is under development at Rice University. It creates an internal representation known as 'whirl' which is written into a file.  The following components are used by OpenAD:
  1. mfef90: the Fortran90 front end which produces output in 'whirl' format
  2. whirl2f: unparse code given in 'whirl' format back into Fortran90. This requires a module for whirl specific types called
 w2f__types.f

The translation from whirl to XAIF is done by OpenADFortTk (OpenAD Fortran Tookit). It provides several tools:
  1. 'whirl2xaif':
    • translation from whirl to XAIF
    • implements OpenAnalysis interfaces and passes analyses results on via XAIF
  2. 'xaif2whirl':
    • translation of the modified XAIF to whirl
  3. 'pp.pl': a Perl post processor which handles:
    • access to components of the active type
    • replacement of code fragments in subroutine template
    • inlining
C front end

For the C/C++ side the entire pipeline is encapsulated in single binary. The components used for parsing and unparsing from and to C/C++ are EDG / Sage3.