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

LLVM/project 883c0ad — clang/test/CIR/IR invalid-vtable.cir, flang/test/Transforms generic-loop-rewriting-todo.mlir

[nspr] update
DeltaFile
+1-1flang/test/Transforms/generic-loop-rewriting-todo.mlir
+1-1clang/test/CIR/IR/invalid-vtable.cir
+2-0mlir/test/Examples/transform/Ch1/invalidation-1.mlir
+4-23 files

LLVM/project 27f6b5b — 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 6c2b17a — 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 6809506 — lldb/include/lldb/DataFormatters FormatCache.h, lldb/source/DataFormatters FormatCache.cpp

[lldb] Remove ConstString in FormatCache (#236521)
DeltaFile
+10-9lldb/include/lldb/DataFormatters/FormatCache.h
+9-7lldb/source/DataFormatters/FormatCache.cpp
+19-162 files

LLVM/project 5d661d1 — llvm/lib/CodeGen/SelectionDAG LegalizeIntegerTypes.cpp

perf: reserve promoted bitcast elements
DeltaFile
+1-0llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
+1-01 files

LLVM/project 8f6b51c — lldb/include/lldb/Target Trace.h, lldb/source/Plugins/TraceExporter/common TraceHTR.h TraceHTR.cpp

[lldb] Remove ConstString from Trace and TraceExporter (#236535)
DeltaFile
+20-22lldb/source/Target/Trace.cpp
+10-11lldb/source/Plugins/TraceExporter/common/TraceHTR.cpp
+7-8lldb/include/lldb/Target/Trace.h
+5-5lldb/source/Plugins/TraceExporter/common/TraceHTR.h
+42-464 files

LLVM/project 4bb940c — flang/test/Semantics/OpenMP metadirective-declare-reduction-v52.f90 metadirective-declare-reduction-v51.f90

Add metadirective nothing per reviewer request
DeltaFile
+1-0flang/test/Semantics/OpenMP/metadirective-declare-reduction-v52.f90
+1-0flang/test/Semantics/OpenMP/metadirective-declare-reduction-v51.f90
+2-02 files

LLVM/project 7d992f4 — flang/test/Semantics/OpenMP metadirective-declare-reduction-v52.f90 metadirective-declare-reduction-v51.f90

Add checks for DECLARE_REDUCTION in DEFAULT/OTHERWISE
DeltaFile
+14-0flang/test/Semantics/OpenMP/metadirective-declare-reduction-v52.f90
+14-0flang/test/Semantics/OpenMP/metadirective-declare-reduction-v51.f90
+28-02 files

LLVM/project 9cc5f89 — flang/lib/Parser openmp-parsers.cpp

Add missing stylized instantiations
DeltaFile
+6-4flang/lib/Parser/openmp-parsers.cpp
+6-41 files

LLVM/project 1538b67 — flang/test/Semantics/OpenMP metadirective-declare-reduction-v52.f90 metadirective-declare-reduction-v51.f90

Change plus to + in two tests
DeltaFile
+4-1flang/test/Semantics/OpenMP/metadirective-declare-reduction-v52.f90
+4-1flang/test/Semantics/OpenMP/metadirective-declare-reduction-v51.f90
+8-22 files

LLVM/project 0d8ecb6 — flang/lib/Semantics check-omp-variant.cpp, flang/test/Semantics/OpenMP metadirective-declare-reduction.f90 metadirective-declare-reduction-v51.f90

Address review comments
DeltaFile
+0-15flang/test/Semantics/OpenMP/metadirective-declare-reduction.f90
+15-0flang/test/Semantics/OpenMP/metadirective-declare-reduction-v51.f90
+15-0flang/test/Semantics/OpenMP/metadirective-declare-reduction-v52.f90
+1-1flang/lib/Semantics/check-omp-variant.cpp
+31-164 files

LLVM/project e473ecd — flang/lib/Semantics openmp-utils.cpp

Add missing include
DeltaFile
+1-0flang/lib/Semantics/openmp-utils.cpp
+1-01 files

LLVM/project 4819c43 — flang/lib/Semantics canonicalize-omp.cpp, flang/test/Semantics/OpenMP metadirective-common.f90 metadirective-declare-reduction-v52.f90

Treat ERROR AT(COMPILATION) as neutral
DeltaFile
+29-9flang/lib/Semantics/canonicalize-omp.cpp
+20-0flang/test/Semantics/OpenMP/metadirective-declare-reduction-v52.f90
+20-0flang/test/Semantics/OpenMP/metadirective-declare-reduction-v51.f90
+7-0flang/test/Semantics/OpenMP/metadirective-common.f90
+76-94 files

LLVM/project e552ac9 — flang/lib/Semantics check-omp-variant.cpp openmp-utils.cpp

format
DeltaFile
+2-2flang/lib/Semantics/openmp-utils.cpp
+0-1flang/lib/Semantics/check-omp-variant.cpp
+2-32 files

LLVM/project 9fa3913 — flang/lib/Semantics canonicalize-omp.cpp, flang/test/Semantics/OpenMP metadirective-declare-reduction-v52.f90 metadirective-declare-reduction-v51.f90

Missing AT is equivalent to AT(COMPILATION)
DeltaFile
+8-0flang/test/Semantics/OpenMP/metadirective-declare-reduction-v52.f90
+8-0flang/test/Semantics/OpenMP/metadirective-declare-reduction-v51.f90
+1-0flang/lib/Semantics/canonicalize-omp.cpp
+17-03 files

LLVM/project 7089202 — flang/lib/Semantics check-omp-variant.cpp

Limit checks to current METADIRECTIVE
DeltaFile
+17-7flang/lib/Semantics/check-omp-variant.cpp
+17-71 files

LLVM/project 76145c3 — flang/lib/Semantics check-omp-structure.h tools.cpp, flang/test/Semantics/OpenMP reduction14.f90 declare-reduction-bad-operator.f90

[flang][OpenMP] Improve diagnosing invalid operators in DECLARE_REDUCTION

Move the check out of the common MakeNameFromOperator function and
into OmpStructureChecker. Remove the no longer needed SemanticsContext
parameter in MakeNameFromOperator.

This will allow reusing at least some parts of the the name-mangling
code in DECLARE_INDUCTION.
DeltaFile
+51-19flang/lib/Semantics/check-omp-structure.cpp
+3-5flang/lib/Semantics/tools.cpp
+4-2flang/lib/Semantics/check-omp-structure.h
+3-2flang/test/Semantics/OpenMP/reduction-subtract.f90
+2-2flang/test/Semantics/OpenMP/declare-reduction-bad-operator.f90
+2-1flang/test/Semantics/OpenMP/reduction14.f90
+65-317 files not shown
+72-4113 files

LLVM/project bacb7b9 — flang/lib/Semantics check-omp-structure.h check-omp-structure.cpp, flang/test/Semantics/OpenMP metadirective-declare-reduction.f90

Verify DECLARE_REDUCTION in METADIRECTIVE
DeltaFile
+13-0flang/lib/Semantics/check-omp-variant.cpp
+7-2flang/lib/Semantics/check-omp-structure.cpp
+9-0flang/test/Semantics/OpenMP/metadirective-declare-reduction.f90
+1-0flang/lib/Semantics/check-omp-structure.h
+30-24 files

LLVM/project b1510ae — flang/include/flang/Semantics openmp-utils.h, flang/lib/Semantics check-omp-variant.cpp openmp-utils.cpp

Verify selectorless clauses as well
DeltaFile
+35-20flang/lib/Semantics/openmp-utils.cpp
+9-15flang/lib/Semantics/check-omp-variant.cpp
+8-2flang/test/Semantics/OpenMP/metadirective-declare-reduction.f90
+5-0flang/include/flang/Semantics/openmp-utils.h
+57-374 files

LLVM/project b1e8e18 — flang/lib/Semantics check-omp-variant.cpp

format
DeltaFile
+4-2flang/lib/Semantics/check-omp-variant.cpp
+4-21 files

LLVM/project 76e574c — clang/utils/check_cfc check_cfc.py, llvm/docs ReleaseProcess.md

[docs] Remove references to the now removed `lnt runtest nt` (#236214)

`lnt runtest nt` was removed from LNT several months ago since it was
deprecated and unused. Update some documentation for the LLVM Test Suite
to avoid mentioning it, and mention the CMake build instead.

Assisted by Claude
DeltaFile
+7-9llvm/docs/ReleaseProcess.md
+4-4clang/utils/check_cfc/check_cfc.py
+11-132 files

LLVM/project 93d74dc — libcxx/test/libcxx/utilities/utility small_buffer.pass.cpp

[libc++] Remove stale XFAIL from small_buffer.pass.cpp (#234407)

The availability-aligned_allocation-missing Lit feature was removed in
ec350ad418a2 along with all of its uses, but small_buffer.pass.cpp
landed around the same time and kept referencing it.
DeltaFile
+0-2libcxx/test/libcxx/utilities/utility/small_buffer.pass.cpp
+0-21 files