Revision tags: llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4 |
|
#
fe5a64d1 |
| 08-Nov-2024 |
Valentin Clement (バレンタイン クレメン) <clementval@gmail.com> |
[fang][cuda] Allow * in call chevron syntax (#115381)
Using `*` in call chevron syntax should be allowed. This patch updates
the parser to allow this usage.
```
call sub<<<*,nbBlock>>>()
```
|
Revision tags: llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1 |
|
#
b5aea329 |
| 30-Sep-2024 |
Peter Klausler <pklausler@nvidia.com> |
[flang] Improve error recovery for bad statement after CONTAINS (#109698)
After a CONTAINS statement in a program unit, a statement that cannot
begin a subprogram will trigger catastrophic error re
[flang] Improve error recovery for bad statement after CONTAINS (#109698)
After a CONTAINS statement in a program unit, a statement that cannot
begin a subprogram will trigger catastrophic error recovery. But the
compiler is presently emitting multiple errors for the same location
about expected variations of END statements. Emit fewer messages.
Fixes https://github.com/llvm/llvm-project/issues/109609.
show more ...
|
Revision tags: llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2 |
|
#
99a0a12a |
| 30-Jul-2024 |
Peter Klausler <35819229+klausler@users.noreply.github.com> |
[flang][parser] Better error recovery for SUBROUTINE/FUNCTION statements (#100664)
When there's an error in a SUBROUTINE or FUNCTION statement, errors
cascade quickly because the body of the subpro
[flang][parser] Better error recovery for SUBROUTINE/FUNCTION statements (#100664)
When there's an error in a SUBROUTINE or FUNCTION statement, errors
cascade quickly because the body of the subprogram or interface isn't in
the right context. So, if a SUBROUTINE or FUNCTION statement is
expected, and contains a SUBROUTINE or FUNCTION keyword, it counts as
one -- retain and emit any errors pertaining to the arguments or suffix,
recover to the end of the line if needed, and proceed.
show more ...
|
#
fffbabfd |
| 30-Jul-2024 |
Peter Klausler <35819229+klausler@users.noreply.github.com> |
[flang][parser] Better error recovery for misplaced declaration (#100482)
When a declaration construct appears in the execution part of a block or
subprogram body, report it as such rather than as
[flang][parser] Better error recovery for misplaced declaration (#100482)
When a declaration construct appears in the execution part of a block or
subprogram body, report it as such rather than as a misleading syntax
error on the executable statement that it somehow matched the most.
show more ...
|
Revision tags: llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8 |
|
#
010c55bf |
| 13-Jun-2024 |
Peter Klausler <35819229+klausler@users.noreply.github.com> |
[flang] Improve error recovery in tricky situation (#95168)
When the very first statement of the executable part has syntax errors,
it's not at all obvious whether the error messages that are repor
[flang] Improve error recovery in tricky situation (#95168)
When the very first statement of the executable part has syntax errors,
it's not at all obvious whether the error messages that are reported to
the user should be those from its failure to be the last statement of
the specification part or its failure to be the first executable
statement when both failures are at the same character in the cooked
character stream. Fortran makes this problem more exciting by allowing
statement function definitions look a lot like several executable
statements.
The current error recovery scheme for declaration constructs depends on
a look-ahead test to see whether the failed construct is actually the
first executable statement. This works fine when the first executable
statement is not in error, but should also allow for some error cases
that begin with the tokens of an executable statement.
This can obviously still go wrong for declaration constructs that are
unparseable and also have ambiguity in their leading tokens with
executable statements, but that seems to be a less likely case.
Also improves error recovery for parenthesized items.
show more ...
|
Revision tags: llvmorg-18.1.7 |
|
#
930c2d91 |
| 03-Jun-2024 |
Peter Klausler <35819229+klausler@users.noreply.github.com> |
[flang] Adjust %REF/%VAL semantic checking (#93718)
In accordance with other compilers, don't require that a %REF() actual
argument be a modifiable variable. And move the %REF/%VAL semantic
checks
[flang] Adjust %REF/%VAL semantic checking (#93718)
In accordance with other compilers, don't require that a %REF() actual
argument be a modifiable variable. And move the %REF/%VAL semantic
checks to Semantics/check-call.cpp, where one would expect to find them.
Fixes https://github.com/llvm/llvm-project/issues/93489.
show more ...
|
Revision tags: llvmorg-18.1.6 |
|
#
7c1b2898 |
| 09-May-2024 |
Peter Klausler <35819229+klausler@users.noreply.github.com> |
[flang] Accept compiler directives between module subprograms (#91230)
Parse and represent compiler directives in a modules
module-subprogram-part between the module subprograms.
|
Revision tags: llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4 |
|
#
82867439 |
| 24-Oct-2023 |
Valentin Clement (バレンタイン クレメン) <clementval@gmail.com> |
[flang][openacc] Allow acc routine at the top level (#69936)
Some compilers allow the `$acc routine(<name>)` to be placed at the
program unit level. To be compatible, this patch enables the use of
[flang][openacc] Allow acc routine at the top level (#69936)
Some compilers allow the `$acc routine(<name>)` to be placed at the
program unit level. To be compatible, this patch enables the use of acc
routine at this level. These acc routine directives must have a name.
show more ...
|
Revision tags: llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4 |
|
#
4ad72793 |
| 06-May-2023 |
Peter Klausler <pklausler@nvidia.com> |
[flang] CUDA Fortran - part 1/5: parsing
Begin upstreaming of CUDA Fortran support in LLVM Flang.
This first patch implements parsing for CUDA Fortran syntax, including: - a new LanguageFeature en
[flang] CUDA Fortran - part 1/5: parsing
Begin upstreaming of CUDA Fortran support in LLVM Flang.
This first patch implements parsing for CUDA Fortran syntax, including: - a new LanguageFeature enum value for CUDA Fortran - driver change to enable that feature for *.cuf and *.CUF source files - parse tree representation of CUDA Fortran syntax - dumping and unparsing of the parse tree - the actual parsers for CUDA Fortran syntax - prescanning support for !@CUF and !$CUF - basic sanity testing via unparsing and parse tree dumps
... along with any minimized changes elsewhere to make these work, mostly no-op cases in common::visitors instances in semantics and lowering to allow them to compile in the face of new types in variant<> instances in the parse tree.
Because CUDA Fortran allows the kernel launch chevron syntax ("call foo<<<blocks, threads>>>()") only on CALL statements and not on function references, the parse tree nodes for CallStmt, FunctionReference, and their shared Call were rearranged a bit; this caused a fair amount of one-line changes in many files.
More patches will follow that implement CUDA Fortran in the symbol table and name resolution, and then semantic checking.
Differential Revision: https://reviews.llvm.org/D150159
show more ...
|
Revision tags: llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3 |
|
#
619b5bfc |
| 10-Oct-2022 |
Peter Klausler <pklausler@nvidia.com> |
[flang] Improve error recovery for bad/missing construct END statements
When a multi-statement construct should end with a particular END statement like "END SELECT", and that construct's END statem
[flang] Improve error recovery for bad/missing construct END statements
When a multi-statement construct should end with a particular END statement like "END SELECT", and that construct's END statement is missing or unrecognizable, the error recovery productions should not misinterpret a program unit END statement that follows and consume it as a misspelled construct END statement. Doing so leads to cascading errors or a failed parse.
Differential Revision: https://reviews.llvm.org/D136896
show more ...
|
Revision tags: working, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init, llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1 |
|
#
2d8b6a47 |
| 14-Mar-2022 |
Peter Klausler <pklausler@nvidia.com> |
[flang] Add explanatory messages to grammar for language extensions
Extend "extension<LanguageFeature>()" to incorporate an explanatory message better than the current generic "nonstandard usage:".
[flang] Add explanatory messages to grammar for language extensions
Extend "extension<LanguageFeature>()" to incorporate an explanatory message better than the current generic "nonstandard usage:".
Differential Revision: https://reviews.llvm.org/D122035
show more ...
|
Revision tags: llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2, llvmorg-14.0.0-rc1, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2, llvmorg-13.0.1-rc1, llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2, llvmorg-13.0.0-rc1, llvmorg-14-init, llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2, llvmorg-12.0.1-rc1, llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4, llvmorg-12.0.0-rc3, llvmorg-12.0.0-rc2, llvmorg-11.1.0, llvmorg-11.1.0-rc3, llvmorg-12.0.0-rc1, llvmorg-13-init, llvmorg-11.1.0-rc2, llvmorg-11.1.0-rc1, llvmorg-11.0.1, llvmorg-11.0.1-rc2 |
|
#
9a883bfa |
| 15-Dec-2020 |
peter klausler <pklausler@nvidia.com> |
[flang] Clean up TODO comments and fix one (DATA constant ambiguity)
Remove resolved & moot TODO comments in Common/, Parser/, and Evaluate/. Address a pending one relating to parsing ambiguity in
[flang] Clean up TODO comments and fix one (DATA constant ambiguity)
Remove resolved & moot TODO comments in Common/, Parser/, and Evaluate/. Address a pending one relating to parsing ambiguity in DATA statement constants, handling it with symbol table information in Semantics and adding a test.
Differential Revision: https://reviews.llvm.org/D93323
show more ...
|
Revision tags: llvmorg-11.0.1-rc1, llvmorg-11.0.0, llvmorg-11.0.0-rc6, llvmorg-11.0.0-rc5, llvmorg-11.0.0-rc4, llvmorg-11.0.0-rc3 |
|
#
13cee14b |
| 25-Aug-2020 |
peter klausler <pklausler@nvidia.com> |
[flang] Parse global compiler directives
Accept and represent "global" compiler directives that appear before and between program units in a source file.
Differential Revision: https://reviews.llvm
[flang] Parse global compiler directives
Accept and represent "global" compiler directives that appear before and between program units in a source file.
Differential Revision: https://reviews.llvm.org/D86555
show more ...
|
Revision tags: llvmorg-11.0.0-rc2 |
|
#
05169af5 |
| 13-Aug-2020 |
Valentin Clement <clementval@gmail.com> |
[flang][openacc] Handle optional end directive in combined construct
OpenACC combined construct can have an optional end directive. This patch handle this case in the parsing/unparsing with a canoni
[flang][openacc] Handle optional end directive in combined construct
OpenACC combined construct can have an optional end directive. This patch handle this case in the parsing/unparsing with a canonicalization step. Unlike OmpEndLoopDirective, this doesn't need a special treatment in the pre-fir tree as there is no clause attached to a AccEndCombinedDirective.
Reviewed By: klausler
Differential Revision: https://reviews.llvm.org/D84481
show more ...
|
#
cf715717 |
| 11-Aug-2020 |
Tim Keith <tkeith@nvidia.com> |
[flang] Allow compiler directives in more places
Allow compiler directives in the implicit-part and before USE statements in the specification-part.
Differential Revision: https://reviews.llvm.org/
[flang] Allow compiler directives in more places
Allow compiler directives in the implicit-part and before USE statements in the specification-part.
Differential Revision: https://reviews.llvm.org/D85693
show more ...
|
Revision tags: llvmorg-11.0.0-rc1, llvmorg-12-init |
|
#
0a90ffa7 |
| 14-Jul-2020 |
Valentin Clement <clementval@gmail.com> |
[flang][openacc] OpenACC 3.0 parser
Summary: This patch introduce the parser for OpenACC 3.0 in Flang. It uses the same TableGen mechanism than OpenMP.
Reviewers: nvdatian, sscalpone, tskeith, klau
[flang][openacc] OpenACC 3.0 parser
Summary: This patch introduce the parser for OpenACC 3.0 in Flang. It uses the same TableGen mechanism than OpenMP.
Reviewers: nvdatian, sscalpone, tskeith, klausler, ichoyjx, jdoerfert, DavidTruby
Reviewed By: klausler
Subscribers: MaskRay, SouraVX, mgorny, hiraditya, jfb, sstefan1, llvm-commits
Tags: #llvm, #flang
Differential Revision: https://reviews.llvm.org/D83649
show more ...
|
#
f06ad913 |
| 14-Jul-2020 |
Valentin Clement <clementval@gmail.com> |
Revert "[flang][openacc] OpenACC 3.0 parser"
This reverts commit 65049d16100af360674659fb56e8f9bec96a0836.
Buildbot failure clang-ppc64le-rhel
|
#
65049d16 |
| 14-Jul-2020 |
Valentin Clement <clementval@gmail.com> |
[flang][openacc] OpenACC 3.0 parser
Summary: This patch introduce the parser for OpenACC 3.0 in Flang. It uses the same TableGen mechanism than OpenMP.
Reviewers: nvdatian, sscalpone, tskeith, klau
[flang][openacc] OpenACC 3.0 parser
Summary: This patch introduce the parser for OpenACC 3.0 in Flang. It uses the same TableGen mechanism than OpenMP.
Reviewers: nvdatian, sscalpone, tskeith, klausler, ichoyjx, jdoerfert, DavidTruby
Reviewed By: klausler
Subscribers: SouraVX, mgorny, hiraditya, jfb, sstefan1, llvm-commits
Tags: #llvm, #flang
Differential Revision: https://reviews.llvm.org/D83649
show more ...
|
Revision tags: llvmorg-10.0.1, llvmorg-10.0.1-rc4, llvmorg-10.0.1-rc3, llvmorg-10.0.1-rc2 |
|
#
a0226f9b |
| 12-Jun-2020 |
peter klausler <pklausler@nvidia.com> |
[flang] Dodge bogus uninitialized data warning from gcc 10.1 via code cleanup
G++ 10.1 emits inappropriate "use of uninitialized data" warnings when compiling f18. The warnings stem from two sites
[flang] Dodge bogus uninitialized data warning from gcc 10.1 via code cleanup
G++ 10.1 emits inappropriate "use of uninitialized data" warnings when compiling f18. The warnings stem from two sites in templatized code whose multiple instantiations magnified the number of warnings.
These changes dodge those warnings by making some innocuous changes to the code. In the parser, the idiom defaulted(cut >> x), which yields a parser that always succeeds, has been replaced with a new equivalent pass<T>() parser that returns a default-constructed value T{} in an arguably more readable fashion. This idiom was the only attestation of the basic parser cut, so it has been removed and the remaining code simplified. In Evaluate/traverse.h, a return {}; was replaced with a return of a default-constructed member.
Differential Revision: https://reviews.llvm.org/D81747
show more ...
|
Revision tags: llvmorg-10.0.1-rc1 |
|
#
b98ad941 |
| 09-Apr-2020 |
David Truby <david.truby@arm.com> |
[flang] Merge flang-compiler/f18
This is the initial merge of flang-compiler, which is done in this way principally to preserve the history and git-blame, without generating a large number of commit
[flang] Merge flang-compiler/f18
This is the initial merge of flang-compiler, which is done in this way principally to preserve the history and git-blame, without generating a large number of commits on the first-parent history of LLVM.
If you don't care about the flang history during a bisect remember that you can supply paths to git-bisect, e.g. `git bisect start clang llvm`.
The history of f18 was rewritten to:
* Put the code under /flang/. * Linearize the history. * Rewrite commit messages so that issue and PR numbers point to the old repository.
Credit to Peter Waller for writing the flatten and merge script.
Updates: flang-compiler/f18#876 (submission into llvm-project) Mailing-list: http://lists.llvm.org/pipermail/llvm-dev/2020-January/137989.html ([llvm-dev] Flang landing in the monorepo - next Monday!) Mailing-list: http://lists.llvm.org/pipermail/llvm-dev/2019-December/137661.html ([llvm-dev] Flang landing in the monorepo)
Co-authored-by: Peter Waller <peter.waller@arm.com>
show more ...
|
#
1f879005 |
| 29-Mar-2020 |
Tim Keith <tkeith@nvidia.com> |
[flang] Reformat with latest clang-format and .clang-format
Original-commit: flang-compiler/f18@9fe84f45d7fd685051004678d6b5775dcc4c6f8f Reviewed-on: https://github.com/flang-compiler/f18/pull/1094
|
Revision tags: llvmorg-10.0.0, llvmorg-10.0.0-rc6, llvmorg-10.0.0-rc5, llvmorg-10.0.0-rc4, llvmorg-10.0.0-rc3 |
|
#
64ab3302 |
| 25-Feb-2020 |
CarolineConcatto <51754594+CarolineConcatto@users.noreply.github.com> |
[flang] [LLVMify F18] Compiler module folders should have capitalised names (flang-compiler/f18#980)
This patch renames the modules in f18 to use a capital letter in the
module name
Signed-off-b
[flang] [LLVMify F18] Compiler module folders should have capitalised names (flang-compiler/f18#980)
This patch renames the modules in f18 to use a capital letter in the
module name
Signed-off-by: Caroline Concatto <caroline.concatto@arm.com>
Original-commit: flang-compiler/f18@d2eb7a1c443d1539ef12b6f027074a0eb15b1ea0 Reviewed-on: https://github.com/flang-compiler/f18/pull/980
show more ...
|