LLVM/project 6b858d9clang/test/Analysis/Scalable/PointerFlow unsafe-buffer-reachable-topologies.test, clang/unittests/ScalableStaticAnalysis/WholeProgramAnalysis UnsafeBufferReachableAnalysisTest.cpp

change lit-tests to unit tests because there is no way to FileCheck json completely
DeltaFile
+394-0clang/unittests/ScalableStaticAnalysis/WholeProgramAnalysis/UnsafeBufferReachableAnalysisTest.cpp
+0-367clang/test/Analysis/Scalable/PointerFlow/unsafe-buffer-reachable-topologies.test
+394-3672 files

LLVM/project 48f081aclang/lib/ScalableStaticAnalysis/Analyses/UnsafeBufferUsage UnsafeBufferUsageAnalysis.cpp, clang/test/Analysis/Scalable/PointerFlow unsafe-buffer-reachable-cast-cycle.test

fix clang-format
DeltaFile
+2-1clang/lib/ScalableStaticAnalysis/Analyses/UnsafeBufferUsage/UnsafeBufferUsageAnalysis.cpp
+1-1clang/test/Analysis/Scalable/PointerFlow/unsafe-buffer-reachable-cast-cycle.test
+3-22 files

LLVM/project 1993e96clang/lib/ScalableStaticAnalysis/Analyses/UnsafeBufferUsage UnsafeBufferUsageAnalysis.cpp, clang/test/Analysis/Scalable/PointerFlow unsafe-buffer-reachable-cast-cycle.test unsafe-buffer-reachable-topologies.test

[SSAF][PointerFlow] Change unsafe-buffer reachability analysis back to simple graph search

Because of commit 30cd4297b, we no longer need unsafe-buffer
reachability analysis to "uncompress" pointer flow graphs. It can go
back to simple DFS. Since it deals with large data, simplicity is
important.

In addition, unit tests for the "compressed" pointer flow graphs are
moved to lit tests because they are no longer suitable as WPA unit
tests. As lit tests, they are end-to-end tests where the extractor is
involved and is responsible for generating "uncompressed" graphs.

Final step of
rdar://183529483
DeltaFile
+367-0clang/test/Analysis/Scalable/PointerFlow/unsafe-buffer-reachable-topologies.test
+0-190clang/unittests/ScalableStaticAnalysis/WholeProgramAnalysis/UnsafeBufferReachableAnalysisTest.cpp
+52-0clang/test/Analysis/Scalable/PointerFlow/unsafe-buffer-reachable-cast-cycle.test
+5-45clang/lib/ScalableStaticAnalysis/Analyses/UnsafeBufferUsage/UnsafeBufferUsageAnalysis.cpp
+424-2354 files

LLVM/project 45c256bclang/include/clang/ScalableStaticAnalysis/Analyses/EntityPointerLevel EntityPointerLevel.h, clang/lib/ScalableStaticAnalysis/Analyses/EntityPointerLevel EntityPointerLevel.cpp

[SSAF][PointerFlow] A pointer assignment may yield more than one edge (#218207)

This commit is a redesign of #198889, which introduced a non-termination
bug.

Problem:
The current pointer-flow graph has exactly one edge corresponding to an
assignment in the source code. For example, a pointer assignment p = q;
results in an edge `(p, i) -> (q, j)` for some pointer levels i and j.
In unsafe buffer propagation, the edge encodes the meaning that if `p`
is bounded, so must `q` be; additionally, if `*p (or p[x])` is bounded,
so must `*q (or q[y])` be; and so on until the maximum pointer level of
`p` or `q` is reached.

Therefore, during the graph search (WPA phase), a node `(p, i+1)` can
reach `(q, j+1)` through the edge `(p, i) -> (q, j)`. This is correct
ONLY when `p` and `q` have compatible types, which is true for most
cases due to type checking. However, this assumption does not hold in
the presence of reinterpreting casts—a pointer assignment `a = (T)b`

    [31 lines not shown]
DeltaFile
+61-54clang/lib/ScalableStaticAnalysis/Analyses/PointerFlow/PointerFlowExtractor.cpp
+38-5clang/unittests/ScalableStaticAnalysis/Analyses/PointerFlow/PointerFlowTest.cpp
+0-9clang/lib/ScalableStaticAnalysis/Analyses/EntityPointerLevel/EntityPointerLevel.cpp
+0-6clang/include/clang/ScalableStaticAnalysis/Analyses/EntityPointerLevel/EntityPointerLevel.h
+99-744 files

LLVM/project 581b39bllvm/lib/CodeGen/GlobalISel IRTranslator.cpp, llvm/test/CodeGen/AArch64/GlobalISel arm64-irtranslator-switch.ll switch-jump-table-wide-cond.ll

[GlobalISel] Fix jump table range check for switch values wider than index (#219553)
DeltaFile
+173-0llvm/test/CodeGen/AArch64/GlobalISel/switch-jump-table-wide-cond.ll
+2-3llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
+1-2llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator-switch.ll
+176-53 files

LLVM/project cb48de1llvm/test/CodeGen/AArch64 vector-ldst-align.ll vector-ldst-align-float.ll, llvm/test/CodeGen/AMDGPU global-atomicrmw-fmin.ll global-atomicrmw-fmax.ll

Merge branch 'main' into users/ziqingluo-90/PR-183529483-2
DeltaFile
+9,921-0llvm/test/CodeGen/AArch64/vector-ldst-align-float.ll
+8,227-0llvm/test/CodeGen/AArch64/vector-ldst-align.ll
+3,815-3,810llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fmin.ll
+3,815-3,810llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fmax.ll
+3,513-3,467llvm/test/CodeGen/AMDGPU/global-atomicrmw-fmin.ll
+3,513-3,467llvm/test/CodeGen/AMDGPU/global-atomicrmw-fmax.ll
+32,804-14,5547,881 files not shown
+417,470-244,4167,887 files

LLVM/project 3f7bde7llvm/include/llvm/MC/MCParser AsmLexer.h, llvm/lib/MC/MCParser AsmLexer.cpp AsmParser.cpp

[MCParser] Share identifier character set with isMacroArgChar (#219084)

Move the predicate to the header so that it can be used by the macro
argument name checker. Replace the incorrect local-sensitive isalnum()
with ASCII-only llvm::isAlnum(). Identifier character set accepting '?'
is a MC extension: https://reviews.llvm.org/D1978

While here, fix some minor bound checking related minor issues.

LLM-aided
DeltaFile
+10-11llvm/lib/MC/MCParser/AsmParser.cpp
+0-6llvm/lib/MC/MCParser/AsmLexer.cpp
+6-0llvm/include/llvm/MC/MCParser/AsmLexer.h
+16-173 files

LLVM/project 2fc2bd4llvm/unittests/IR VPIntrinsicTest.cpp

[unittests][IR] Fix VPIntrinsicTest after removal of trivial VP intrinsics (#219454)

ad9138f6b784 removed llvm.vp.{add,sub,mul,and,or,xor,ashr,lshr,shl} but
didn't update VPIntrinsicTest.cpp, which still declared/used them. The
test still passes today only because UpgradeCallsToIntrinsic silently
erases these now-unregistered bare declarations during parsing (no call
sites to rewrite), so the test never actually exercises them. Drop them
from BinaryIntOpcodes and switch llvm.vp.mul to llvm.vp.sdiv in
CanIgnoreVectorLength/VPReductions.

---------

Co-authored-by: Claude Sonnet 5 <noreply at anthropic.com>
DeltaFile
+20-116llvm/unittests/IR/VPIntrinsicTest.cpp
+20-1161 files

LLVM/project deebdb5clang/include/clang/ScalableStaticAnalysis/Analyses/EntityPointerLevel EntityPointerLevel.h, clang/lib/ScalableStaticAnalysis/Analyses/EntityPointerLevel EntityPointerLevel.cpp

[SSAF][EntityPointerLevel] Add an intermediate data structure DeclPointerLevel (#218196)

This is the first of three patches aimed at solving a non-termination
problem when using DFS in the pointer-flow graph.

Problem & context:
Currently, the pointer-flow graph creates exactly one edge corresponding
to an assignment in the source code. For example, a pointer assignment
`p = q;` results in an edge `(p, i) -> (q, j)` for some pointer levels
`i` and `j`. In unsafe buffer propagation, this edge encodes the meaning
that if `p` is bounded, `q` must also be bounded. Additionally, if
`*p/p[x]` is bounded, `*q/q[y]` must be bounded, and so on until the
maximum pointer level of `p` or `q` is reached.

Because of this, during DFS, a node `(p, i+1)` can reach `(q, j+1)`
through the edge `(p, i) -> (q, j)`. This logic is correct only when `p`
and `q` have compatible types, which is true for most cases due to
standard type checking. However, this assumption breaks down with
pointer casts. A cast like `a = (T)b` contributes an edge `(a, x) -> (b,

    [25 lines not shown]
DeltaFile
+140-72clang/lib/ScalableStaticAnalysis/Analyses/EntityPointerLevel/EntityPointerLevel.cpp
+183-0clang/unittests/ScalableStaticAnalysis/Analyses/EntityPointerLevel/EntityPointerLevelTest.cpp
+45-2clang/include/clang/ScalableStaticAnalysis/Analyses/EntityPointerLevel/EntityPointerLevel.h
+1-0clang/unittests/ScalableStaticAnalysis/CMakeLists.txt
+369-744 files

LLVM/project dd0b2a3clang/test/Analysis/Scalable/PointerFlow unsafe-buffer-reachable-topologies.test, clang/unittests/ScalableStaticAnalysis/WholeProgramAnalysis UnsafeBufferReachableAnalysisTest.cpp

change lit-tests to unit tests because there is no way to FileCheck json completely
DeltaFile
+394-0clang/unittests/ScalableStaticAnalysis/WholeProgramAnalysis/UnsafeBufferReachableAnalysisTest.cpp
+0-367clang/test/Analysis/Scalable/PointerFlow/unsafe-buffer-reachable-topologies.test
+394-3672 files

LLVM/project 7b9f30bllvm/include/llvm/ExecutionEngine/Orc SPSProxySpec.h

[ORC] Have ProxySpec call callWrapperAsync directly (#219673)

ProxySpec now drives shared::WrapperFunction<SPSSigT>::callAsync itself,
supplying a Caller that forwards to ExecutionSession::callWrapperAsync,
rather than going through ExecutionSession::callSPSWrapperAsync (which
does the same thing internally). This is a step towards removing
callSPSWrapperAsync (and other SPS-specific call APIs) from
ExecutionSession, so that callWrapperAsync remains the only core call
primitive and SPS is not baked into the core APIs.
DeltaFile
+11-4llvm/include/llvm/ExecutionEngine/Orc/SPSProxySpec.h
+11-41 files

LLVM/project cbc2e2cllvm/lib/Target/AMDGPU SIInstrInfo.h SIInstrInfo.cpp, llvm/test/CodeGen/AMDGPU lit.local.cfg

add machine verifier check
DeltaFile
+84-3llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+3-0llvm/lib/Target/AMDGPU/SIInstrInfo.h
+2-0llvm/test/CodeGen/AMDGPU/lit.local.cfg
+89-33 files

LLVM/project eb23e4cllvm/test/CodeGen/AMDGPU global-atomicrmw-fsub.ll global-atomicrmw-fmin.ll

fix pattern
DeltaFile
+8,380-0llvm/test/CodeGen/AMDGPU/schedule-amdgpu-trackers.ll
+1,481-1,527llvm/test/CodeGen/AMDGPU/float-to-arbitrary-fp-widen.ll
+542-1,095llvm/test/CodeGen/AMDGPU/global-atomicrmw-fsub.ll
+542-1,095llvm/test/CodeGen/AMDGPU/global-atomicrmw-fmin.ll
+542-1,095llvm/test/CodeGen/AMDGPU/global-atomicrmw-fmax.ll
+542-1,095llvm/test/CodeGen/AMDGPU/global-atomicrmw-fadd.ll
+12,029-5,90761 files not shown
+18,100-14,42367 files

LLVM/project bdd550cllvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/lib/Transforms/Vectorize/SLPVectorizer SLPUtils.h SLPCostAnalysis.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+274-40llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+138-97llvm/test/Transforms/PhaseOrdering/X86/avg.ll
+150-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.cpp
+47-19llvm/test/Transforms/SLPVectorizer/X86/pr48879-sroa.ll
+65-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPCostAnalysis.cpp
+41-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.h
+715-1566 files not shown
+752-18512 files

LLVM/project d884da3llvm/test/CodeGen/AMDGPU llvm.amdgcn.fcmp.w32.ll llvm.amdgcn.fcmp.w64.ll, llvm/test/CodeGen/AMDGPU/NextUseAnalysis test_ers_emit_restore_in_loop_preheader2.mir test_ers_nested_loops.mir

Rebase

Created using spr 1.3.7
DeltaFile
+0-6,246llvm/test/CodeGen/AMDGPU/NextUseAnalysis/test_ers_nested_loops.mir
+0-4,877llvm/test/CodeGen/AMDGPU/NextUseAnalysis/test_ers_emit_restore_in_loop_preheader2.mir
+0-2,905llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fcmp.w64.ll
+0-2,456llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fcmp.w32.ll
+2,428-0llvm/test/CodeGen/SPIRV/extensions/SPV_EXT_long_vector/unmerge-crash-0.ll
+2,426-0llvm/test/CodeGen/SPIRV/extensions/SPV_EXT_long_vector/unmerge-crash-1.ll
+4,854-16,4842,905 files not shown
+132,728-70,6912,911 files

LLVM/project d51c745clang/test/SemaCXX cxx2d-pack-indexing-template.cpp, llvm/test/Analysis/CostModel/AArch64 load_store.ll

Rebase

Created using spr 1.3.7
DeltaFile
+0-826orc-rt/include/orc-rt/support/SimplePackedSerialization.h
+826-0orc-rt/include/orc-rt/support/sps/SimplePackedSerialization.h
+456-0clang/test/SemaCXX/cxx2d-pack-indexing-template.cpp
+0-441orc-rt/test/unit/support/SimplePackedSerializationTest.cpp
+441-0orc-rt/test/unit/support/sps/SimplePackedSerializationTest.cpp
+172-172llvm/test/Analysis/CostModel/AArch64/load_store.ll
+1,895-1,439278 files not shown
+8,095-4,036284 files

LLVM/project e3c4ad4clang/test/SemaCXX cxx2d-pack-indexing-template.cpp, llvm/test/Analysis/CostModel/AArch64 load_store.ll

Rebase

Created using spr 1.3.7
DeltaFile
+516-516llvm/test/Analysis/CostModel/AArch64/load_store.ll
+521-370llvm/test/Transforms/LoopVectorize/AArch64/bounded-load.ll
+0-826orc-rt/include/orc-rt/support/SimplePackedSerialization.h
+826-0orc-rt/include/orc-rt/support/sps/SimplePackedSerialization.h
+456-0clang/test/SemaCXX/cxx2d-pack-indexing-template.cpp
+441-0orc-rt/test/unit/support/sps/SimplePackedSerializationTest.cpp
+2,760-1,712307 files not shown
+11,850-5,273313 files

LLVM/project 0724358mlir/lib/Dialect/SparseTensor/Transforms SparseReinterpretMap.cpp, mlir/test/Dialect/SparseTensor sparse_reinterpret_map.mlir

[mlir][SparseTensor] Fix crash demapping alloc_tensor with a copy operand (#219319)

`TensorAllocDemapper` reconstructs demapped level sizes for a
`bufferization.alloc_tensor`/`tensor.empty` by pairing each dynamic
result
dimension with an entry from the op's `dynamic_sizes` operand list,
popping via
`ValueRange::front()`.

When an `alloc_tensor` has a `copy` operand instead of explicit dynamic
sizes,
`dynamic_sizes` is legitimately empty — the op's own verifier requires
that the
sizes are implied by the copy operand and must not be specified — so
`front()`
was called on an empty range and asserted:

```
llvm/include/llvm/ADT/STLExtras.h:1253: Assertion `!empty() && "expected non-empty range"' failed.

    [20 lines not shown]
DeltaFile
+18-0mlir/lib/Dialect/SparseTensor/Transforms/SparseReinterpretMap.cpp
+12-0mlir/test/Dialect/SparseTensor/sparse_reinterpret_map.mlir
+30-02 files

LLVM/project dca45adllvm/lib/Transforms/Vectorize VPlanPatternMatch.h VPlanUtils.cpp, llvm/test/Transforms/LoopVectorize/VPlan/AArch64 vplan-memory-op-decisions.ll

[VPlan] Compute SCEV for SDiv with non-negative operands. (#219715)

If both operands of an SDiv are known non-negative, it is equivalent to
an UDiv, mirroring ScalarEvolution's handling in createSCEV.

Adds m_SDiv to VPlanPatternMatch.

Alive2 Proof: https://alive2.llvm.org/ce/z/NYa6Vd
DeltaFile
+8-0llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
+4-2llvm/test/Transforms/LoopVectorize/VPlan/AArch64/vplan-memory-op-decisions.ll
+6-0llvm/lib/Transforms/Vectorize/VPlanPatternMatch.h
+18-23 files

LLVM/project 1c67379llvm/test/Analysis/DependenceAnalysis AA.ll, llvm/test/Analysis/ScopedNoAliasAA basic2.ll basic-domains.ll

[LLVM][NFC] Make metadata-number checks robust (#219610)

These checks care about the metadata attached to an instruction or
reported in a diagnostic, not the incidental numeric slot assigned while
printing. Match metadata slot numbers with FileCheck patterns so
numbering changes do not require unrelated test updates.
DeltaFile
+18-18llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing-metadata.ll
+12-12llvm/test/Analysis/TypeBasedAliasAnalysis/tbaa-path.ll
+12-12llvm/test/Analysis/ScopedNoAliasAA/basic2.ll
+12-12llvm/test/Analysis/ScopedNoAliasAA/basic-domains.ll
+10-10llvm/test/tools/llubi/metadata.ll
+9-9llvm/test/Analysis/DependenceAnalysis/AA.ll
+73-7344 files not shown
+197-19750 files

LLVM/project ec878ffllvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/lib/Transforms/Vectorize/SLPVectorizer SLPCompatibilityAnalysis.h SLPCompatibilityAnalysis.cpp

[SLP]Recognize interchangeable cmp predicates with boundary constants

Treat boundary comparisons canonicalized to eq/ne (e.g. x <u 1 became
x == 0) as interchangeable with the rest of the bundle by adjusting
the compared constant, emitting a single vector compare.

Fixes #190505

Reviewers: RKSimon, bababuck

Pull Request: https://github.com/llvm/llvm-project/pull/218237
DeltaFile
+186-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPCompatibilityAnalysis.cpp
+24-54llvm/test/Transforms/SLPVectorizer/X86/interchangeable-cmp-predicates.ll
+51-4llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+53-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPCompatibilityAnalysis.h
+314-584 files

LLVM/project e3c18f1llvm/lib/Transforms/InstCombine InstCombineCasts.cpp, llvm/test/Transforms/InstCombine trunc.ll

[InstCombine] Preserve no-wrap flags in trunc (shl X, C) fold. (#219443)

Preserve flags when folding trunc (shl X, C) into shl (trunc X), C. If
both ops have NUW/NSW, they can be carried over to the new shl/trunc.

No major changes on llvm-opt-benchmark-nightly besides a number of
preserved flags and a few minor fold changes:
https://github.com/dtcxzyw/llvm-opt-benchmark-nightly/pull/1083

Alive2 Proof: https://alive2.llvm.org/ce/z/EYivzg

PR: https://github.com/llvm/llvm-project/pull/219443
DeltaFile
+91-0llvm/test/Transforms/InstCombine/trunc.ll
+14-3llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
+105-32 files

LLVM/project f5fd158clang-tools-extra CMakeLists.txt, clang-tools-extra/clangd CMakeLists.txt

[clang-tools-extra] Add separate CLANG_TOOLS_EXTRA_INCLUDE_TESTS option (#215761)

clang-tools-extra tests depend on the llvm-bcanalyzer CMake target,
which exists in LLVM's CMake project but is not visible when Clang is
built separately from LLVM. This causes CMake errors when
CLANG_INCLUDE_TESTS is ON but the LLVM tools are not available.

This patch introduces CLANG_TOOLS_EXTRA_INCLUDE_TESTS as a separate
CMake option to control clang-tools-extra tests independently, allowing
users to build Clang with tests enabled (CLANG_INCLUDE_TESTS=ON) while
disabling clang-tools-extra tests (CLANG_TOOLS_EXTRA_INCLUDE_TESTS=OFF)
when building Clang separately from LLVM.

For backwards compatibility, CLANG_INCLUDE_TESTS=OFF continues
to turn off clang-tools-extra tests as well.
DeltaFile
+4-2clang-tools-extra/CMakeLists.txt
+1-1clang-tools-extra/include-cleaner/CMakeLists.txt
+1-1clang-tools-extra/clangd/CMakeLists.txt
+6-43 files

LLVM/project 850cc26libc/src/__support/math CMakeLists.txt, libc/test/src/math/smoke fdimf128_test.cpp CMakeLists.txt

nits
DeltaFile
+1-1libc/test/src/math/smoke/fdimf128_test.cpp
+1-1libc/test/src/math/smoke/CMakeLists.txt
+1-1libc/src/__support/math/CMakeLists.txt
+3-33 files

LLVM/project 51efbe1libc/src/__support/math CMakeLists.txt, libc/test/src/math/smoke fminimum_mag_numf128_test.cpp fmaximum_mag_numf128_test.cpp

nits
DeltaFile
+2-2libc/test/src/math/smoke/CMakeLists.txt
+2-2libc/src/__support/math/CMakeLists.txt
+1-1libc/test/src/math/smoke/fminimum_mag_numf128_test.cpp
+1-1libc/test/src/math/smoke/fmaximum_mag_numf128_test.cpp
+6-64 files

LLVM/project af30981libc/test/src/math/smoke fminimum_magf128_test.cpp fmaximum_magf128_test.cpp

nits
DeltaFile
+2-2libc/test/src/math/smoke/CMakeLists.txt
+1-1libc/test/src/math/smoke/fminimum_magf128_test.cpp
+1-1libc/test/src/math/smoke/fmaximum_magf128_test.cpp
+4-43 files

LLVM/project c5af4f1clang/include/clang/StaticAnalyzer/Checkers BoundsChecking.h, clang/lib/StaticAnalyzer/Checkers ArrayBoundChecker.cpp BoundsChecking.cpp

[analyzer] Fix handling of zero-sized elements in ArrayBound (#218712)

Previously the `security.ArrayBound` checker mishandled the following C
code under non-windows platforms where `sizeof(struct Empty) == 0`:
```c
struct Empty {};
struct Empty Array[10];
struct Empty foo(void) { return Array[5]; }
```
Here the checker produced a false positive with explanation "Access of
'Array' at byte offset 0, while it holds only 0 byte" -- that is, the
checker said that this accesses the past-the-end pointer, which is
usually invalid.

This commit suppresses this false positive by saying that accessing a
zero-sized object starting at the past-the-end pointer is valid.

This is implemented by adding an `AlsoAcceptEquality` flag for
`checkBounds`. This flag will also be useful for implementing checkers

    [4 lines not shown]
DeltaFile
+38-4clang/test/Analysis/ArrayBound/verbose-tests.c
+22-8clang/include/clang/StaticAnalyzer/Checkers/BoundsChecking.h
+11-16clang/lib/StaticAnalyzer/Checkers/BoundsChecking.cpp
+13-13clang/lib/StaticAnalyzer/Checkers/ArrayBoundChecker.cpp
+84-414 files

LLVM/project ef7d4belibc/src/__support/math CMakeLists.txt

nit
DeltaFile
+2-2libc/src/__support/math/CMakeLists.txt
+2-21 files

LLVM/project 2552529clang/lib/Headers riscv_packed_simd.h, clang/test/CodeGen/RISCV rvp-intrinsics.c

[Clang][RISCV] Add packed widening add/sub intrinsics (#219348)

Add packed widening add/sub header wrappers for the RISC-V P extension
using generic vector IR.
DeltaFile
+208-0clang/test/CodeGen/RISCV/rvp-intrinsics.c
+151-5llvm/test/CodeGen/RISCV/rvp-simd-32.ll
+74-0cross-project-tests/intrinsic-header-tests/riscv_packed_simd.c
+67-0llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+36-0llvm/lib/Target/RISCV/RISCVInstrInfoP.td
+17-0clang/lib/Headers/riscv_packed_simd.h
+553-56 files

LLVM/project 316b0edlld/test/wasm relocatable-strings-conflict.s, lld/wasm Writer.cpp

[lld][WebAssembly] Do not coalesce segments with differing flags in -r (#219606)

In PR #210747 (commit 162d9f09299d), `addInputSegment` was changed to
union segment linking flags (`linkingFlags |= inSeg->flags`) so that
flags like `RETAIN` and `STRINGS` are preserved in `--relocatable`
output.

However, coalescing segments with differing linking flags by name alone
forces one chunk's semantics onto another:
- Clang emits ordinary string literals (`STRINGS`) and string literals
  containing embedded null characters (non-`STRINGS`) into sections
  named `.rodata..L.str`. When coalesced, non-mergeable segments
  received the `STRINGS` flag, causing downstream links to split and
  corrupt them.
- Similarly, coalescing a chunk with `RETAIN` and a chunk without
  `RETAIN` forces the un-retained chunk to inherit `RETAIN`, preventing
  `--gc-sections` from discarding it if it is unused.

Fix this by distinguishing segments by their linking flags in

    [3 lines not shown]
DeltaFile
+46-0lld/test/wasm/relocatable-strings-conflict.s
+19-7lld/wasm/Writer.cpp
+65-72 files