Git Product home page Git Product logo

psy's Introduction

PSyclone xDSL transformations

Needs to have ftn xDSL dialect in PYTHONPATH

./psy-opt -p "ftn-ast-to-ftn-dag" output.xdsl

./psy-opt -p "ftn-ast-to-ftn-dag" output.xdsl -t fortran

./psy-opt -p "ftn-ast-to-ftn-dag,bind-procedures,apply-gpu-analysis" output.xdsl -t fortran-openacc

./psy-opt -p "ftn-ast-to-ftn-dag,bind-procedures,apply-pgas-analysis" output.xdsl -t fortran

psy's People

Contributors

mesham avatar mcjamieson avatar

Stargazers

Jevin Sweval avatar

Watchers

Jevin Sweval avatar Tobias Grosser avatar Michel Steuwer avatar Gerard Gorman avatar  avatar

psy's Issues

PsyIR supported constructs

PsyIR completion:

FileContainer

Completed

Container

Completed

Routine

Working - be good to add boolean hasReturnVar function?

Assignment

Completed

BinaryOperation

Working - currently operations are string, be better to make as enum

UnaryOperation

Working - currently operations are string, be better to make as enum

NAryOperation

Not implemented

RangeNode

Not implemented

Literal

Implemented, but potential enhancements as don't consider string or character currently

IfBlock

Completed

Loop

Completed

Return

Completed

Clause

Not implemented

RegionDirective

Not implemented

StandaloneDirective

Not implemented

CallNode

Completed

Variable Declarations

Completed, but the way we handle arrays of derived types could be improved

Routine Access

Completed

Derived Type Declaration

In FTN DAG but not in PsyIR yet

Missing/planned tasks

A list of limitations/short term todos:

  • Stencil apply extracts each target into separate stencil regions, should keep these unified
  • For loops where initialise array members to 0 or 1, of stencil variables then used later on, these initialisations are not stencilised. This is an issue due to NUMA
  • Can not have temporaries in stencils currently
  • Better way to interface with C and other Fortran modules (e.g. MPI, dl_timer etc) needed, currently is done via intrinsics
  • Support derived types
  • Parse FIR (fix parsing in dialect)
  • Lint and pyright FIR
  • Other FIR types
  • Move FIR into dialects/experimental of xDSL
  • Pass allocatable arrays to procedures with their bounds intact
  • Support array bounds not starting at 1
  • Support range operator i.e. a(:,:,:)=.... (both in FIR and also stencil application)
  • Support integer to float conversion in arith dialect, that's currently not supported
  • Support more unary operators and nary operators
  • Reduce number of bridged regions (multiple stencils in a region), for instance "merge" these into one bridged region if there isn't any Fortran code in between them

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.