LLVM/project c56aad6llvm/lib/CodeGen/SelectionDAG SelectionDAG.cpp, llvm/test/CodeGen/X86 known-never-zero.ll

[DAG] isKnownNeverZero: Add DemandedElts handling for ROTL/ROTR/BITREVERSE/BSWAP/CTPOP/ABS (#184033)

Add DemandedElts handling for ROTL/ROTR/BITREVERSE/BSWAP/CTPOP/ABS in SelectionDAG::isKnownNeverZero

Fixes #183040
DeltaFile
+18-36llvm/test/CodeGen/X86/known-never-zero.ll
+1-1llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+19-372 files

LLVM/project f8299c1libclc/clc/lib/generic SOURCES, libclc/clc/lib/generic/workitem clc_get_global_id.cl

libclc: Move get_global_id into clc
DeltaFile
+18-0libclc/clc/lib/generic/workitem/clc_get_global_id.cl
+2-3libclc/opencl/lib/generic/workitem/get_global_id.cl
+1-0libclc/clc/lib/generic/SOURCES
+21-33 files

LLVM/project 25af991libclc/clc/lib/generic/workitem clc_get_global_id.cl

libclc: Use enqueued local size to implement get_global_id
DeltaFile
+5-6libclc/clc/lib/generic/workitem/clc_get_global_id.cl
+5-61 files

LLVM/project 9321eefclang/include/clang/CIR/Dialect/IR CIROps.td, clang/lib/CIR/Dialect/IR CIRDialect.cpp

[CIR] Split CIR_UnaryOp into individual operations

Split the monolithic cir.unary operation (which dispatched on a
UnaryOpKind enum) into five separate operations: cir.inc, cir.dec,
cir.plus, cir.minus, and cir.not.

This follows the same pattern used when cir.binop was split into
individual binary operations (AddOp, SubOp, etc.).

Changes:
- Add CIR_UnaryOpInterface with getInput()/getResult() methods
- Add CIR_UnaryOp and CIR_UnaryOpWithOverflowFlag base classes
- Define IncOp, DecOp, PlusOp, MinusOp, NotOp with per-op folds
- Replace createUnaryOp() with createInc/Dec/Plus/Minus/Not builders
- Split LLVM lowering into five separate patterns
- Split LoweringPrepare complex-type handling into five handlers
- Update CIRCanonicalize and CIRSimplify for new op types
- Update all codegen files to use bool params instead of UnaryOpKind
- Remove CIR_UnaryOpKind enum and old CIR_UnaryOp definition

    [5 lines not shown]
DeltaFile
+105-117clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
+90-92clang/lib/CIR/Dialect/IR/CIRDialect.cpp
+132-29clang/include/clang/CIR/Dialect/IR/CIROps.td
+62-62clang/test/CIR/CodeGenOpenACC/private-clause-pointer-array-recipes-CtorDtor.cpp
+93-28clang/lib/CIR/Dialect/Transforms/LoweringPrepare.cpp
+41-41clang/test/CIR/CodeGenOpenACC/private-clause-pointer-array-recipes-NoOps.cpp
+523-36978 files not shown
+1,571-1,39284 files

LLVM/project 9088858clang/test/CIR/CodeGen try-catch-tmp.cpp try-catch.cpp

[CIR][NFC] Merge try-catch-tmp with try-catch test file (#185123)

Merge try-catch-tmp.cpp the with try-catch test file
DeltaFile
+0-810clang/test/CIR/CodeGen/try-catch-tmp.cpp
+802-0clang/test/CIR/CodeGen/try-catch.cpp
+802-8102 files

LLVM/project b8ea766clang/test/CodeGen/AArch64/neon intrinsics.c fullfp16.c

[Clang][AArch64] Reorganize tests for `vceqz` intrinsics (NFC) (#185090)

Group related `vceqz_*` and `vceqzd_*` tests together for consistency
and readability. Add a comment documenting the scalar variants that are
not currently covered.

No functional change.

Follow-up to #184893.
DeltaFile
+60-48clang/test/CodeGen/AArch64/neon/intrinsics.c
+7-4clang/test/CodeGen/AArch64/neon/fullfp16.c
+67-522 files

LLVM/project 04fa244clang/include/clang/CIR/Dialect/IR CIROps.td, clang/lib/CIR/Dialect/Transforms CIRCanonicalize.cpp

[CIR] Add Commutative/Idempotent traits to binary ops

Add missing MLIR traits to CIR binary operations, matching the arith
dialect conventions:

- AndOp, OrOp: Commutative, Idempotent (fixes FIXME)
- AddOp, MulOp, XorOp, MaxOp: Commutative

Add these ops to the CIRCanonicalize pass op list so trait-based
folding is exercised by applyOpPatternsGreedily.

Update testFloatingPointBinOps in binop.cpp to use computed values,
preventing DCE of the now-canonicalized ops.
DeltaFile
+65-0clang/test/CIR/Transforms/binop-traits.cir
+28-18clang/test/CIR/CodeGen/binop.cpp
+12-8clang/include/clang/CIR/Dialect/IR/CIROps.td
+6-5clang/lib/CIR/Dialect/Transforms/CIRCanonicalize.cpp
+5-5clang/test/CIR/CodeGen/size-of-vla.cpp
+2-7clang/test/CIR/CodeGen/new.cpp
+118-432 files not shown
+123-508 files

LLVM/project 2b94f74libclc/opencl/lib/amdgcn SOURCES, libclc/opencl/lib/amdgcn/async wait_group_events.cl

libclc: Add amdgpu wait_group_events
DeltaFile
+23-0libclc/opencl/lib/amdgcn/async/wait_group_events.cl
+1-0libclc/opencl/lib/amdgcn/SOURCES
+24-02 files

LLVM/project 66e85c2lldb/unittests/Platform PlatformDarwinTest.cpp CMakeLists.txt

[lldb][PlatformDarwin][test] Add unit-test for LocateExecutableScriptingResourcesFromDSYM (#185057)

Depends on:
* https://github.com/llvm/llvm-project/pull/185056

Adds test unit-test for
`PlatformDarwin::LocateExecutableScriptingResourcesFromDSYM`. I had to
mock the `ScriptInterpreter` because the function internally uses the
`ScriptInterpreterPython` to check for reserved words in file names. But
linking the `ScriptInterpreterPython` was quite the undertaking, which I
think we could pull off, but required more churn that I had hoped.
Mocking it seemed pretty low-cost so I resorted to doing that instead.

Test-cases aren't very elaborate yet. It just has a basic assertion that
we locate the Python file within the dSYM. Mostly I set up
infrastructure for future test-cases.
DeltaFile
+137-1lldb/unittests/Platform/PlatformDarwinTest.cpp
+1-0lldb/unittests/Platform/CMakeLists.txt
+138-12 files

LLVM/project 1e24052clang/docs ThreadSafetyAnalysis.rst, clang/lib/AST ASTImporter.cpp

[𝘀𝗽𝗿] changes to main this commit is based on

Created using spr 1.3.8-beta.1

[skip ci]
DeltaFile
+31-7clang/docs/ThreadSafetyAnalysis.rst
+33-0clang/test/SemaCXX/warn-thread-safety-analysis.cpp
+12-15clang/lib/Sema/SemaDeclAttr.cpp
+12-12clang/test/SemaCXX/warn-thread-safety-parsing.cpp
+5-3clang/lib/Analysis/ThreadSafety.cpp
+6-2clang/lib/AST/ASTImporter.cpp
+99-396 files not shown
+117-5112 files

LLVM/project 68c3078clang/docs ThreadSafetyAnalysis.rst, clang/lib/Analysis ThreadSafety.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.8-beta.1
DeltaFile
+72-13clang/test/SemaCXX/warn-thread-safety-parsing.cpp
+72-7clang/docs/ThreadSafetyAnalysis.rst
+77-0clang/test/SemaCXX/warn-thread-safety-analysis.cpp
+54-3clang/lib/Analysis/ThreadSafety.cpp
+39-15clang/lib/Sema/SemaDeclAttr.cpp
+27-0clang/lib/Sema/AnalysisBasedWarnings.cpp
+341-389 files not shown
+430-5215 files

LLVM/project 3eda9daclang/docs ThreadSafetyAnalysis.rst, clang/lib/AST ASTImporter.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.8-beta.1
DeltaFile
+31-7clang/docs/ThreadSafetyAnalysis.rst
+33-0clang/test/SemaCXX/warn-thread-safety-analysis.cpp
+12-15clang/lib/Sema/SemaDeclAttr.cpp
+12-12clang/test/SemaCXX/warn-thread-safety-parsing.cpp
+6-2clang/lib/AST/ASTImporter.cpp
+5-3clang/lib/Analysis/ThreadSafety.cpp
+99-396 files not shown
+117-5112 files

LLVM/project afba440libclc/clc/lib/amdgcn/workitem clc_get_enqueued_local_size.cl

libclc: Fix amdgpu get_enqueued_local_size (#185171)

This should not be the same as get_local_size
DeltaFile
+5-2libclc/clc/lib/amdgcn/workitem/clc_get_enqueued_local_size.cl
+5-21 files

LLVM/project 3fa3d00llvm/lib/Analysis VectorUtils.cpp, llvm/test/Transforms/LoopVectorize intrinsic.ll

Merge branch 'main' into users/arsenm/libclc/fix-amdgpu-get-enqueued-local-size
DeltaFile
+116-0llvm/test/Transforms/LoopVectorize/X86/clmul.ll
+96-0llvm/test/Transforms/LoopVectorize/AArch64/clmul.ll
+50-0llvm/test/Transforms/LoopVectorize/RISCV/clmul.ll
+33-0llvm/test/Transforms/LoopVectorize/intrinsic.ll
+1-0llvm/lib/Analysis/VectorUtils.cpp
+296-05 files

LLVM/project 10c0e1flibclc/clc/lib/amdgcn/workitem clc_get_local_size.cl clc_get_global_size.cl, libclc/clc/lib/ptx-nvidiacl/workitem clc_get_global_size.cl

libclc: Avoid duplicated get_local_size/get_global_size functions (#185166)

Move opencl handling on top of clc into opencl generic, delete
amdgpu implementations in opencl.
DeltaFile
+0-26libclc/opencl/lib/amdgcn-amdhsa/workitem/get_local_size.cl
+14-10libclc/clc/lib/amdgcn/workitem/clc_get_local_size.cl
+0-22libclc/opencl/lib/amdgcn/workitem/get_local_size.cl
+0-20libclc/opencl/lib/amdgcn-amdhsa/workitem/get_global_size.cl
+8-10libclc/clc/lib/amdgcn/workitem/clc_get_global_size.cl
+15-0libclc/clc/lib/ptx-nvidiacl/workitem/clc_get_global_size.cl
+37-889 files not shown
+54-12115 files

LLVM/project a2c7b88libclc/clc/lib/amdgcn/workitem clc_get_enqueued_local_size.cl

libclc: Fix amdgpu get_enqueued_local_size

This should not be the same as get_local_size
DeltaFile
+5-2libclc/clc/lib/amdgcn/workitem/clc_get_enqueued_local_size.cl
+5-21 files

LLVM/project faee8e5libclc/clc/lib/amdgcn/workitem clc_get_local_size.cl

Move get_local_size implementation
DeltaFile
+14-10libclc/clc/lib/amdgcn/workitem/clc_get_local_size.cl
+14-101 files

LLVM/project e6fb9ballvm/lib/Analysis VectorUtils.cpp, llvm/test/Transforms/LoopVectorize intrinsic.ll

[Analysis] isTriviallyVectorizable - add Intrinsic::clmul along with vectorisation tests (#180014)

This patch adds a case in isTriviallyVectorizable in llvm/lib/Analysis/VectorUtils.cpp for Intrinsic::clmul.

Fixes #179106
DeltaFile
+116-0llvm/test/Transforms/LoopVectorize/X86/clmul.ll
+96-0llvm/test/Transforms/LoopVectorize/AArch64/clmul.ll
+50-0llvm/test/Transforms/LoopVectorize/RISCV/clmul.ll
+33-0llvm/test/Transforms/LoopVectorize/intrinsic.ll
+1-0llvm/lib/Analysis/VectorUtils.cpp
+296-05 files

LLVM/project 7a34a3alibclc/clc/lib/ptx-nvidiacl SOURCES, libclc/clc/lib/ptx-nvidiacl/workitem clc_get_global_size.cl

Fix ptx build
DeltaFile
+15-0libclc/clc/lib/ptx-nvidiacl/workitem/clc_get_global_size.cl
+1-0libclc/clc/lib/ptx-nvidiacl/SOURCES
+16-02 files

LLVM/project 62fe685libclc/opencl/lib/generic/workitem get_global_size.cl

Use __clc_get_global_size
DeltaFile
+2-2libclc/opencl/lib/generic/workitem/get_global_size.cl
+2-21 files

LLVM/project dd9f0bflibclc/clc/lib/amdgcn/workitem clc_get_global_size.cl

Use v5 implementation
DeltaFile
+8-10libclc/clc/lib/amdgcn/workitem/clc_get_global_size.cl
+8-101 files

LLVM/project e070a7flibclc/opencl/lib/amdgcn-amdhsa/workitem get_local_size.cl get_global_size.cl, libclc/opencl/lib/amdgcn/workitem get_local_size.cl get_global_size.cl

libclc: Avoid duplicated get_local_size/get_global_size functions

Move opencl handling on top of clc into opencl generic, delete
amdgpu implementations in opencl.
DeltaFile
+0-26libclc/opencl/lib/amdgcn-amdhsa/workitem/get_local_size.cl
+0-22libclc/opencl/lib/amdgcn/workitem/get_local_size.cl
+0-20libclc/opencl/lib/amdgcn-amdhsa/workitem/get_global_size.cl
+0-13libclc/opencl/lib/amdgcn/workitem/get_global_size.cl
+0-13libclc/opencl/lib/ptx-nvidiacl/workitem/get_local_size.cl
+13-0libclc/opencl/lib/generic/workitem/get_local_size.cl
+13-944 files not shown
+14-9910 files

LLVM/project 704c87blibclc/clc/include/clc/workitem clc_get_global_linear_id.h, libclc/clc/lib/generic/workitem clc_get_global_linear_id.cl clc_get_local_linear_id.cl

libclc: Implement get_global_linear_id and get_local_linear_id (#184800)
DeltaFile
+46-0libclc/clc/lib/generic/workitem/clc_get_global_linear_id.cl
+16-0libclc/clc/include/clc/workitem/clc_get_global_linear_id.h
+13-0libclc/opencl/lib/generic/workitem/get_local_linear_id.cl
+13-0libclc/opencl/lib/generic/workitem/get_global_linear_id.cl
+6-6libclc/clc/lib/generic/workitem/clc_get_local_linear_id.cl
+2-0libclc/opencl/lib/generic/SOURCES
+96-61 files not shown
+97-67 files

LLVM/project 587becbclang/lib/StaticAnalyzer/Checkers/WebKit PtrTypesSemantics.cpp, clang/test/Analysis/Checkers/WebKit nodelete-annotation.cpp

[WebKit checkers] Disallow operator delete in a trivial context. (#185122)

This PR changes the "trivial function analysis" to disallow `operator
delete` in a "trival" or "nodelete" function or statement. Without this,
the delete operator could deallocate memory for a reference counted
objects, etc...
DeltaFile
+26-0clang/test/Analysis/Checkers/WebKit/nodelete-annotation.cpp
+0-4clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.cpp
+26-42 files

LLVM/project 337c6f9libclc/clc/lib/generic/workitem clc_get_global_linear_id.cl

Use __clc_get_enqueued_local_size
DeltaFile
+2-2libclc/clc/lib/generic/workitem/clc_get_global_linear_id.cl
+2-21 files

LLVM/project 861b9calibcxx/include variant, libcxx/test/std/utilities/variant/variant.relops relops.pass.cpp

[libc++] Fix std::variant comparators not working on recursive instantiations (#182238)

We currently have an instantiation cycle in `variant`'s comparison
operators. This patch fixes that by replacing a `decltype(auto)` with an
explicit return type, removing the requirement to instantiate the
function in order to know the return type.

Fixes #182232
DeltaFile
+66-0libcxx/test/std/utilities/variant/variant.relops/relops.pass.cpp
+2-1libcxx/include/variant
+68-12 files

LLVM/project 13e75delibclc/opencl/lib/amdgcn-amdhsa/workitem get_local_size.cl get_global_size.cl, libclc/opencl/lib/amdgcn/workitem get_local_size.cl get_global_size.cl

libclc: Avoid duplicated get_local_size/get_global_size functions

Move opencl handling on top of clc into opencl generic, delete
amdgpu implementations in opencl.
DeltaFile
+0-26libclc/opencl/lib/amdgcn-amdhsa/workitem/get_local_size.cl
+0-22libclc/opencl/lib/amdgcn/workitem/get_local_size.cl
+0-20libclc/opencl/lib/amdgcn-amdhsa/workitem/get_global_size.cl
+0-13libclc/opencl/lib/ptx-nvidiacl/workitem/get_local_size.cl
+13-0libclc/opencl/lib/generic/workitem/get_local_size.cl
+0-13libclc/opencl/lib/amdgcn/workitem/get_global_size.cl
+13-944 files not shown
+14-9910 files

LLVM/project 4d08284llvm CMakeLists.txt

[CMake][LLVM] Align CMAKE_EXPORT_COMPILE_COMMANDS from 1 to ON (#184971)

ON/OFF are more conventional in the project for boolean CMake variables.
DeltaFile
+1-1llvm/CMakeLists.txt
+1-11 files

LLVM/project f4825c4libunwind/src libunwind.cpp, libunwind/test cfi_violating_handler.pass.cpp

[libunwind][PAC] Defang ptrauth's PC in valid CFI range abort

It turns out making the CFI check a release mode abort causes many,
if not the majority, of JITs to fail during unwinding as they do not
set up CFI sections for their generated code. As a result any JITs
that do nominally support unwinding (and catching) through their JIT
or assembly frames trip this abort.

rdar://170862047
DeltaFile
+44-0libunwind/test/cfi_violating_handler.pass.cpp
+11-17libunwind/src/libunwind.cpp
+55-172 files

LLVM/project e830ee8libcxx/docs/ReleaseNotes 23.rst, libcxx/include optional string

[libc++] Don't double-wrap iterators when bounded iterators are used (#182264)

There is no reason to double-wrap iterators, since we can already
achieve anything we want within `__bounded_iter`itself.

This is technically ABI breaking, but people using bounded iterators
shouldn't require ABI stability currently.

Fixes #178521
DeltaFile
+6-16libcxx/include/optional
+4-10libcxx/include/string
+4-10libcxx/include/__vector/vector.h
+5-5libcxx/test/libcxx/iterators/contiguous_iterators.verify.cpp
+4-0libcxx/docs/ReleaseNotes/23.rst
+0-3libcxx/include/__iterator/bounded_iter.h
+23-446 files