[flang][OpenACC] Resolve associations before testing declare flags (#221346)
The OpenACC declare flags are set by semantics on a single symbol: the
one resolved in the scope containing the !$acc declare directive. Any
other scope naming the same entity reaches it through an association
symbol, and those symbols carry their own, empty flag sets.
The allocate and deallocate action helpers tested the symbol taken
straight from the ALLOCATE or DEALLOCATE statement. For an allocatable
declared in a host scope and allocated in an internal subprogram the
AccDeclare test
therefore failed, no acc.declare_action attribute was attached, and
ACCDeclareActionConversion had nothing to convert. The emitted recipes
were never called, so the device copy was neither created on allocation
nor deleted on deallocation.
Resolve to the ultimate symbol and pass it on. Forwarding the resolved
symbol is required because the deallocation attach helpers independently
re-test the data clause flags.
This matches the rest of the OpenACC lowering, which already resolves
before reading these flags. Recipe names are unaffected because
[4 lines not shown]
[clang][DependencyScanning] Add a Clang Driver Option to Enable Dependency Scanning Logging (#211966)
This PR adds a clang driver option to enable dependency scanning
logging. The important implementation detail is that the
`DependencyScanningService` holds a single instance of the logger, and
we need to route the option to the logger per scan. An `enable` method
is added to the logger's API to enable it with thread safety. A second
detail worth calling out is that the option is a driver option, so if a
`cc1` command is passed directly to the scanner, the option will not be
processed.
[RISCV] Remove unused tablegen classes. NFC (#221286)
This removes VPatBinaryFPSDNode_R_VF and VPatBinaryFPVL_R_VF. The have
_RM version that are used instead.
[CIR] Add cir.coro.intrinsic.promise Op (#221124)
This PR adds `cir.coro.intrinsic.promise`, representing
`llvm.coro.promise`, to the set of coroutine intrinsic ops. It also adds
the corresponding lowering to `llvm.coro.promise`.
[CI] Require hashes for pip install in metrics container (#221373)
We generate the requirements lock file with hashes, but did not actually
require them before now, which is best practice.
[clang-tidy] Normalize windows line filter paths (#217038)
`git | clang-tidy-diff.py` emits line-filter paths with forward slashes,
while Windows compilation databases use a mix of forwards and backwards
slashes. These paths are then silently rejected (and no report is
emitted).
Reproduce on windows via:
```
git.exe diff -U0 main -- . | python clang-tidy-diff.py -p1 -path .\build"
```
Git will produce a path like:
```
my/source/file.cpp
```
The compilation database has files with entries like this:
```
[18 lines not shown]
[clang][docs] Generate command line reference as Markdown (#220385)
Update the Clang option documentation emitter to generate MyST Markdown
for the generated command-line reference page. I discovered and
preserved a complicated existing Sphinx program-name workaround for
option IDs that collide after punctuation normalization.
The only markup on Options.td is in the DocBrief fields, and those use
very little markup, so those were all migrated by the agent, not
rst2myst. I unindented the multi-line DocBrief bodies, because
indentation has semantics in both markdown (list indentation) and reST.
Tracking issue: #201242
0.1288% pixels differ in the rendered HTML page.
Assisted-by: Codex