[flang][acc] Add ACCDeclareActionConversion pass (#181894)
Implements the allocation and deallocation semantics for allocatables
and pointers in declare directives (OpenACC 3.4, Section 2.13.2). For a
non-shared memory device, allocate/deallocate must keep local and device
memory in sync.
Lowering generates recipe functions (with acc dialect ops to create the
device copy) and attaches an attribute to the operations that allocate
or deallocate the object. This pass finds those operations and inserts
calls to the corresponding recipe.
Example: for "!$acc declare create(arr)" and "allocate(arr(100))" in a
subroutine, the pass inserts a call to the post-alloc recipe after the
store so the device copy is created.
---------
Co-authored-by: Susan Tan <zujunt at nvidia.com>
clang: normalise directory cache keys consistently in `FileManager` (#181306)
Extract the directory path normalisation logic into a shared
`normalizeCacheKey` helper and apply it in `addAncestorsAsVirtualDirs`
in addition to `getDirectoryRef`. This ensures that cache lookups and
insertions use a consistent key at all call sites.
Co-authored-by: Corentin Jabot <corentinjabot at gmail.com>
[lldb] Add tree-sitter based Rust syntax highlighting (#181282)
This adds tree-sitter based Rust syntax highlighting to LLDB. It
consists of the RustTreeSitterHighlighter plugin and the vendored Rust
grammar [1], which is licensed under MIT.
[1] https://github.com/tree-sitter/tree-sitter-rust
[offload][lit] Enable/disable tests on Level Zero when using DeviceRTL (#182128)
Since we can now build the DeviceRTL with SPIR-V, redo the
`XFAIL/UNSUPPORTED` specifications for the tests we see passing/failing
on the Level Zero backend with the DeviceRTL being used.
The tests marked `UNSUPPORTED` hang or sporadically fail and those are
tracked in https://github.com/llvm/llvm-project/issues/182119.
This change will allow us to enable CI testing with the DeviceRTL.
Here are the full test results with this change applied, running only
the `spirv64-intel` `check-offload` tests:
```
Total Discovered Tests: 453
Unsupported : 206 (45.47%)
Passed : 141 (31.13%)
Expectedly Failed: 106 (23.40%)
[6 lines not shown]
Optimize lookup of dataset lock info
This commit uses the known dataset name for lookups of locked
info when extending share queries. This reduces number of times
we have to attempt to open a ZFS resource / fail when a share
path is located inside a ZFS dataset.
[libc] Modular printf option (float only)
This adds LIBC_CONF_PRINTF_MODULAR, which causes floating point support
(later, others) to be weakly linked into the implementation.
__printf_modular becomes the main entry point of the implementaiton, an
printf itself wraps __printf_modular. printf it also contains a
BFD_RELOC_NONE relocation to bring in the float aspect.
See issue #146159 for context.
[MLIR][Linalg] Diagnose unsupported types in Linalg named op region builders (#181616)
Plumb emitError callbacks through Linalg named op region builders so
RegionBuilderHelper emits diagnostics instead of hitting
llvm_unreachable for unsupported operand element types (e.g. amx.tile).
Update linalg/invalid.mlir to add functions - linalg.batch_matmul(),
linalg.batch_reduce_matmul() and linalg.matmul() with amx.tile operands
to ensure mlir-opt fails gracefully without crash.