[PATCH] D87728: [flang][msvc] Work around if constexpr (false) evaluation. NFC.

Peter Klausler via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 16 10:31:58 PDT 2020


klausler accepted this revision.
klausler added a comment.
This revision is now accepted and ready to land.

In D87728#2277006 <https://reviews.llvm.org/D87728#2277006>, @Meinersbur wrote:

> Do you have a suggestion for a large Fortran file that I could measure? I think my measurements would not be accurate enough to show a difference between inlining and non-inlining of this function. If you know how to do it yourself, I would be grateful.

Whether or not the measurements differ more than the margin of error is essentially the problem that I'm worried about.  The f18 parser is a stressful case for C++ compilers and inline expansion is not guaranteed.  The template being changed here is the one that's used to generate every node in the parse tree, so each cycle matters.

We'll see if we can find some good examples of Fortran source files that are unencumbered and suitable for inclusion in the test base. One nice thing about Fortran is that one may concatenate a lot of source code into a single source file as long as module dependency order is observed, so one can build up very large single source files that can expose parsing performance changes.  In the meantime, go ahead with your changes, and I'll keep an eye on performance here and let you know if I notice a drop, and we'll deal with it if it happens via conditional code or something.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D87728/new/

https://reviews.llvm.org/D87728



More information about the llvm-commits mailing list