[SPIR-V] Fix legalization rewriting non-zero size arrays to pointers (#222276)
legalizeType checked `isa<ArrayType>` with no size guard
Use `shouldLegalizeInstType`, which already checks for zero size
[SPIR-V] Fix legalized store of single element vector to vector (#222253)
A `<1 x T>` shares its SPIR-V type with the scalar T, so extracting from
it emits OpCompositeExtract on a non-composite, which is rejected by
spirv-val
[MLIR] Remove unnecessary generated-header include dependencies (NFC) (#222349)
Remove unused dialect and transform headers, and replace broad pass
aggregates with the specific conversion headers used by GPU and
SparseTensor pipelines. Include the core pass and IR builder definitions
directly where unrelated dialect headers previously supplied them
transitively.
These include-only changes avoid unnecessary TableGen header
prerequisites without depending on changes to the CMake generated-header
dependency model.
Assisted-by: Codex
[CIR][CMake] Configure MLIR as a dependency-only project
ClangIR requires MLIR, but enabling CIR currently requires users to list MLIR
explicitly in LLVM_ENABLE_PROJECTS. That also attaches unrelated MLIR build,
install, unit-test, and lit targets to LLVM aggregates.
When Clang and CIR are selected, append MLIR to the effective project list
and mark it dependency-only. An explicit MLIR selection retains its normal
build, test, and install behavior.
Export and install only MLIR targets reachable from the Clang SDK, together
with the headers needed by those targets. Enable MLIR test-support libraries
when CIR tests need them without registering the MLIR test suite.
Keep the existing standalone ClangIR restriction, and leave MLIR disabled
when CIR is disabled.
Validation:
- Configured Clang with CIR and implicit dependency-only MLIR.
[5 lines not shown]
[CMake] Limit implicit Flang dependency projects
Flang automatically enables MLIR and Clang, but treating those projects as
ordinary enabled projects pulls unrelated tools and tests into aggregate
targets.
Track dependency-only projects explicitly when expanding the requested project
list. Add those projects with EXCLUDE_FROM_ALL, disable their test suites by
default, and keep forwarding only the requested roots to nested builds. Capture
the roots before creating the cache entry so parent-scoped configurations keep
working.
Compute the transitive Clang and MLIR target closure needed by Flang's installed
binaries and CMake package. Promote exactly that closure into the default build
and install it with the required headers, compiler resources, and
clang-linker-wrapper. Do not install the standalone Clang or MLIR packages.
Split MLIR test support libraries from MLIR's own test suite so Flang tests can
use them without registering MLIR tests. Explicitly listing Clang or MLIR keeps
[3 lines not shown]
[CIR][AArch64] Port f64 tests for v8.5 rounding NEON builtins (#221389)
Related to https://github.com/llvm/llvm-project/issues/185382
Port tests from
clang/test/CodeGen/AArch64/v8.5a-neon-frint3264-intrinsic.c to
clang/test/CodeGen/AArch64/neon/rounding-v8.5.c
[CIR] Forward a byref argument loaded from a byref parameter (#221057)
When a callee argument comes out of the calling function's own byref
parameter, that pointer already names the object its caller will
destroy, so pass it along as-is.
Assisted-by: Cursor / claude-opus-5
devel/kcov: relinquish maintainership
I haven't personally used this port in years. In fact, cargo-kcov
doesn't even work with modern Rust toolchains. But kcov can still be
used for other languages.
[llvm-pdbutil] Map enums in bitflags for symbols in YAML (#215887)
Both `S_COMPILE3` and `S_FRAMEPROC` have bitflags that also contain
non-bitflag enums. For `S_COMPILE3`, the lower eight bits represent the
language and for `S_FRAMEPROC` there are bits in the middle representing
the frame pointer registers for variables and parameters.
In both cases, the values of the enums were not present in the generated
YAML.
Mapping this in YAML is a bit complicated, because we can't give
`yaml::IO` a reference to the flags. I used local variables and a check
if we're reading to re-assemble the flags.
[VPlan] Cost scalar IV steps in replicate regions. (#221995)
Replace the return 0 bail-out in VPScalarIVStepsRecipe::computeCost in
replicate regions by properly scaling by the execution probability of
the region.
PR: https://github.com/llvm/llvm-project/pull/221995