[MLIR] mlir_levelzero_runtime: remove dependency on LLVM (#182942)
L0 runtime can be built standalone without any dependency on LLVM/MLIR
components.
Remove remaining small dependency from L0 runtime
[Github] Enable long paths in windows CI Container (#184224)
Otherwise we run into issues with file paths >260 characters. This was
preventing us from updating the Windows container as last time we built
the container it came with a MSVC supplied CMake update, which used
absolute paths in more places, bumping us over the limit.
https://github.com/ninja-build/ninja/issues/2400https://gitlab.kitware.com/cmake/cmake/-/issues/22435
[clang][clang-scan-deps] Add LangOptions::AllowLiteralDigitSeparator to fix #88896 (#184235)
Fixes #88896 by following the approach described in
https://github.com/llvm/llvm-project/pull/95798#discussion_r1649496882.
This adds `LangOptions::AllowLiteralDigitSeparator`, following the
pattern used for `RawStringLiterals` in #88265.
It is enabled by default for C++14 and C23, and the Scanner sets it
explicitly to always allow literals with digit separators in directives.
Originally authored by @tsfn (Yifan Fang, <gatsfn at gmail.com>) in
#158420.
Co-authored-by: Yifan Fang <gatsfn at gmail.com>
Revert "[OpenMP][Offload] Handle `present/to/from` when a different entry did `alloc/delete`." (#184240)
Reverts llvm/llvm-project#165494
Some buildbots are not happy about CHECKs enforcing strict ordering of
prints inside/after target regions.
[CIR] Split cir.binop into separate per-operation binary ops
LLVM lowering uses per-op patterns generated by the CIRLowering.inc TableGen
infrastructure instead of a monolithic TypeSwitch dispatch.
[flang] Allow acc cache directive inside acc routine (#184213)
While the spec allows the cache directive "at the top of (inside of) a
loop", the directive has also been utilized at the top of an acc
routine. This PR adds support for that.
[clang][deps] Remove the `finalize()` API for by-module-name scans (#184232)
The `DiagnosticConsumer::finish()` API was removed in #183831. Since
that was the only thing the by-module-name `finalize()` API called, we
can safely remove that and simplify the scanner.
[Github][bazel] Run `buildifier --mode=diff` on error (#184233)
Displaying the diff helps point to what the issue is, including if it's
even related to the change at all.
This also expands the pattern to some other files that don't match
`*BUILD*`, e.g. `*.bzl` files.
Example failure:
https://github.com/llvm/llvm-project/actions/runs/22595929783/job/65465781106
[CIR] Split cir.binop into separate per-operation binary ops
LLVM lowering uses per-op patterns generated by the CIRLowering.inc TableGen
infrastructure instead of a monolithic TypeSwitch dispatch.
[LAA] Always use DepCands when grouping runtime checks. (#91196)
Update groupChecks to always use DepCands to try and merge runtime
checks. DepCands contains the dependency partition, grouping together
all accessed pointers to he same underlying objects.
If we computed the dependencies, We only need to check accesses to the
same underlying object, if there is an unknown dependency for this
underlying object; otherwise we already proved that all accesses withing
the underlying object are safe w.r.t. vectorization and we only need to
check that accesses to the underlying object don't overlap with accesses
to other underlying objects.
To ensure runtime checks are generated for the case with unknown
dependencies, remove equivalence classes containing accesses involved in
unknown dependencies.
This reduces the number of runtime checks needed in case non-constant
dependence distances are found, and is in preparation for removing the
[3 lines not shown]
Handle dynamic affinity object sizes and improve iterator coverage
Teach task affinity lowering to compute lengths for dynamic objects
instead of falling back to zero for whole-object cases such as
assumed-shape, allocatable, pointer, character, and polymorphic type.
Add more tests in task-affinity
- assumed-shape, allocatable, pointer, and polymorphic objects
- character objects with constant and runtime length
- iterator character element affinity
- reordered, expression, and section iterator subscripts
- Extract iterator handling from processAffinity
Lower iterator affinity subscripts and sections correctly
Teach OpenMP affinity lowering to evaluate iterator-dependent subscripts
through the iterator symbol mapping and use them to build the element
coordinate directly.
This fixes cases such as:
- affinity(iterator(i,j): a(j,i))
- affinity(iterator(i,j): a(i+1,j))
- affinity(iterator(i,j): a(i:i+1,j+2))
- affinity(iterator(i,j): a(:i+1,j+2))
[clang] NFC: remove unused / untested workaround in pack deduction (#183875)
This snippet was part of what was introduced in
130cc445e46836b28defdce03b1adfdb16ddcf41
However, none of the existing tests require it, including the tests
added in that commit.
One of those tests had a FIXME which was fixed when we switched
frelaxed-template-template-args on by default as well.
[DominanceFrontier] Support multiple root nodes for post-dom (#181257)
Post-dominator tree has a notion of a single virtual root node, use that
in the dominance-frontier implementation to support multiple root nodes.
Originally part of https://github.com/llvm/llvm-project/pull/179336 but
split up into a separate later PR to ease review.
---------
Co-authored-by: Luke Lau <luke_lau at icloud.com>
[CIR] Split cir.binop into separate per-operation binary ops
LLVM lowering uses per-op patterns generated by the CIRLowering.inc TableGen
infrastructure instead of a monolithic TypeSwitch dispatch.
[Github] Remove force build from windows container
This did not actually bump the LLVM version (see fixes in #184231) and
will not be necessary now that other patches will be going in forcing a
rebuild anyways.