[Flang-dev] [F18/AST] Using clang tooling with f18

David Greene dag at cray.com
Fri Oct 12 14:03:32 EDT 2018


NOTE: I accidentally sent this to the wrong address for clang, so don't
reply to this thread.  Use the repost I just sent.

My apologies for the spam...

                             -David

David Greene <dag at cray.com> writes:

> Hi all,
>
> We've been having a bit of discussion over on flang-dev and wanted to
> bring in clang people to comment/brainstorm.  Here is the original post
> that kicked this off on flang-dev:
>
>   I was hoping f18 would lower to something akin to clang's AST.
>   Obviously clang's AST doesn't directly apply to Fortran but perhaps
>   some kind of common interface could exist so that clang tools could
>   work with Fortran codes. It would be great to have things like the
>   clang static analyzer and clang-doc for Fortran.
>  
>   Some tools will be language-specific of course but it seems like
>   Fortran and C-family languages share enough common concepts that some
>   tooling could work with both, given a common interface.
>   Language-specific tools would work with a more language-specific
>   interface.
>  
>   My impression from the presentation is that there's a lot more that
>   could be shared with clang. The messaging system and command-line
>   options infrastructure should be shareable, for example.  Maybe
>   there's already work being done in these areas to make f18 a
>   first-class LLVM project.
>
> Folks raised some concerns/areas to explore:
>
> - Can we represent various Fortran constructs with additions to the
>   clang AST?  For example:
>
>   * Implied DO loops
>   * Array syntax
>   * I/O statements (FORMAT, READ, NAMELIST, etc.)
>   * Array declarations (DIMENSION, etc.)
>   * Array syntax
>   * ...
>
> - Can clang's infrastructure handle various Fortran oddities like
>   non-reserved keyworks and the ability to redefine constants?
>
>   These may primarily be "dusty deck" issues and perhaps for tooling
>   purposes a 98% solution is ok.  F18 still needs to fully handle them,
>   of course.
>
> - Can we modify clang's AST and surrounding infrastructure to re-use
>   bits of clang tooling for f18 or should we create some kind of common
>   tooling interface for clang/f18 tooling that can also support
>   language-specific bits?
>
> - Can this be forward-looking for tooling for other languages (Rust,
>   Chapel, Go, etc.)?
>
> We pretty quickly came to a point where we needed input from clang
> folks, so here we are.  :)
>
>                                  -David
>
> _______________________________________________
> flang-dev mailing list
> flang-dev at lists.flang-compiler.org
> http://lists.flang-compiler.org/mailman/listinfo/flang-dev_lists.flang-compiler.org



More information about the flang-dev mailing list