LLVM/project 1a1657b — llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/RISCV strided-load-stride-trunc.ll

[SLP]Fix APInt assertion for constant stride wider than index type

The stride, computed as a difference of offsets wrapped in the index
width, may not fit the index type (e.g. 2^31 in i32). Truncate it;
address arithmetic wraps at the index width, so the accessed lanes
stay the same.

Fixes #236180

Assisted-by: Cursor

Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/236627
DeltaFile
+224-0llvm/test/Transforms/SLPVectorizer/X86/reduction-same-vals-scale-trunc.ll
+18-0llvm/test/Transforms/SLPVectorizer/RISCV/strided-load-stride-trunc.ll
+4-2llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+246-23 files

LLVM/project 9f173e0 — clang/include/clang/Basic DiagnosticDriverKinds.td, clang/lib/Driver/ToolChains CommonArgs.cpp SYCL.cpp

[Driver][SYCL] Skip the spirv64 builtins library when it is missing (#236556)

#218528 made a missing `libclang_rt.builtins.bc` an error for SYCL
spirv64 device compilations. That library is only built when compiler-rt
is built for spirv64, so every Clang built without it, including the one
on godbolt.org, now fails on plain `-fsycl` (reported in
https://github.com/llvm/llvm-project/pull/218528#issuecomment-6426376844).

Link the library when it is present and skip it otherwise, as the driver
already does for the OpenMP NVPTX and AMDGPU builtins (#109152).
DeltaFile
+12-11clang/test/Driver/sycl-device-lib-spirv64.cpp
+3-3clang/lib/Driver/ToolChains/SYCL.cpp
+1-3clang/include/clang/Basic/DiagnosticDriverKinds.td
+2-2clang/lib/Driver/ToolChains/CommonArgs.cpp
+18-194 files

LLVM/project 9143264 — llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes LoadStoreVec.h, llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes LoadStoreVec.cpp

[SandboxVec][LoadStoreVec] Move contiguity check into canVectorize() (NFC)

Both vectorizeStores() and vectorizeLoads() (via createVectorLoad())
checked that the bundle is consecutive right before calling
canVectorize(). Fold that check into canVectorize() so that every
caller gets it.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+8-9llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/LoadStoreVec.cpp
+2-2llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/LoadStoreVec.h
+10-112 files

LLVM/project f4e1827 — llvm/lib/Transforms/Vectorize/SandboxVectorizer Legality.cpp, llvm/test/Transforms/SandboxVectorizer/Passes/LoadStoreVec load_store_vec_load_seeds.ll

[SandboxVec][LoadStoreVec] Reject bundles that cannot be scheduled

canVectorizeLSV() created a CantSchedule result when the scheduler
failed, but did not return it, so such bundles were still reported as
Widen. For a load chain like

  %ld0 = load i32, ptr %p0
  store i32 %ld0, ptr %p1
  %ld1 = load i32, ptr %p1

the vector load was placed after %ld1 and the store was rewritten to
use a lane extracted from it, producing a use before its definition.
Return the CantSchedule result.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+23-0llvm/test/Transforms/SandboxVectorizer/Passes/LoadStoreVec/load_store_vec_load_seeds.ll
+1-1llvm/lib/Transforms/Vectorize/SandboxVectorizer/Legality.cpp
+24-12 files

LLVM/project d8cc92e — compiler-rt/test/asan/TestCases intercept-rethrow-exception.cpp

[asan][test] XFAIL intercept-rethrow-exception.cpp on Android again (#236624)

#236607 removed this XFAIL together with the rest of #235557, on the
assumption that the failure came from #196388. It does not: the test
still fails on sanitizer-x86_64-linux-android, for both x86_64 and i686,
with #196388 reverted
(https://lab.llvm.org/buildbot/#/builders/186/builds/3859).

That bot only started running lit tests on Android emulators after
#196388 had landed, so it never showed this test passing before it. The
other two tests whose XFAILs #236607 removed now pass.
DeltaFile
+5-0compiler-rt/test/asan/TestCases/intercept-rethrow-exception.cpp
+5-01 files

LLVM/project 09c7aaa — utils/bazel/llvm-project-overlay/clang BUILD.bazel

[Bazel] Fixes 16b31a8 (#236621)

This fixes 16b31a851f863dad2223e5146c238e33393ed239 (#235039).

Buildkite error link:
https://buildkite.com/llvm-project/upstream-bazel/builds?commit=16b31a851f863dad2223e5146c238e33393ed239

Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
DeltaFile
+9-0utils/bazel/llvm-project-overlay/clang/BUILD.bazel
+9-01 files

LLVM/project bf968dc — lld/MachO ExportTrie.cpp

[lld-macho] Build the export trie by edges, not bytes

Emit singleton suffixes directly and scan common prefixes in one pass,
avoiding repeated byte-wise partitioning. This speeds up builds that
emit large export tries.

Wall time with
[LinkerBench](https://github.com/int3/macho-linker-bench),
release build, assertions off. Median ± 95% CI over at least 20
interleaved
runs per side.

## M4 Mac mini (10 cores, 16 GB):

| Link | Exports | 10 threads | 1 thread |
| --- | ---: | ---: | ---: |
| rust-analyzer (debug) | 248,607 | 650.3 ± 1.2 → 625.4 ± 1.9 ms (−3.8%)
| 951.7 ± 0.9 → 870.3 ± 1.7 ms (−8.6%) |
| SourceKit-LSP | 105,359 | 604.2 ± 2.3 → 605.4 ± 1.6 ms | 774.5 ± 1.3 →

    [14 lines not shown]
DeltaFile
+28-0lld/MachO/ExportTrie.cpp
+28-01 files

LLVM/project ae66789 — lld/MachO ExportTrie.cpp

[lld-macho] Build the export trie by edges, not bytes (#234857)

Emit singleton suffixes directly and scan common prefixes in one pass,
avoiding repeated byte-wise partitioning. This speeds up builds that
emit large export tries.

Wall time with
[LinkerBench](https://github.com/int3/macho-linker-bench),
release build, assertions off. Median ± 95% CI over at least 20
interleaved
runs per side.

## M4 Mac mini (10 cores, 16 GB):

| Link | Exports | 10 threads | 1 thread |
| --- | ---: | ---: | ---: |
| rust-analyzer (debug) | 248,607 | 650.3 ± 1.2 → 625.4 ± 1.9 ms (−3.8%)
| 951.7 ± 0.9 → 870.3 ± 1.7 ms (−8.6%) |
| SourceKit-LSP | 105,359 | 604.2 ± 2.3 → 605.4 ± 1.6 ms | 774.5 ± 1.3 →

    [13 lines not shown]
DeltaFile
+28-0lld/MachO/ExportTrie.cpp
+28-01 files

LLVM/project 58c2417 — llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/lib/Transforms/Vectorize/SLPVectorizer SLPUtils.h SLPUtils.cpp

[SLP]Extract vectorized pointers used by vector loads

Blended loads, loads of extracted aggregates and loads with leading
poison lanes use scalar pointers directly, which get erased if they
are vectorized. Register them as external uses to replace all their
uses with the extracts.

Fixes #236177

Assisted-by: Cursor

Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/236623
DeltaFile
+58-0llvm/test/Transforms/SLPVectorizer/X86/load-poison-lane-vectorized-ptr.ll
+52-0llvm/test/Transforms/SLPVectorizer/X86/blended-load-vectorized-bases.ll
+43-0llvm/test/Transforms/SLPVectorizer/X86/extractvalue-load-vectorized-ptr.ll
+28-10llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+7-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.cpp
+5-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.h
+193-106 files

LLVM/project ad13d6f — llvm/lib/Target/LoongArch LoongArchISelLowering.h LoongArchISelLowering.cpp, llvm/test/CodeGen/LoongArch bstrins-bstrpick-known-bits.ll

[LoongArch] Compute known bits and sign bits for BSTRINS/BSTRPICK (#233738)

BSTRINS and BSTRPICK are formed early by DAG combines, so the generic
known-bits and sign-bits analyses see them as opaque target nodes. When
such a value is live out of a block, its LiveOutInfo is lost and PHIs
merging it can no longer prove that the value is already sign- or
zero-extended, leaving redundant addi.w/bstrpick.d behind.

This is common in Rust code decoding UTF-8, e.g. `str::chars().rev()`,
where the multi-byte path assembles the code point with bstrins.d and is
merged with the ASCII byte loaded by ld.b before an i32 compare.

rustc-perf svg-parse-1 on LA664: instructions -2.4%, cycles -1.7%.
DeltaFile
+41-0llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
+1-5llvm/test/CodeGen/LoongArch/bstrins-bstrpick-known-bits.ll
+4-0llvm/lib/Target/LoongArch/LoongArchISelLowering.h
+46-53 files

LLVM/project cb57046 — llvm/test/CodeGen/LoongArch bstrins-bstrpick-known-bits.ll

[LoongArch][NFC] Pre-commit tests for BSTRINS/BSTRPICK known bits (#233737)
DeltaFile
+140-0llvm/test/CodeGen/LoongArch/bstrins-bstrpick-known-bits.ll
+140-01 files

LLVM/project 16b31a8 — clang/include module.modulemap, clang/include/clang/Basic CMakeLists.txt TargetBuiltins.h

[clang][NFC] Migrate old AVR builtins to TableGen (#235039)
DeltaFile
+68-0clang/include/clang/Basic/BuiltinsAVR.td
+0-47clang/include/clang/Basic/BuiltinsAVR.def
+9-10clang/lib/Basic/Targets/AVR.cpp
+3-2clang/include/clang/Basic/TargetBuiltins.h
+4-0clang/include/clang/Basic/CMakeLists.txt
+0-1clang/include/module.modulemap
+84-606 files

LLVM/project 714ea7d — llvm/lib/Transforms/Instrumentation PGOInstrumentation.cpp, llvm/test/Transforms/PGOProfile dense-wave-cfg.ll wave-profile-use.ll

[PGO] Load GPU wave counts into IR metadata

GPU profiles contain wave counts alongside lane counts, but profile use
does not expose them to optimizations. Wave visits do not obey scalar
flow conservation, so unmeasured blocks cannot use counts reconstructed
from neighboring blocks or ordinary branch weights.

Map wave-counter indices to the blocks selected by PGO instrumentation,
after reproducing its critical-edge splits. For dense profiles, also map the
appended wave-only slots to eligible blocks in function order, after the
original block/select prefix. Select the layout from the profile flags.
Attach measured counts using wave.profile metadata, retaining measured
zeros and marking blocks without measurements unavailable. Require a
measured entry count for normalization and exclude select-counter slots
from the block mapping. Repeated instrumentation sites for the same block
represent one measurement and are not summed.

Validate the wave-counter layout against the accepted lane profile.
Clear old wave metadata when loading a replacement profile, including

    [14 lines not shown]
DeltaFile
+291-0llvm/test/Transforms/PGOProfile/wave-profile-use.ll
+56-0llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
+15-1llvm/test/Transforms/PGOProfile/dense-wave-cfg.ll
+362-13 files

LLVM/project a7e8295 — llvm/docs LangRef.md, llvm/include/llvm/IR ProfDataUtils.h

[IR] Define GPU wave-profile metadata

Existing offload GPU profile counters measure lane executions, while
GPU instructions execute at wave granularity under an active-lane
mask. A block visited by every wave can therefore look cold when only
a few lanes are active. Scalar branch weights also cannot represent a
divergent wave visiting both successors before reconverging. These
profiles are a poor fit for optimizations that estimate work performed
by a wave.

Lane counters remain useful for measuring per-lane branch selectivity
and estimating work that scales with the number of active lanes.
Wave counters cannot replace them: a visit with one active lane and a
visit with all lanes active both count as one. The two profiles provide
complementary information about instruction execution and lane activity.

Introduce wave.profile and wave.profile.block metadata to represent
measured wave visits to IR blocks. Each dynamic visit with at least one
active lane contributes one to the count. A measured zero is distinct

    [19 lines not shown]
DeltaFile
+880-0llvm/unittests/IR/ProfDataUtilsTest.cpp
+403-0llvm/lib/IR/ProfDataUtils.cpp
+91-0llvm/test/Verifier/wave-profile.ll
+79-0llvm/include/llvm/IR/ProfDataUtils.h
+47-0llvm/docs/LangRef.md
+40-0llvm/test/Bitcode/wave-profile.ll
+1,540-06 files not shown
+1,626-012 files

LLVM/project 51530e3 — llvm/lib/Target/RISCV RISCVInstrInfoP.td, llvm/test/CodeGen/RISCV rvp-scalar-rv64.ll

[RISCV][P-ext] Add isel pattern for mul.w01/mul.w11 (#236323)

`mul.w01` multiplies the sign-extended lower word of rs1 by the
 sign-extended upper word of rs2, and `mul.w11` multiplies the
 sign-extended upper words of both. Both produce a 64-bit result and
 are RV64 only.

 Previously, (sra X, 32) was selected as a separate srai feeding `mul`.
 Match it directly so the shift is folded.
DeltaFile
+46-2llvm/test/CodeGen/RISCV/rvp-scalar-rv64.ll
+4-0llvm/lib/Target/RISCV/RISCVInstrInfoP.td
+50-22 files

LLVM/project 1838cef — llvm/lib/Support regcomp.c

[Support] Add missing cast to uch (#236493)

In #174150, a call to `isdigit(PEEK())` was added, but `PEEK()` expands
to an expression of type `char` and `isdigit` requires its argument to
be `unsigned char`. Elsewhere in this file, this is done by just casting
the argument, `isalpha((uch)PEEK())`, so do the same here.
DeltaFile
+1-1llvm/lib/Support/regcomp.c
+1-11 files

LLVM/project 75be70a — compiler-rt/lib/asan asan_new_delete.cpp, compiler-rt/test/sanitizer_common/TestCases max_allocation_size.cpp throw_bad_alloc_oversize.cpp

Revert "[asan] Adopt sanitizer_common operator-new framework (#196388)" (#236607)

#196388 made ASan's throwing operator new throw std::bad_alloc when
allocator_may_return_null=1. That exception does not reach the caller in
two configurations:

- arm64 Darwin linked with ld64.lld. asan_win.cpp compiles to an empty
object that is linked right before asan_new_delete.cpp.o, and ld64.lld
writes an encoding-0 (no unwind information) compact unwind entry at
operator new's address (#224949). The unwinder cannot step out of
operator new, so the std::bad_alloc it throws terminates the program
instead of reaching the caller's handler. The linker fix is #225055.
- Android. Both libclang_rt.asan-\*-android.so and libc++_shared.so link
static libc++abi.a, so the two libraries have separate new-handler state
and std::bad_alloc type info (#235557).

This also reverts #235557, which marked tests XFAIL on Android only
because of #196388.


    [4 lines not shown]
DeltaFile
+45-12compiler-rt/lib/asan/asan_new_delete.cpp
+0-52compiler-rt/test/sanitizer_common/TestCases/new_handler_invocation.cpp
+0-51compiler-rt/test/sanitizer_common/TestCases/throw_bad_alloc_aligned.cpp
+0-45compiler-rt/test/sanitizer_common/TestCases/throw_bad_alloc_aligned_single.cpp
+0-44compiler-rt/test/sanitizer_common/TestCases/throw_bad_alloc_oversize.cpp
+7-31compiler-rt/test/sanitizer_common/TestCases/max_allocation_size.cpp
+52-23512 files not shown
+76-45218 files

LLVM/project 59ddb48 — lldb/source/Plugins/Language/CPlusPlus LibStdcpp.cpp LibStdcppAtomic.cpp, lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic-simulators/libstdcpp-atomic TestDataFormatterLibstdcppAtomicSimulator.py main.cpp

[lldb] Add libstdcpp atomic data formatters (#174218)

This patch adds a new synthetic child provider and a summary formatter
for the libstdc++ implementation of std::atomic<>.
DeltaFile
+159-0lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic-simulators/libstdcpp-atomic/main.cpp
+136-0lldb/source/Plugins/Language/CPlusPlus/LibStdcppAtomic.cpp
+81-0lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic-simulators/libstdcpp-atomic/TestDataFormatterLibstdcppAtomicSimulator.py
+69-2lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/atomic/TestDataFormatterStdAtomic.py
+43-2lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp
+41-0lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/atomic/main.cpp
+529-45 files not shown
+569-1411 files

LLVM/project 3bfb7c0 — offload/libompaccsupport device.cpp

[Offload] Remove unused GenericDevice in DeviceTy::launchKernel (NFC) (#236593)

The last use of GenericDevice in DeviceTy::launchKernel was removed on
October 28, 2026 in commit 8a29b68622037494f3e678cd2832b511fe2f3a9b.

Assisted-by: Antigravity
DeltaFile
+0-1offload/libompaccsupport/device.cpp
+0-11 files

LLVM/project 8203137 — llvm/lib/Transforms/Instrumentation PGOInstrumentation.cpp

[PGO] Use the iterator-only IRBuilder constructor

Dense wave instrumentation uses a deprecated IRBuilder constructor that
takes both a block and an insertion iterator. This fails builds that
treat deprecation warnings as errors.

Use the iterator-only constructor. It obtains the same block from the
iterator and preserves the insertion point.
DeltaFile
+1-1llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
+1-11 files

LLVM/project 2472cdd — clang/include/clang/Tooling DependencyScanningTool.h, clang/lib/DependencyScanning DependencyScanningWorker.cpp

Handle prebuilt modules.
DeltaFile
+25-0clang/unittests/Tooling/DependencyScannerTest.cpp
+6-0clang/lib/DependencyScanning/DependencyScanningWorker.cpp
+2-1clang/include/clang/Tooling/DependencyScanningTool.h
+33-13 files

LLVM/project 39d4594 — llvm/test/CodeGen/AArch64 sve-fixed-length-masked-expandloads.ll, llvm/test/CodeGen/AMDGPU bitcast_vector_bigint.ll min.ll

[SelectionDAG] Pack promoted vector bitcasts (#235918)

# Symptom

Promoting an integer vector widens each element, leaving padding between
the original values. `PromoteIntOp_BITCAST` falls back to
`CreateStackStoreLoad` for these inputs, even when the result can be
assembled directly in registers.

For example:

```llvm
define <2 x i32> @pack(<16 x i4> %x) {
  %r = bitcast <16 x i4> %x to <2 x i32>
  ret <2 x i32> %r
}
```

# Fix

    [7 lines not shown]
DeltaFile
+4,101-4,285llvm/test/CodeGen/AArch64/sve-fixed-length-masked-expandloads.ll
+981-2,174llvm/test/CodeGen/AMDGPU/load-global-i8.ll
+479-1,254llvm/test/CodeGen/AMDGPU/kernel-args.ll
+481-1,089llvm/test/CodeGen/AMDGPU/load-constant-i8.ll
+184-274llvm/test/CodeGen/AMDGPU/min.ll
+408-0llvm/test/CodeGen/AMDGPU/bitcast_vector_bigint.ll
+6,634-9,07615 files not shown
+7,110-9,74221 files

LLVM/project 703bc0d — llvm/include/llvm/Analysis ValueTracking.h, llvm/include/llvm/IR ConstantFPRange.h

Reland [KnownFPClass] Refactor NaN sign encoding for KnownFPClass (#236319)

Relands https://github.com/llvm/llvm-project/pull/220606, which was
reverted in https://github.com/llvm/llvm-project/pull/235992.

The original PR broke GCC builds on `main` because the `&=` operator
from `BitmaskEnum.h` was not `constexpr`. This was fixed in
https://github.com/llvm/llvm-project/pull/236003. This PR relands the
original changes from https://github.com/llvm/llvm-project/pull/220606
unmodified.
DeltaFile
+256-78llvm/include/llvm/Support/KnownFPClass.h
+5-19llvm/lib/Support/KnownFPClass.cpp
+1-1llvm/include/llvm/IR/ConstantFPRange.h
+1-1llvm/include/llvm/Analysis/ValueTracking.h
+263-994 files

LLVM/project 80a97c8 — mlir/include/mlir/Analysis/Presburger IntegerRelation.h, mlir/lib/Analysis/Presburger IntegerRelation.cpp

[mlir][Presburger] Add IntegerRelation::gist (context-based simplification)

Add IntegerRelation::gist(context), a port of ISL's isl_basic_map_gist
(uset_gist / uset_gist_full). It replaces the relation S by a relation
S' such that S' ∩ context == S ∩ context, with as few constraints as
possible: constraints of S that are implied by the context together with
the remaining constraints of S are removed, and the remaining constraints
may be rewritten using the equalities of the context. Outside of the
context S' may differ from S, so the result is only meaningful together
with the context. The result has at most as many constraints as S
(except that the constraints defining a division that is still used may
be restored, see below), never more local variables, and never involves
variables that S does not involve; in particular, locals of the context
are never introduced.

Trivial cases: an obviously empty context yields the universe; if the
intersection with the context is found to be empty later (inconsistent
combined equalities, a context that turns out to be rationally empty, or
an empty combined Simplex), the result is empty; an obviously empty S

    [43 lines not shown]
DeltaFile
+489-0mlir/unittests/Analysis/Presburger/IntegerPolyhedronTest.cpp
+281-0mlir/lib/Analysis/Presburger/IntegerRelation.cpp
+48-1mlir/include/mlir/Analysis/Presburger/IntegerRelation.h
+41-0mlir/unittests/Analysis/Presburger/IntegerRelationTest.cpp
+34-0mlir/unittests/Analysis/Presburger/Utils.h
+893-15 files

LLVM/project 0728e6f — mlir/include/mlir/Analysis/Presburger PresburgerRelation.h, mlir/lib/Analysis/Presburger PresburgerRelation.cpp

[mlir][Presburger] Add PresburgerRelation::gist

Add PresburgerRelation::gist (and PresburgerSet forwarding overloads)
for a convex context and for a context that is itself a union of
disjuncts, following ISL's isl_map_gist / isl_map_gist_basic_map.

For a convex context, each disjunct is simplified separately with
IntegerRelation::gist; disjuncts that become empty are dropped and if any
disjunct becomes the universe, the universe is returned.

For a non-convex context, the trivial cases (universe set or context,
empty context, equal set and context, context being a subset of the
set) are handled first. Otherwise, the context is approximated by a
convex set. Instead of ISL's unshifted simple hull of the context and the
set, we use the universe together with all constraints of the disjuncts
of the context and of the set that are valid for every disjunct of the
context (checked with Simplex); including the constraints of the set
allows removing constraints that are implied by every disjunct of the
context even if they are not implied by the simple hull.
DeltaFile
+142-0mlir/unittests/Analysis/Presburger/PresburgerSetTest.cpp
+122-0mlir/lib/Analysis/Presburger/PresburgerRelation.cpp
+39-0mlir/unittests/Analysis/Presburger/PresburgerRelationTest.cpp
+23-0mlir/include/mlir/Analysis/Presburger/PresburgerRelation.h
+326-04 files

LLVM/project 99d5bc6 — mlir/include/mlir/Analysis/Presburger IntegerRelation.h, mlir/lib/Analysis/Presburger IntegerRelation.cpp

[mlir][Presburger] Add IntegerRelation::reduceUsingEqualities helper

Add a protected helper that rewrites all constraints of a relation using
the equalities of another relation in the same space, without changing
the intersection of the two. This is a port of ISL's
isl_basic_set_reduce_using_equalities together with
project_onto_involved: the equalities are first projected onto the
variables that occur in the relation being reduced, so that no new
variables (in particular, no locals of the other relation) are
introduced, and each remaining equality is then used to eliminate its
last variable with a non-zero coefficient from every constraint, so that
later variables (locals) are eliminated in favor of earlier ones.

This is a building block for context-based simplification (gist) and is
exercised by the gist tests added in a follow-up commit, since there is
no existing pattern for unit-testing protected members of
IntegerRelation.

DeltaFile
+108-0mlir/lib/Analysis/Presburger/IntegerRelation.cpp
+17-0mlir/include/mlir/Analysis/Presburger/IntegerRelation.h
+125-02 files

LLVM/project faf0162 — mlir/include/mlir/Analysis/Presburger IntegerRelation.h, mlir/lib/Analysis/Presburger IntegerRelation.cpp

[mlir][Presburger] NFC: factor out removeRedundantConstraintsFromSimplex

Split the compaction loops of IntegerRelation::removeRedundantConstraints
into a new protected helper, removeRedundantConstraintsFromSimplex, which
removes the constraints of the relation that are marked redundant in a
given Simplex, where the relation's constraints start at a given offset
in the Simplex (inequalities first, then each equality as a pair).

This allows reusing the same compaction logic when the relation's
constraints have been added to a Simplex that already contains other
constraints, e.g., for context-based simplification (gist), where the
context's constraints come first and are never marked redundant.

DeltaFile
+12-4mlir/lib/Analysis/Presburger/IntegerRelation.cpp
+14-0mlir/include/mlir/Analysis/Presburger/IntegerRelation.h
+26-42 files

LLVM/project 6c54e4a — .ci/lnt/llvm-test-suite machines.json clang-macos.cmake

Build the compiler-rt builtins on macOS
DeltaFile
+6-0.ci/lnt/llvm-test-suite/clang-macos.cmake
+1-1.ci/lnt/llvm-test-suite/machines.json
+7-12 files

LLVM/project a4d02e4 — .github/workflows llvm-test-suite-test.yml

[DO NOT MERGE] Add a temporary workflow to test the llvm-test-suite LNT workflows
DeltaFile
+50-0.github/workflows/llvm-test-suite-test.yml
+50-01 files

LLVM/project 9f8c35c — llvm/docs/CommandGuide llvm-mc.md, llvm/lib/Support SourceMgrDiagnosticVerifier.cpp

[nspr] synthetic base branch
DeltaFile
+168-0llvm/test/tools/llvm-mc/verify/basic.s
+90-24llvm/lib/Support/SourceMgrDiagnosticVerifier.cpp
+78-13llvm/tools/llvm-mc/llvm-mc.cpp
+51-0llvm/test/tools/llvm-mc/verify/line-offsets.s
+32-0llvm/docs/CommandGuide/llvm-mc.md
+17-0llvm/test/tools/llvm-mc/verify/include-twice.s
+436-3723 files not shown
+519-8029 files