LLVM/project dab1e30llvm/lib/Transforms/Scalar SimplifyCFGPass.cpp

[SimplifyCFG][NFC] Renumber blocks when changing func (#186666)

Keep numbering dense when changing the function. SimplifyCFG is a good
candidate, because it is likely to remove blocks and preserves few
analyses.
DeltaFile
+5-1llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp
+5-11 files

LLVM/project 926bea9llvm/lib/Transforms/Utils Local.cpp

[Transforms/Utils][NFC] Replace SmallPtrSet with vector (#186664)

Typically most blocks in a function are reachable, so use a vector
indexed by block number instead of a SmallPtrSet.
DeltaFile
+10-13llvm/lib/Transforms/Utils/Local.cpp
+10-131 files

LLVM/project 3ed4ebellvm/include/llvm/CodeGen LiveIntervals.h

Format
DeltaFile
+1-1llvm/include/llvm/CodeGen/LiveIntervals.h
+1-11 files

LLVM/project 88a268bllvm/include/llvm/CodeGen LiveIntervals.h, llvm/lib/CodeGen Rematerializer.cpp

[CodeGen] Fix multiple connected component issue in rematerializer

This fixes a rematerializer issue wherein re-creating the interval of a
non-rematerializable super-register defined over multiple MIs, some of
which defining entirely dead subregisters, could cause a crash when
changing the order of sub-definitions (for example during scheduling)
because the re-created interval could end up with multiple connected
components, which is illegal. The solution is to split separate
components of the interval in such cases. The added unit test crashes
without that added behavior.
DeltaFile
+71-0llvm/unittests/CodeGen/RematerializerTest.cpp
+16-1llvm/lib/CodeGen/Rematerializer.cpp
+6-0llvm/include/llvm/CodeGen/LiveIntervals.h
+93-13 files

LLVM/project 57427f8mlir/python/mlir/runtime np_to_memref.py, mlir/test/python execution_engine.py

Support float8_e3m4 and float8_e4m3 in np_to_memref (#186453)

This patch adds support for `float8_e3m4` and `float8_e4m3` in
`np_to_memref.py` by adding the appropriate ctypes structures
DeltaFile
+85-1mlir/test/python/execution_engine.py
+24-5mlir/python/mlir/runtime/np_to_memref.py
+109-62 files

LLVM/project 0277b44clang/lib/CIR/CodeGen CIRGenCall.cpp, clang/test/CIR/CodeGen arg-attrs.cpp

[CIR] Fix reference alignment to use pointee type

getNaturalTypeAlignment on a reference type returned pointer alignment
instead of pointee alignment. Pass the pointee type with
forPointeeType=true to match traditional codegen's
getNaturalPointeeTypeAlignment behavior. Fix applies to both argument
and return type attribute construction paths.
DeltaFile
+27-4clang/test/CIR/CodeGen/arg-attrs.cpp
+13-5clang/lib/CIR/CodeGen/CIRGenCall.cpp
+40-92 files

LLVM/project ed6fc49llvm/test/CodeGen/X86 known-never-zero.ll

[X86] known-never-zero.ll - add vector test coverage for #186335 (#186660)
DeltaFile
+49-0llvm/test/CodeGen/X86/known-never-zero.ll
+49-01 files

LLVM/project b751719clang-tools-extra/clang-tidy/performance InefficientStringConcatenationCheck.cpp, clang-tools-extra/docs ReleaseNotes.rst

[clang-tidy] Adds do-while support to performance-inefficient-string-concatenation (#186607)

Closes #186362

---------

Co-authored-by: Victor Chernyakin <chernyakin.victor.j at outlook.com>
Co-authored-by: EugeneZelenko <eugene.zelenko at gmail.com>
DeltaFile
+5-5clang-tools-extra/clang-tidy/performance/InefficientStringConcatenationCheck.cpp
+6-0clang-tools-extra/test/clang-tidy/checkers/performance/inefficient-string-concatenation.cpp
+5-0clang-tools-extra/docs/ReleaseNotes.rst
+2-2clang-tools-extra/docs/clang-tidy/checks/performance/inefficient-string-concatenation.rst
+18-74 files

LLVM/project f8b2bc6llvm/lib/Target/X86 X86InstrAVX512.td, llvm/test/CodeGen/X86 shift-i512.ll

[X86] Add missing VPSRAQ broadcast-from-mem patterns for non-VLX targets (#186654)
DeltaFile
+6-0llvm/lib/Target/X86/X86InstrAVX512.td
+1-2llvm/test/CodeGen/X86/shift-i512.ll
+7-22 files

LLVM/project cbcfa44clang/tools/clang-ssaf-format SSAFFormat.cpp CMakeLists.txt, clang/tools/clang-ssaf-linker SSAFLinker.cpp CMakeLists.txt

[clang][ssaf][NFC] Prefix ssaf-{linker,format} dirs with 'clang-' (#186610)

Addresses:
https://github.com/llvm/llvm-project/pull/185631#issuecomment-4054586633
DeltaFile
+0-483clang/tools/ssaf-format/SSAFFormat.cpp
+483-0clang/tools/clang-ssaf-format/SSAFFormat.cpp
+329-0clang/tools/clang-ssaf-linker/SSAFLinker.cpp
+0-329clang/tools/ssaf-linker/SSAFLinker.cpp
+14-0clang/tools/clang-ssaf-linker/CMakeLists.txt
+14-0clang/tools/clang-ssaf-format/CMakeLists.txt
+840-8128 files not shown
+864-86414 files

LLVM/project fedf101clang/include/clang/CIR/Dialect/IR CIROps.td, clang/lib/CIR/CodeGen CIRGenBuiltin.cpp CIRGenExprCXX.cpp

[CIR] Split BinOpOverflowOp into separate overflow-checked ops

Replace the monolithic cir.binop.overflow operation and its
BinOpOverflowKind enum with three individual operations:
cir.add.overflow, cir.sub.overflow, and cir.mul.overflow.

This follows the same pattern used when BinOp and UnaryOp were
previously split into per-operation ops (cir.add, cir.sub, etc.),
eliminating enum dispatch and enabling per-op traits like Commutative.
DeltaFile
+62-47clang/include/clang/CIR/Dialect/IR/CIROps.td
+37-49clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
+42-34clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
+30-30clang/test/CIR/CodeGenBuiltins/builtins-overflow.cpp
+7-7clang/test/CIR/CodeGen/new.cpp
+6-6clang/lib/CIR/CodeGen/CIRGenExprCXX.cpp
+184-1736 files

LLVM/project a7aebd8clang/docs ClangFormatStyleOptions.rst, clang/include/clang/Format Format.h

[clang-format] Add option AllowShortRecordOnASingleLine (#154580)

This patch supersedes PR #151970 by adding the option
``AllowShortRecordOnASingleLine`` that allows the following formatting:
```c++
  struct foo {};
  struct bar { int i; };
  struct baz
  {
    int i;
    int j;
    int k;
  };
```

---------

Co-authored-by: owenca <owenpiano at gmail.com>
DeltaFile
+110-22clang/lib/Format/UnwrappedLineFormatter.cpp
+95-0clang/unittests/Format/FormatTest.cpp
+36-0clang/docs/ClangFormatStyleOptions.rst
+31-0clang/include/clang/Format/Format.h
+19-7clang/lib/Format/UnwrappedLineParser.cpp
+8-5clang/lib/Format/TokenAnnotator.cpp
+299-343 files not shown
+322-349 files

LLVM/project 74aa04fclang/include/clang/CIR/Dialect/IR CIROps.td, clang/lib/CIR/CodeGen CIRGenBuiltin.cpp CIRGenExprCXX.cpp

[CIR] Split BinOpOverflowOp into separate overflow-checked ops

Replace the monolithic cir.binop.overflow operation and its
BinOpOverflowKind enum with three individual operations:
cir.add.overflow, cir.sub.overflow, and cir.mul.overflow.

This follows the same pattern used when BinOp and UnaryOp were
previously split into per-operation ops (cir.add, cir.sub, etc.),
eliminating enum dispatch and enabling per-op traits like Commutative.
DeltaFile
+62-47clang/include/clang/CIR/Dialect/IR/CIROps.td
+37-49clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
+44-36clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
+30-30clang/test/CIR/CodeGenBuiltins/builtins-overflow.cpp
+7-7clang/test/CIR/CodeGen/new.cpp
+6-6clang/lib/CIR/CodeGen/CIRGenExprCXX.cpp
+186-1756 files

LLVM/project 92f9df1llvm/include/llvm/Analysis BranchProbabilityInfo.h, llvm/lib/Analysis BranchProbabilityInfo.cpp

[Analysis][NFC] Move BranchProbabilityInfo constr to cpp (#186648)

The implementation details of the analysis are irrelevant for users,
therefore move these to the .cpp file.
DeltaFile
+274-85llvm/lib/Analysis/BranchProbabilityInfo.cpp
+1-184llvm/include/llvm/Analysis/BranchProbabilityInfo.h
+275-2692 files

LLVM/project bd933ccllvm/cmake/modules AddLLVM.cmake

[CMake] Disable PCH reuse for plugins in non-PIC builds (#186643)

Plugins are always PIC and therefore cannot reuse non-PIC PCH.
DeltaFile
+5-0llvm/cmake/modules/AddLLVM.cmake
+5-01 files

LLVM/project 4743e71clang/lib/AST/ByteCode Compiler.cpp EvalEmitter.h

[clang][bytecode] Remove unused members from `EvalEmitter` (#186601)

Remove the DenseMap handling lambda paramter mappings from
`EvalEmitter`. This was always unused. Remove it and use `if constexpr`
to keep things compiling.
DeltaFile
+15-11clang/lib/AST/ByteCode/Compiler.cpp
+0-4clang/lib/AST/ByteCode/EvalEmitter.h
+15-152 files

LLVM/project 27e4ef6clang/docs ClangFormatStyleOptions.rst, clang/include/clang/Format Format.h

[clang-format] Upgrade ShortFunctionStyle to a struct (#134337)

The current clang-format configuration
option AllowShortFunctionsOnASingleLine uses a single enum
(ShortFunctionStyle) to control when short function definitions can be
merged onto a single line. This enum provides predefined combinations of
conditions
(e.g., None, Empty only, Inline only, Inline including Empty, All).

This approach has limitations:

1. **Lack of Granularity:** Users cannot specify arbitrary combinations
of conditions. For example, a user might want to allow merging
for both empty functions and short top-level functions, but not for
short functions defined within classes. This is not possible with the
current enum options except by choosing All, which might merge more than
desired.

2. **Inflexibility:** Adding new conditions for merging (e.g.,

    [15 lines not shown]
DeltaFile
+150-26clang/unittests/Format/FormatTest.cpp
+100-24clang/include/clang/Format/Format.h
+66-10clang/docs/ClangFormatStyleOptions.rst
+35-17clang/lib/Format/Format.cpp
+19-7clang/unittests/Format/ConfigParseTest.cpp
+11-6clang/unittests/Format/FormatTestJS.cpp
+381-905 files not shown
+397-10411 files

LLVM/project 16b6af3mlir/include/mlir/IR ExtensibleDialect.h

[mlir] Fix op comparisons in extensible dialects (#186637)

The extensible dialect system defined `compareProperties` to false
because it doesn't use properties. However, this should have been
`true`, as the empty properties are trivially always equal to
themselves. Doing otherwise means that no operations in extensible
dialects that aren't the exact same operation will ever compare equal
for the purposes of operations like CSE.
DeltaFile
+1-1mlir/include/mlir/IR/ExtensibleDialect.h
+1-11 files

LLVM/project 98ccac6orc-rt/include/orc-rt Session.h, orc-rt/lib/executor Session.cpp

[orc-rt] Return ref from Session::addService, add createService. (#186640)

Session::addService now returns a reference to the added Service. This
allows clients to hold a reference for further direct interaction with
the Service object.

This commit also introduces a new Session::createService convenience
method that creates the service and returns a reference to it.
DeltaFile
+27-0orc-rt/unittests/SessionTest.cpp
+16-1orc-rt/include/orc-rt/Session.h
+0-6orc-rt/lib/executor/Session.cpp
+43-73 files

LLVM/project 96e7fc2orc-rt/docs Design.md, orc-rt/include/orc-rt Service.h ResourceManager.h

[orc-rt] Rename "ResourceManager" to "Service". NFCI. (#186639)

The name "Service" better reflects the general purpose of this class: It
provides *something* (often resource management) to the Session, is
owned by the Session, and receives notifications from the Session when
the controller detaches / is detached, and when the Session is shut
down.

An example of a non-resource-managing Service (to be added in an
upcoming patch) is a detach / shutdown notification service: Clients can
add this service to register arbitrary callbacks to be run on detach /
shutdown. The advantage of this over the current Session detach /
shutdown callback system is that clients can control both the order of
the callbacks, and their order relative to notification of other
services.
DeltaFile
+47-0orc-rt/include/orc-rt/Service.h
+0-44orc-rt/include/orc-rt/ResourceManager.h
+13-13orc-rt/unittests/SessionTest.cpp
+12-11orc-rt/docs/Design.md
+0-19orc-rt/lib/executor/ResourceManager.cpp
+19-0orc-rt/lib/executor/Service.cpp
+91-876 files not shown
+115-11212 files

LLVM/project 3fea2f6libcxx/test/std/atomics/atomics.ref compare_exchange_weak.pass.cpp

[libc++][test] Use loop with compare_exchange_weak calls (#185953)

On AIX, this test sometimes fails with error `Assertion failed: y ==
true`. The test assumes `compare_exchange_weak` should succeed on a
single call, however according to the standard:

> A weak compare-and-exchange operation may fail spuriously. That is,
even when the contents of memory referred to by expected and ptr are
equal, it may return false and store back to expected the same memory
contents that were originally there.
This spurious failure enables implementation of compare-and-exchange on
a broader class of machines, e.g., load-locked store-conditional
machines. A consequence of spurious failure is that nearly all uses of
weak compare-and-exchange will be in a loop.

[atomics.ref.ops]/27
DeltaFile
+10-10libcxx/test/std/atomics/atomics.ref/compare_exchange_weak.pass.cpp
+10-101 files

LLVM/project 0447766mlir/include/mlir/Bindings/Python Globals.h, mlir/lib/Bindings/Python Globals.cpp IRCore.cpp

[MLIR][Python] Refine the behavior of Python-defined dialect reloading (#186128)

This includes several changes:
- `Dialect.load(reload=False)` will fail if the dialect was already
loaded in a different context. To prevent the further program abortion.
- `Dialect.load(reload=True)` implies `replace=True` in
dialect/operation registering.
- `PyGlobals::registerDialectImpl` now has a parameter `replace`.
- `register_dialect` and `register_operation` is no longer exposed in
`mlir.dialects.ext`.

This should solve the registering problem found in writing transform
test cases by @rolfmorel.
DeltaFile
+12-27mlir/python/mlir/dialects/ext.py
+1-7mlir/test/python/dialects/transform_op_interface.py
+2-2mlir/include/mlir/Bindings/Python/Globals.h
+2-2mlir/lib/Bindings/Python/Globals.cpp
+1-3mlir/test/python/dialects/transform_pattern_descriptor_op_interface.py
+2-1mlir/lib/Bindings/Python/IRCore.cpp
+20-426 files

LLVM/project 69780bellvm/lib/Transforms/AggressiveInstCombine AggressiveInstCombine.cpp, llvm/test/Transforms/AggressiveInstCombine/AArch64 lower-table-based-log2-basics.ll

[AggressiveInstCombine] Recognize table based log2 and replace with ctlz+sub. (#185160)

Recognize table based log2 implementations like

```
unsigned log2(unsigned v) {
  static const unsigned char table[] = {
    0,  9,  1, 10, 13, 21,  2, 29, 11, 14, 16, 18, 22, 25,  3, 30,
    8, 12, 20, 28, 15, 17, 24,  7, 19, 27, 23,  6, 26,  5,  4, 31
  };

  v |= v >> 1;
  v |= v >> 2;
  v |= v >> 4;
  v |= v >> 8;
  v |= v >> 16;

  return table[(unsigned)(v * 0x07C4ACDDU) >> 27];
}

    [18 lines not shown]
DeltaFile
+264-0llvm/test/Transforms/AggressiveInstCombine/X86/lower-table-based-log2-negative.ll
+220-0llvm/test/Transforms/AggressiveInstCombine/X86/lower-table-based-log2-basics.ll
+206-0llvm/test/Transforms/AggressiveInstCombine/AArch64/lower-table-based-log2-basics.ll
+184-0llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp
+874-04 files

LLVM/project 3bc216cclang/include/clang/CIR/Dialect/IR CIROps.td, clang/lib/CIR/Dialect/IR CIRDialect.cpp

[CIR] Split CIR_UnaryOp into individual operations (#185280)

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

Changes:
- Add CIR_UnaryOpInterface with getInput()/getResult() methods
- Add CIR_UnaryOp and CIR_UnaryOpWithOverflowFlag base classes
- Define IncOp, DecOp, MinusOp, NotOp with per-op folds
- Add Involution trait to NotOp for not(not(x)) -> x folding
- Replace createUnaryOp() with createInc/Dec/Minus/Not builders
- Split LLVM lowering into four separate patterns
- Split LoweringPrepare complex-type handling per unary op
- 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

Assembly format change:
  cir.unary(inc, %x) nsw : !s32i, !s32i  ->  cir.inc nsw %x : !s32i
  cir.unary(not, %x) : !u32i, !u32i      ->  cir.not %x : !u32i
DeltaFile
+91-105clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
+56-88clang/lib/CIR/Dialect/IR/CIRDialect.cpp
+111-28clang/include/clang/CIR/Dialect/IR/CIROps.td
+62-62clang/test/CIR/CodeGenOpenACC/private-clause-pointer-array-recipes-CtorDtor.cpp
+41-41clang/test/CIR/CodeGenOpenACC/private-clause-pointer-array-recipes-NoOps.cpp
+36-36clang/test/CIR/CodeGenOpenACC/combined-reduction-clause-inline-ops.cpp
+397-36078 files not shown
+1,393-1,36784 files

LLVM/project 3e6316eclang/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 four separate operations: cir.inc, cir.dec,
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, MinusOp, NotOp with per-op folds
- Add Involution trait to NotOp for not(not(x)) -> x folding
- Replace createUnaryOp() with createInc/Dec/Minus/Not builders
- Split LLVM lowering into four separate patterns
- Split LoweringPrepare complex-type handling per unary op
- Update CIRCanonicalize and CIRSimplify for new op types
- Update all codegen files to use bool params instead of UnaryOpKind

    [6 lines not shown]
DeltaFile
+91-105clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
+56-88clang/lib/CIR/Dialect/IR/CIRDialect.cpp
+111-28clang/include/clang/CIR/Dialect/IR/CIROps.td
+62-62clang/test/CIR/CodeGenOpenACC/private-clause-pointer-array-recipes-CtorDtor.cpp
+41-41clang/test/CIR/CodeGenOpenACC/private-clause-pointer-array-recipes-NoOps.cpp
+36-36clang/test/CIR/CodeGenOpenACC/compute-reduction-clause-outline-ops.cpp
+397-36078 files not shown
+1,393-1,36784 files

LLVM/project 55db533clang-tools-extra/clang-tidy/readability RedundantQualifiedAliasCheck.cpp RedundantQualifiedAliasCheck.h, clang-tools-extra/docs ReleaseNotes.rst

[clang-tidy] Add redundant qualified alias check (#180404)

Introduce `readability-redundant-qualified-alias` to flag identity type
aliases that repeat a qualified name and suggest using-declarations when
safe. The check is conservative: it skips macros, elaborated keywords,
dependent types, and templates. `OnlyNamespaceScope` controls whether
local/class scopes are included (default `false`).

Depends on: #183940 #183941
DeltaFile
+220-0clang-tools-extra/clang-tidy/readability/RedundantQualifiedAliasCheck.cpp
+203-0clang-tools-extra/test/clang-tidy/checkers/readability/redundant-qualified-alias.cpp
+40-0clang-tools-extra/clang-tidy/readability/RedundantQualifiedAliasCheck.h
+30-0clang-tools-extra/docs/clang-tidy/checks/readability/redundant-qualified-alias.rst
+6-0clang-tools-extra/docs/ReleaseNotes.rst
+3-0clang-tools-extra/clang-tidy/readability/ReadabilityTidyModule.cpp
+502-02 files not shown
+504-08 files

LLVM/project 2370920clang/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 four separate operations: cir.inc, cir.dec,
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, MinusOp, NotOp with per-op folds
- Add Involution trait to NotOp for not(not(x)) -> x folding
- Replace createUnaryOp() with createInc/Dec/Minus/Not builders
- Split LLVM lowering into four separate patterns
- Split LoweringPrepare complex-type handling per unary op
- Update CIRCanonicalize and CIRSimplify for new op types
- Update all codegen files to use bool params instead of UnaryOpKind

    [6 lines not shown]
DeltaFile
+91-105clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
+56-88clang/lib/CIR/Dialect/IR/CIRDialect.cpp
+111-28clang/include/clang/CIR/Dialect/IR/CIROps.td
+62-62clang/test/CIR/CodeGenOpenACC/private-clause-pointer-array-recipes-CtorDtor.cpp
+41-41clang/test/CIR/CodeGenOpenACC/private-clause-pointer-array-recipes-NoOps.cpp
+36-36clang/test/CIR/CodeGenOpenACC/loop-reduction-clause-inline-ops.cpp
+397-36078 files not shown
+1,393-1,36784 files

LLVM/project 629edafclang CMakeLists.txt, clang/include/clang/Config config.h.cmake

[clang][Driver][Darwin] Optionally use xcselect to find macOS SDK (#119670)

This is a scaled down version of https://reviews.llvm.org/D136315.

The intent is largely the same as before[^1], but I've scaled down the
scope to try to avoid the issues that the previous patch caused:
- the changes are now opt-in based on enabling `CLANG_USE_XCSELECT`
- this only works when targeting macOS on a macOS host (this is the only
case supported by `libxcselect`[^2])
- calling `libxcselect` is done only when the target is `*-apple-macos*`
to avoid breaking many tests

Another reason to leave this as opt-in for now is that there are some
bugs in libxcselect that need fixing before it is safe to use by default
for all users. This has been reported to Apple as FB16081077.

[^1]: See also https://reviews.llvm.org/D109460 and #45225.
[^2]: https://developer.apple.com/documentation/xcselect?language=objc
DeltaFile
+38-0clang/CMakeLists.txt
+23-9clang/lib/Driver/ToolChains/Darwin.cpp
+17-0clang/test/Driver/darwin-ld-platform-version-macos-nosdk.c
+0-13clang/test/Driver/darwin-ld-platform-version-macos.c
+6-0clang/include/clang/Config/config.h.cmake
+5-0clang/test/Driver/xcselect.c
+89-224 files not shown
+97-2210 files

LLVM/project 64ca525clang/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 four separate operations: cir.inc, cir.dec,
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, MinusOp, NotOp with per-op folds
- Add Involution trait to NotOp for not(not(x)) -> x folding
- Replace createUnaryOp() with createInc/Dec/Minus/Not builders
- Split LLVM lowering into four separate patterns
- Split LoweringPrepare complex-type handling per unary op
- Update CIRCanonicalize and CIRSimplify for new op types
- Update all codegen files to use bool params instead of UnaryOpKind

    [6 lines not shown]
DeltaFile
+91-105clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
+56-88clang/lib/CIR/Dialect/IR/CIRDialect.cpp
+111-28clang/include/clang/CIR/Dialect/IR/CIROps.td
+62-62clang/test/CIR/CodeGenOpenACC/private-clause-pointer-array-recipes-CtorDtor.cpp
+41-41clang/test/CIR/CodeGenOpenACC/private-clause-pointer-array-recipes-NoOps.cpp
+36-36clang/test/CIR/CodeGenOpenACC/loop-reduction-clause-outline-ops.cpp
+397-36078 files not shown
+1,393-1,36784 files

LLVM/project 5f47943libcxx/utils/ci/docker docker-compose.yml

[libc++][Android] Update Compiler for Android CI (#186531)

Upgrade Android compiler from r563880 to r584948b because libc++ does
not support LLVM 20 anymore
DeltaFile
+2-2libcxx/utils/ci/docker/docker-compose.yml
+2-21 files