summaryrefslogtreecommitdiff
path: root/clang/test/ParserOpenACC/parse-cache-construct.cpp
AgeCommit message (Collapse)Author
2025-07-03[OpenACC][Sema] Implement warning for 'cache' invalid var referichkeane
The 'cache' construct is lowered as marking the acc.loop in ACC MLIR. This results in any variable references that are not inside of the acc.loop being invalid. This patch adds a warning to that effect, and ensures that the variable references won't be added to the AST during parsing so we don't try to lower them. This results in loss of instantiation-diagnostics for these, however that seems like an acceptable consequence to ignoring it.
2025-06-13Remove delayed typo expressions (#143423)Aaron Ballman
This removes the delayed typo correction functionality from Clang (regular typo correction still remains) due to fragility of the solution. An RFC was posted here: https://discourse.llvm.org/t/rfc-removing-support-for-delayed-typo-correction/86631 and while that RFC was asking for folks to consider stepping up to be maintainers, and we did have a few new contributors show some interest, experiments show that it's likely worth it to remove this functionality entirely and focus efforts on improving regular typo correction. This removal fixes ~20 open issues (quite possibly more), improves compile time performance by roughly .3-.4% (https://llvm-compile-time-tracker.com/?config=Overview&stat=instructions%3Au&remote=AaronBallman&sortBy=date), and does not appear to regress diagnostic behavior in a way we wouldn't find acceptable. Fixes #142457 Fixes #139913 Fixes #138850 Fixes #137867 Fixes #137860 Fixes #107840 Fixes #93308 Fixes #69470 Fixes #59391 Fixes #58172 Fixes #46215 Fixes #45915 Fixes #45891 Fixes #44490 Fixes #36703 Fixes #32903 Fixes #23312 Fixes #69874
2025-03-03[OpenACC] Implement 'cache' construct AST/Semaerichkeane
This statement level construct takes no clauses and has no associated statement, and simply labels a number of array elements as valid for caching. The implementation here is pretty simple, but it is a touch of a special case for parsing, so the parsing code reflects that.
2024-05-02[OpenACC] Implement SubArray Parsing/Sema (#90796)Erich Keane
This implementation takes quite a bit from the OMP implementation of array sections, but only has to enforce the rules as applicable to OpenACC. Additionally, it does its best to create an AST node (with the assistance of RecoveryExprs) with as much checking done as soon as possible in the case of instantiations.
2024-04-26[NFC][OpenACC] Remove stale FIXME comment in a testerichkeane
A recent patch changed the array sections to work differently for OpenACC, including for the diagnostic, so the FIXME is now irrelevant.
2024-04-25[NFC] Generalize ArraySections to work for OpenACC in the future (#89639)Erich Keane
OpenACC is going to need an array sections implementation that is a simpler version/more restrictive version of the OpenMP version. This patch moves `OMPArraySectionExpr` to `Expr.h` and renames it `ArraySectionExpr`, then adds an enum to choose between the two. This also fixes a couple of 'drive-by' issues that I discovered on the way, but leaves the OpenACC Sema parts reasonably unimplemented (no semantic analysis implementation), as that will be a followup patch.
2024-02-15[OpenACC] Change 'not implemented' diagnostic to be more specificerichkeane
Currently we just emit a generic 'not implemented' diagnostic for all OpenACC pragmas. This patch moves the diagnostic to 'Sema' and diagnoses for a specific clause or construct, in preperation of implementing Sema for constructs.
2024-01-10[OpenACC] Implement 'var' parsing correctly, support array sections (#77617)Erich Keane
While investigating implementing 'var-list' generically for the variety of clauses that support this syntax (an extensive list!) I discovered that it includes 'compound types' and members of compound types, as well as array sections. This patch genericizes that function, and implements it in terms of an assignment expression, and enables a simplified version of OMP Array Sections for it. OpenACC only supports a startidx + length, so this patch implements that parsing. However, it is currently still being represented as an OpenMP Array Section, which is semantically very similar. It is my intent to come back and genericize the OMP Array Sections types (or create a similar expression node) in the future when dealing with Sema. At the moment, the only obvious problem with it is that the diagnostic for using it in the 'wrong' place says OpenMP instead of OpenACC, which I intend to fix when I deal with the AST node changes.
2023-12-06[OpenACC] Implement 'cache' construct parsing (#74324)Erich Keane
The 'cache' construct takes a list of 'vars', which are array-section style definitions. This patch implements the parsing, leaving the lower bound and length of the bound as expressions, so that we can validate they are the correct 'thing' in sema.