[flang-dev] Flang Biweekly Sync - Notes from August 21, 2019 call

Gary Klimowicz via flang-dev flang-dev at lists.llvm.org
Wed Aug 21 14:38:20 PDT 2019


Flang team,

Here are the notes from the August 21st, 2019 Flang biweekly call. Updates are in bold.

Please be sure to let us know if you have any questions and agenda topics for the next call.

The next Flang biweekly call will be September 4th, 2019 at 8:30 AM Pacific Time.

Thank you.

Gary Klimowicz


Agenda

  *   Flang Community Technical Call – Recap and next topic: Array descriptors probably
  *   Fortran Standards Committee update
  *   F18 development update
  *   Flang development update


Highlights


  *   Supercomputing 2019
     *   Hal submitted for an LLVM BoF session at SC 2019.
     *   There won’t be an LLVM in HPC Workshop this year.


  *   Fortran Standards Committee
     *   WG5/PL22.3 meeting (J3 #219) held in Tokyo the week of August 5th.
     *   Goal was to set the work item agenda for Fortran 202X.
     *   Desire is to have a small update to the standard.
     *   Items include standardizing behavior that is already implemented across most compilers; enhancing rank-agnostic programming; improvements and cleanup items for I/O; reductions in DO CONCURRENT.
     *   Larger items (generic programming especially) will continue to be investigated, but were considered too large or ill-defined for inclusion in F202X. This may result in a plan for F202Y (not F203X).
     *   See meeting notes and documents at https://j3-fortran.org/.


  *   Flang Community Technical Biweekly Call
     *   Hal Finkel is hosting this call on Bluejeans<https://bluejeans.com/625064848>, Wednesdays 8:30 Pacific Time, the weeks alternating with this call. The notes for all these calls can be found in Google Docs here<https://docs.google.com/document/d/1Z2U5UAtJ-Dag5wlMaLaW1KRmNgENNAYynJqLW2j2AZQ/>.
     *   The August 14th call, Robyn Sampson of Intel presented on aliasing information and LLVM enhancements.
     *   The next call is scheduled for August 28th, 8:30 AM PDT. The scheduled agenda topic is array descriptors.
     *   Hal has a Doodle poll for potentially changing the time of this call: https://doodle.com/poll/66m8mvavg7ag2t49. The current front-runner is Tuesday, 9:00 AM Pacific time. Please make your preferences known via this link.


  *   F18 as an LLVM project
     *   The LLVM-hosted flang-dev mailing list has been set up. Subscribe at https://lists.llvm.org/cgi-bin/mailman/listinfo/flang-dev.
     *   We will continue to support the original flang-dev at lists.flang-compiler.org<mailto:flang-dev at lists.flang-compiler.org> and flang-sync at lists.flang-compiler.org<mailto:flang-sync at lists.flang-compiler.org> and through August 2019. Further emails will be sent only to the LLVM lists.
     *   Plan is still to upload documentation for F18 before the code, to help establish the project goals and design strategy before uploading the code. This should help establish context for the project. Steve has email to the administrators to get the initial phabricator top-level directory created.


  *   F18 update
     *   Merged pull request for BLOCK from Arm.
     *   Added more complete array spec checks.
     *   Implemented a deferred analysis of pointer initializers and other constructs so that forward references can appear in more contexts.
     *   Implemented folding of DIGITS and SIGN intrinsics.
     *   Fixed issues with nested IMPLICIT.
     *   Submitted proposal to LLVM conference for talk on Fortran and MLIR. Coordinating with Google.
     *   Two pull requests to MLIR to help support Fortran Intermediate Representation have been merged.
     *   More work on DO loop semantics and constraint checking, including DO CONCURRENT locality specifications. Additional tests for semantic checks added.
     *   More work on OpenMP directive parsing and semantic checks, including Declare directives, block constructs, standalone directives, sections, atomic and critical constructs.


  *   Flang Dev news and updates
     *   More bug fixes in queue to send to Flang.
     *   Improved build support for Windows and Mac coming.
     *   Microsoft is investigating contributing to Flang.
     *   Work continues on the BLOCK construct.


Where we can use your help

  *   Respond to Hal’s Doodle poll for the meeting time for the biweekly Flang Technical Community call.
  *   Subscribe to the new LLVM Flang email list: https://lists.llvm.org/cgi-bin/mailman/listinfo/flang-dev. We will be cross-posting to both flang-dev mailing lists until September.
  *   Topics for the next biweekly community call and technical community call.
  *   Let us know if you have presentations or meetings relevant to the Flang community. We will publicize them in these notes.


Details


  1.  Flang on GitHub
·         There have been 1,483 total commits (1,483 in the previous update).
·         There are 473 people who have “starred” the flang repo and 69 forks.
·         173 people are following f18 in 22 forks. There have been 2,376 commits.


  1.  Flang Community Technical Call

     *   This 30-minute biweekly call is hosted by Hal Finkel at https://bluejeans.com/625064848 on the Wednesdays we do not have this call, at 8:30 AM Pacific time. Some people have conflicts with this call time. Hal has posted a Doodle poll for potential different times: https://doodle.com/poll/66m8mvavg7ag2t49. Tuesday 9:00 AM Pacific time is the leading candidate.
     *   Agenda topics and notes from the calls can be found in this <https://docs.google.com/document/d/1Z2U5UAtJ-Dag5wlMaLaW1KRmNgENNAYynJqLW2j2AZQ/edit#heading=h.oiag5i748hyl> Google doc. It also contains instructions for joining the meeting.
     *   The most recent call was held August 14th, 8:30 AM Pacific time. Robyn Sampson of Intel presented on aliasing information and LLVM enhancements.
     *   The next call is scheduled for August 28th. The agenda topic will be array descriptors.
     *   Future Topics and tentative dates:
        *   LLVM transition (mailing lists, git/monorepo, etc.)
        *   DWARF (September 11)
        *   Module files
        *   Tooling development


  1.  Flang community

  *   Website: www.flang-compiler.org<http://www.flang-compiler.org> redirects to http://github.com/flang-compiler/flang.
  *   Wiki: https://github.com/flang-compiler/flang/wiki is the Flang wiki page where the most up-to-date build instructions and news can be found.
  *   Issues: Bug reports for Flang can be reported to https://github.com/flang-compiler/flang/issues.
  *   Mailing lists: There are three mailing lists for Flang: flang-dev, flang-sync and flang-announce at http://lists.flang-compiler.org/.

     *   You can reach the general Flang community by emailing flang-dev at lists.flang-compiler.org<mailto:flang-dev at lists.flang-compiler.org>.
     *   Occasional announcements are sent to flang-announce at lists.flang-compiler.org<mailto:flang-announce at lists.flang-compiler.org>.
     *   These notes will then be sent to flang-dev and flang-sync at lists.flang-compiler.org<mailto:flang-sync at lists.flang-compiler.org>. You should be able to subscribe and unsubscribe yourself from flang-sync and flang-dev as you desire.

  *   LLVM mailing lists: There are now two mailing lists hosted by llvm.org. We will be transitioning to using these lists:
     *   The flang-dev mailing list has been set up. Subscribe at https://lists.llvm.org/cgi-bin/mailman/listinfo/flang-dev. These biweekly notes will now be sent to this email list.
     *   The flang-commits mailing list has been set up. Subscribe at https://lists.llvm.org/cgi-bin/mailman/listinfo/flang-commits.
     *   Please migrate to the LLVM project mailing lists. We will be turning off the  flang-dev at lists.flang-compiler.org<mailto:flang-dev at lists.flang-compiler.org> on September 1, 2019.
  *   Slack: flang-compiler.slack.com is used for informal real-time communication in the Flang community. Add yourself via the invite <https://join.slack.com/t/flang-compiler/shared_invite/enQtMjExOTEyMzQ3MjIxLTZkMDNlODc2YjgxZDY1NTQ2YWJiZWVhOGU2YWY0NDNiOWY0ZjQzNjYyZTNlZjBlNjgxY2U1ZjFjMmY5NzIwMzA> link.
  *   Supercomputing 2019
     *   Hal submitted for an LLVM BoF session at SC 2019.
     *   There won’t be a specific LLVM in HPC Workshop this year.
     *   There may also be a social event. Nothing specific yet.




  1.  What we’re up to


  *   F18 Fortran 2018 compiler

  *   On GitHub: The source code f18 is available on flang-compiler.github.com/f18<https://github.com/flang-compiler/f18/>. It’s recommended to start in the “documentation” directory.
  *   Status: We continue development on the new Fortran 2018 front-end. Recent work includes:

     *   Merged pull request for BLOCK from Arm.
     *   Added more complete array spec checks.
     *   Implemented a deferred analysis of pointer initializers and other constructs so that forward references can appear in more contexts.
     *   Implemented folding of DIGITS and SIGN intrinsics.
     *   Fixed issues with nested IMPLICIT.
     *   Submitted proposal to LLVM conference for talk on Fortran and MLIR. Coordinating with Google.
     *   Two pull requests to MLIR to help support Fortran Intermediate Representation have been merged.
     *   More work on DO loop semantics and constraint checking, including DO CONCURRENT locality specifications. Additional tests for semantic checks added.
     *   More work on OpenMP directive parsing and semantic checks, including Declare directives, block constructs, standalone directives, sections, atomic and critical constructs.
     *   We are close to the point where we will turn on semantic processing by default. This will make it easier for people to check existing codes against f18 and expanding the test suite in f18.
     *   Additional fixes for semantic issues identified by running internal test suites against f18.


  *   LLVM Project:

     *   The flang-dev email list has been set up on llvm.org. You can subscribe here: https://lists.llvm.org/cgi-bin/mailman/listinfo/flang-dev. Archives are also available.
     *   The flang-commits email list has also been set up. There is no content yet, as we haven’t migrated to the LLVM monorepo.
     *   The plan is to first upload some of the top-level documentation so the community can read the project goals and strategy before we do a big code dump. This should happen mid-June.


  *   Recent updates to Flang:
Work continues on the Fortran 2008 BLOCK construct. We are working on appropriate allocations and deallocations at block entry and exit.
Continued work on polymorphic allocatable assignment statements.
Started work on debug metadata for inlined procedures (helpful for profiling).

     *   More PGI bug fixes
        *   #719 libpgmath: windows and osx support (as PR#770)


     *   Upcoming changes to Flang (in review):
        *   More PGI bug fixes
        *   F2008 vector NORM2
        *   Debug support for Fortran allocatables
        *   Pull request #573 – libpgmath: make it clang friendly; addresses bug #557 (reviewing)
        *   Pull request #695 – Remove duplicate files
        *   Pull request #716 – Make NCAR Kernels tests into longtests


     *   Assigned for work:
        *   #226 Unlimited polymorphic type does not work with transfer intrinsic
        *   #298 norm2 intrinsic
        *   #402 Compiler error on regular code
        *   #404 Internal compiler error with polymorphic subroutine parameters and nested derived types
        *   #426 Failures in #include of OpenMPI's mpif.h
        *   #461 OpenMP TeaLeaf_ref: local pointer variable not captured into parallel region
        *   #477 Pull request for module variable import debug test
        *   #498 Error while compiling libpgmath
        *   #512 Flang rejects polymorphic assignment
        *   #577 Procedure pointers to internal procedures
        *   #602 fd_sincos_scalar.cpp: "error: ‘__builtin_complex’ was not declared in this scope"
        *   #604 Flang errors out on a final subroutine with parameterized derived types
        *   #608 gdwarf-<version> flag is not honoured
        *   #610 No debug generated for namelists
        *   #662 Regression : Segfault in taskloop code
        *   Pull request #695 runtime: remove duplicate files
        *   Pull request #710 Test case for capturing procedure pointers to OpenMP parallel regions
        *   Pull request #719 libpgmath: windows and osx support


  *   Outstanding pull requests:

  *   #521 Add OpenBSD as a recognized OS (pending test on new OpenBSD systems internally)
  *   #529 runtime: PoC: generate call to LLVM intrinsic instead of calling runtime functions when possible; handling NINT for a beginning (proposed expansion of this pull request)
  *   #530 AArch64: disable test cases invalid on aarch64 (working on)
  *   #532 runtime: remove duplicate files (need to validate on all compilers)
  *   #546 Loosen ties to x86 (working on)
  *   #572 libpgmath: respect LIBPGMATH_WITH_GENERIC setting; fixes #559 (reviewing)
  *   #592 add support for macOS (awaiting CLA)
  *   #622 Add explicit braces to avoid dangling else problem (failed NVIDIA testing)
  *   #642 AArch64: significantly improve formatted input performance by using optimized libc functions on ARM64
  *   #647 Introduce buffered I/O and replace getc with buffered read
  *   #655 Add missing signed integer to a pointer conversion in DATA statement
  *   #658 Fix in preprocessing for Flexi app
  *   #659 Changes to support transpose intrinsic during initialization
  *   #660 Enable support for simd directives
  *   #672 Support isnan() GNU extension (Arm reviewing)
  *   #689 Fix for segfault in multiple entries OpenMP functions
  *   #693 runtime: ARM64 is a 64-bit architecture
  *   #694 libpgmath sanity: do not call sleep() in Linux systems
  *   #695 runtime: remove duplicate files
  *   #701 Fix for ICE in taskloop
  *   #702 Fix for random_seed when seeds have zeroes in LSB
  *   #710 Test case for capturing procedure pointers to OpenMP parallel regions
  *   #711 Make the NCAR Kernels tests into longtests
  *   #717 Support building libpgmath with clang 6
  *   #723 Support building flang with clang
  *   #725 Check for gregset_t before using it
  *   #726 Remove linux references where unneeded
  *   #737 TRAILZ function added to the fortran compiler (resubmitted)
  *   #738 Fix for issue #550
  *   #742 Implement UNROLL directive


  *   Public plan: NVIDIA has published a brief plan for upcoming Flang work on github.io at https://github.com/flang-compiler/flang/wiki/Roadmap. This has been recently updated to reflect current Flang and F18 priorities and to provide better context for the project and its long-term goals.


  *   Creating pull requests: NVIDIA requires contributor agreements from developers wishing to make pull requests. The Individual CLA is here: https://flang-compiler.github.io/files/Flang-ICLA-v4.pdf. The Corporate CLA is here: https://flang-compiler.github.io/files/Flang-CCLA-v2.pdf. Send completed CLAs to flang-cla at nvidia.com<mailto:flang-cla at nvidia.com>. Assuming the pull request builds and passes “make check-flang”, NVIDIA will take on the internal testing of the pull request using the full test suite available internally and provide feedback to the contributor as appropriate. Once we have the quality of the pull request established, it will be incorporated into Flang.

  *   LLVM is switching to a new Apache license with LLVM exceptions that we need to incorporate into our CLAs after it is adopted by LLVM community. The LLVM license can be found at http://llvm.org/foundation/relicensing/LICENSE.txt. A web page describing the relicensing effort can be found at http://llvm.org/foundation/relicensing/.



  *   OpenMP 4.5 support:
o    OpenMP 4.5 is supported on multicore CPUs, mapping all target regions across all the cores, with the following known limitations:

        *   We map the directives directly for host==device with very predictable behavior and good performance results.
        *   Task depend/priority is not supported
        *   OMP do clauses linear, order(n), and schedule (modifier) are not supported
        *   SIMD construct, Declare SIMD, and SIMD clause: private/reduction/lastprivate/collapse clauses on SIMD construct are supported, SIMD clause/construct are used as a hint to vectorize through metadata generation
        *   There is a bug if target construct is enclosed by task construct

o    No update



  *   Outstanding issues:

     *   Please refer to the Issues section on GitHub for flang-compiler/flang<https://github.com/flang-compiler/flang/issues> and flang-compiler/flang-driver<https://github.com/flang-compiler/clang/issues>.


  *   Debug Metadata:
     *   LLVM Debug metadata changes posted to LLVM Phabricator for review; responding to review comments.
        *   https://reviews.llvm.org/D54114 [CHARACTER intrinsic data type] Review for this is not complete, and we would like to get additional comments or alternate proposals.
     *   LLVM Debug metadata changes upstreamed to LLVM:
        *   https://reviews.llvm.org/D54043 [ELEMENTAL, PURE and RECURSIVE PROCEDURES]
        *   https://reviews.llvm.org/D54327 [COMMON blocks]


  *   Packaging and Binary Releases:

  *   Binary release: We post binary releases at least quarterly. March binary releases of Flang for x86-64 and OpenPOWER (LLVM 7.0) have been posted to http://github.com/flang-compiler/flang/releases.
  *   Spack: Spack packages for Flang have been reviewed by the Spack team and pulled into Spack for flang_20180921. We are still working through issues with defining the spack package for flang. Brian Homerding is starting to work on Spack changes for the LLVM and Flang for the LLVM Git monorepo.


  *   Testing updates:

  *   NCAR Kernels tests take a long time to execute on some architectures, so we are planning to move them to longtests, based on Arm pull request.


  *   Application updates:
     *   No update.



  1.  Fortran 2008 features
Some Fortran 2008 features in development for pgfortran will flow into Flang soon.

  *   Support for the G0 Edit descriptor has been requested by LLNL. Work is complete and is being upstreamed to Flang.
  *   BLOCK construct. Work continues on BLOCK. We are running through a battery of tests.
  *   Pointer default initialization. Work is scheduled to begin in shortly.
  *   Allocation of polymorphic variables. Work is scheduled to begin in shortly.
  *   EXECUTE_COMMAND_LINE intrinsic. Work is scheduled to begin in shortly.
  *   NORM2 intrinsic. Work has completed and is being upstreamed to Flang.

The following items are considered complete. Please report GitHub issues if you identify any problems.

  *   ERROR STOP
  *   Pointers to internal procedures
  *   SUBMODULE
  *   Serial implementation of F2018 DO CONCURRENT (there is no multi-core implementation planned at this time)
  *   BACK optional argument support for MINLOC/MAXLOC


-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may contain
confidential information.  Any unauthorized review, use, disclosure or distribution
is prohibited.  If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/flang-dev/attachments/20190821/5a56e10a/attachment-0001.html>


More information about the flang-dev mailing list