Skip to content

Latest commit

 

History

785 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fortran-transpiler

Fortran source-to-source compiler based on the LARA framework.

Previous Work

This compiler will be heavily inspired by Clava, a C/C++ source-to-source compiler that is also based on the LARA framework.

Clava already supports the following transformations:

Roadmap

The next steps for the Fortran source-to-source compiler are as follows:

  • Developing an AST-based IR to represent Fortran that is capable of generating Fortran code back from the IR [Java]
  • Dumper based on the Flang parser capable of outputting the necessary information to reconstruct an IR of the source code [C++]
  • Base API [TypeScript]
  • Library for Fortran transformations, which should include [TypeScript]:
    • Loop unrolling
    • Loop tiling
    • Loop interchange
    • Loop fission
    • Loop fusion
    • Loop-invariant code motion
    • Loop peeling
    • Loop strip-mining
    • OpenMP directive transformations. These tranformations should transform code with OpenMP directives not-yet supported by Flang into code with supported directives. The particular transformations to target are dependent of inputs from partners

Acknowledgments

This work was supported by EU funds through the Digital Autonomy with RISC-V in Europe (DARE) Specific Grant Agreement 1 (SGA1) Project under European High-Performance Computing Joint Undertaking (JU) under Agreement 101202459.

This work was developed in the context of research activities conducted at INESC TEC and the Faculty of Engineering of the University of Porto (FEUP).

About

Fortran source-to-source compiler based on the LARA framework.

Resources

Stars

2 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages