LLVM/project b93e243llvm/include/llvm/ExecutionEngine/Orc BacktraceTools.h

Remove LLVM_ABI from symbolicate declaration in BacktraceTools.h (#175764)

The class is already annotated with LLVM_ABI, so individual members shouldn't be.
DeltaFile
+1-1llvm/include/llvm/ExecutionEngine/Orc/BacktraceTools.h
+1-11 files

LLVM/project 7c2f493offload/plugins-nextgen/amdgpu/dynamic_hsa hsa.cpp, offload/plugins-nextgen/amdgpu/src rtl.cpp

[OFFLOAD] Update CUDA and AMD plugins to new debug format (#175757)

This should be the last step before completely removing the DP macro.
DeltaFile
+8-4offload/plugins-nextgen/cuda/dynamic_cuda/cuda.cpp
+5-3offload/plugins-nextgen/amdgpu/dynamic_hsa/hsa.cpp
+4-4offload/plugins-nextgen/cuda/src/rtl.cpp
+3-3offload/plugins-nextgen/amdgpu/src/rtl.cpp
+1-1offload/plugins-nextgen/amdgpu/utils/UtilitiesRTL.h
+21-155 files

LLVM/project 351d06amlir/include/mlir/Bindings/Python IRCore.h, mlir/lib/Bindings/Python IRCore.cpp IRAttributes.cpp

[MLIR][Python] Improve Iterator performance. Don't `throw` in `dunderNext` methods. (#175377)

In
https://github.com/llvm/llvm-project/pull/174139#issuecomment-3733259370
I wrote a scuffed benchmark that mostly iterates MLIR Container Types in
Python. My changes from that PR made the performance worse, so I closed
it.

However, when experimetning with that I also saw a large(?) performance
gain by changing the `dunderNext` methods of the various Iterators to
use `PyErr_SetNone(PyExc_StopIteration);` instead of `throw
nb::stop_iteration();`.

<details><summary>Benchmark attempt script</summary>

```python
import timeit

from mlir.ir import Context, Location, Module, InsertionPoint, Block, Region, OpView

    [93 lines not shown]
DeltaFile
+20-11mlir/lib/Bindings/Python/IRCore.cpp
+5-2mlir/lib/Bindings/Python/IRAttributes.cpp
+3-3mlir/include/mlir/Bindings/Python/IRCore.h
+28-163 files

LLVM/project 7581c70libcxx/include/__algorithm unwrap_iter.h

[libc++] Simplify __unwrap_iter a bit (#175153)

`__unwrap_iter` doesn't need to SFINAE away, so we can just check inside
the function body whether an iterator is copy constructible. This
reduces the overload set, improving compile times a bit.
DeltaFile
+8-10libcxx/include/__algorithm/unwrap_iter.h
+8-101 files

LLVM/project 403d8aaclang/lib/CodeGen/TargetBuiltins ARM.cpp, clang/test/CodeGen/AArch64/sme-intrinsics acle_sme_str.c acle_sme_ldr.c

[AArch64][llvm] Improve codegen for svldr_vnum_za/svstr_vnum_za

When compiling `svldr_vnum_za` or `svstr_vnum_za`, the output
assembly has a superfluous `SXTW` instruction (gcc doesn't add
this); this should be excised, see https://godbolt.org/z/sz4s79rf8

In clang we're using int64_t, and `i32` in llvm. The extra `SXTW`
is due to a call to `DAG.getNode(ISD::SIGN_EXTEND...)`. Make them
both 64bit to make the extra `SXTW` go away.
DeltaFile
+56-62llvm/test/CodeGen/AArch64/sme-intrinsics-stores.ll
+56-62llvm/test/CodeGen/AArch64/sme-intrinsics-loads.ll
+8-8llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+5-6clang/test/CodeGen/AArch64/sme-intrinsics/acle_sme_str.c
+5-6clang/test/CodeGen/AArch64/sme-intrinsics/acle_sme_ldr.c
+2-2clang/lib/CodeGen/TargetBuiltins/ARM.cpp
+132-1461 files not shown
+133-1477 files

LLVM/project ed0eaa4llvm/lib/Target/X86 X86ISelLowering.cpp, llvm/test/CodeGen/X86 avx10_2bf16-fma.ll

[X86] Add bf16 support to isFMAFasterThanFMulAndFAdd for basic FMA optimizations (#172006)

This PR extends `isFMAFasterThanFMulAndFAdd` in `X86ISelLowering` to
handle
bfloat types. This enables basic FMA optimizations for bf16
operations on AVX10.2 targets.

Includes tests for scalar and vector bf16 cases:
- Scalar bf16 FMA lowering (AVX10.2 do not support scalar bf16
operations)
- Vector bf16 FMA fusion for 128-bit, 256-bit, and 512-bit widths
DeltaFile
+806-0llvm/test/CodeGen/X86/avx10_2bf16-fma.ll
+5-0llvm/lib/Target/X86/X86ISelLowering.cpp
+811-02 files

LLVM/project 3a21ff2llvm/test/CodeGen/AMDGPU amdgcn.bitcast.1024bit.ll amdgcn.bitcast.960bit.ll

AMDGPU: Change ABI of 16-bit element vectors on gfx6/7

Fix ABI on old subtargets so match new subtargets, packing
16-bit element subvectors into 32-bit registers. Previously
this would be scalarized and promoted to i32/float.

Note this only changes the vector cases. Scalar i16/half are
still promoted to i32/float for now. I've unsuccessfully tried
to make that switch in the past, so leave that for later.

This will help with removal of softPromoteHalfType.
DeltaFile
+47,697-51,378llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+14,474-16,242llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.960bit.ll
+16,328-12,881llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
+13,036-14,705llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.896bit.ll
+11,668-13,311llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.832bit.ll
+10,558-11,908llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.768bit.ll
+113,761-120,425151 files not shown
+200,130-204,067157 files

LLVM/project 186d520llvm/lib/CodeGen/GlobalISel CallLowering.cpp

GlobalISel: Fix mishandling vector-as-scalar in return values

This fixes 2 cases when the AMDGPU ABI is fixed to pass <2 x i16>
values as packed on gfx6/gfx7. The ABI does not pack values
currently; this is a pre-fix for that change.

Insert a bitcast if there is a single part with a different size.
Previously this would miscompile by going through the scalarization
and extend path, dropping the high element.

Also fix assertions in odd cases, like <3 x i16> -> i32. This needs
to unmerge with excess elements from the widened source vector.

All of this code is in need of a cleanup; this should look more
like the DAG version using getVectorTypeBreakdown.
DeltaFile
+24-2llvm/lib/CodeGen/GlobalISel/CallLowering.cpp
+24-21 files

LLVM/project ae2860ellvm/lib/Target/LoongArch LoongArchInstrInfo.td LoongArchExpandPseudoInsts.cpp, llvm/lib/Target/LoongArch/AsmParser LoongArchAsmParser.cpp

[llvm][LoongArch] Add call and tail macro instruction support

Link: https://sourceware.org/pipermail/binutils/2025-December/146091.html
DeltaFile
+43-14llvm/test/MC/LoongArch/Macros/macros-call.s
+21-15llvm/lib/Target/LoongArch/LoongArchInstrInfo.td
+21-10llvm/lib/Target/LoongArch/LoongArchExpandPseudoInsts.cpp
+7-0llvm/lib/Target/LoongArch/AsmParser/LoongArchAsmParser.cpp
+2-2llvm/lib/Target/LoongArch/LoongArchTargetMachine.cpp
+1-2llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
+95-432 files not shown
+97-458 files

LLVM/project c88cbafllvm/lib/Target/LoongArch LoongArchInstrInfo.td LoongArchMCInstLower.cpp, llvm/lib/Target/LoongArch/AsmParser LoongArchAsmParser.cpp

[llvm][LoongArch] Add call30 and tail30 macro instruction support (#175356)

Link:
https://sourceware.org/pipermail/binutils/2025-December/146091.html
DeltaFile
+52-12llvm/lib/Target/LoongArch/AsmParser/LoongArchAsmParser.cpp
+15-1llvm/lib/Target/LoongArch/LoongArchInstrInfo.td
+14-1llvm/test/MC/LoongArch/Macros/macros-call.s
+2-2llvm/test/MC/LoongArch/Basic/Integer/invalid.s
+3-0llvm/lib/Target/LoongArch/LoongArchMCInstLower.cpp
+3-0llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCAsmInfo.cpp
+89-163 files not shown
+92-169 files

LLVM/project e6bb35bllvm/test/CodeGen/AMDGPU bf16.ll llvm.exp2.bf16.ll, llvm/test/CodeGen/AMDGPU/GlobalISel irtranslate-bf16.ll

AMDGPU: Directly use v2bf16 as register type for bf16 vectors.

Previously we were casting v2bf16 to i32, unlike the f16 case. Simplify
this by using the natural vector type. This is probably a leftover from
before v2bf16 was treated as legal. This is preparation for fixing a
miscompile in globalisel.
DeltaFile
+465-462llvm/test/CodeGen/AMDGPU/bf16.ll
+121-282llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslate-bf16.ll
+122-133llvm/test/CodeGen/AMDGPU/llvm.exp2.bf16.ll
+91-91llvm/test/CodeGen/AMDGPU/maximumnum.bf16.ll
+91-91llvm/test/CodeGen/AMDGPU/minimumnum.bf16.ll
+14-24llvm/test/CodeGen/AMDGPU/llvm.log2.bf16.ll
+904-1,0833 files not shown
+910-1,1009 files

LLVM/project dd63117llvm/lib/Target/Hexagon HexagonISelLoweringHVX.cpp, llvm/test/CodeGen/Hexagon hvx-constpool-vector-type.ll

[Hexagon] Fix PIC crash when lowering HVX vector constants (#175413)

Fix a PIC-only crash in Hexagon HVX lowering where we ended up treating
a vector-typed constant-pool reference as an address (e.g. when forming
PC-relative addresses), which triggers a type mismatch during lowering.
Build the constant-pool reference with the target pointer type instead,
then load the HVX vector from that address.
DeltaFile
+14-0llvm/test/CodeGen/Hexagon/hvx-constpool-vector-type.ll
+6-4llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp
+20-42 files

LLVM/project 513c29flibunwind/src Unwind-wasm.c

Revert "[libunwind] Silence -Wunused-parameter warnings in Unwind-wasm.c (#12…"

This reverts commit f4206f92c5f900a4e0fc0f6dcab6afb6865df1e9.
DeltaFile
+4-2libunwind/src/Unwind-wasm.c
+4-21 files

LLVM/project 6889c38libcxx/include/__ranges data.h, libcxx/test/libcxx/ranges/range.adaptors/range.access nodiscard.verify.cpp

[libc++][ranges] Applied `[[nodiscard]]` to Range access (#173550)

`[[nodiscard]]` should be applied to functions where discarding the
return value is most likely a correctness issue.

- https://libcxx.llvm.org/CodingGuidelines.html
- https://wg21.link/range.access

Towards #172124
DeltaFile
+336-0libcxx/test/libcxx/ranges/range.adaptors/range.access/nodiscard.verify.cpp
+2-2libcxx/include/__ranges/data.h
+338-22 files

LLVM/project 88500e5lldb/unittests/DAP ProtocolTypesTest.cpp

[lldb][test] Fix warning in DAP unit tests

ProtocolTypesTest.cpp:1140:19: warning: loop variable '[value, expected]' creates a copy from type 'std::pair<lldb_dap::protocol::ExceptionBreakMode, llvm::StringRef> const' [-Wrange-loop-construct]
  for (const auto [value, expected] : test_cases) {

Not that it matters because the types are lightweight, but the warning
is creating noise in my builds.
DeltaFile
+1-1lldb/unittests/DAP/ProtocolTypesTest.cpp
+1-11 files

LLVM/project ca09188clang/lib/CIR/Dialect/IR CIRDialect.cpp, mlir/include/mlir/Interfaces ControlFlowInterfaces.td ControlFlowInterfaces.h

[mlir][Interfaces] Simplify and align `RegionSuccessor` API
DeltaFile
+36-27mlir/include/mlir/Interfaces/ControlFlowInterfaces.td
+14-15mlir/lib/Dialect/SCF/IR/SCF.cpp
+9-15clang/lib/CIR/Dialect/IR/CIRDialect.cpp
+10-6mlir/include/mlir/Interfaces/ControlFlowInterfaces.h
+5-5mlir/test/lib/Dialect/Test/TestOpDefs.cpp
+5-5mlir/lib/Dialect/Affine/IR/AffineOps.cpp
+79-7316 files not shown
+111-10722 files

LLVM/project 3bf5384mlir/include/mlir/Dialect/SCF/IR SCFOps.td, mlir/lib/Dialect/SCF/IR SCF.cpp

[mlir][SCF] Fix region branch op interfaces for `scf.forall` and its terminator (#174221)

`scf.forall` does not completely implement the
`RegionBranchOpInterface`: `scf.forall.in_parallel` does not implement
the `RegionBranchTerminatorOpInterface`.

Incomplete interface implementation is a problem for transformations
that try to understand the control flow by querying the
`RegionBranchOpInterface`.

Detailed explanation of what is wrong with the current implementation.
- There is exactly one region branch point: "parent". `in_parallel` is
not a region branch point because it does not implement the
`RegionBranchTerminatorOpInterface`. (Clarified in #174978.)
- `ForallOp::getSuccessorRegions(parent)` returns one region successors:
the region of the `scf.forall` op.
- Since there is no region branch point in the region, there is no way
to leave the region. This means: once you enter the region, you are
stuck in it indefinitely. (It is unspecified what happens once you are

    [18 lines not shown]
DeltaFile
+18-13mlir/lib/Dialect/SCF/IR/SCF.cpp
+14-0mlir/test/Analysis/DataFlow/test-dead-code-analysis.mlir
+1-7mlir/include/mlir/Dialect/SCF/IR/SCFOps.td
+33-203 files

LLVM/project 06791afflang/lib/Lower/OpenMP Clauses.cpp ClauseProcessor.cpp, llvm/include/llvm/Frontend/OpenMP ClauseT.h

[flang][Lower] Lower OmpDependClause to Depend or Doacross

The clause::Depend class was a variant that either held a TaskDep
class or a Doacross clause. This mirrors the OmpDependClause in
the AST, which due to changes in the OpenMP spec can contain two
different forms.

This is not actually necessary, and we can save some complexity by
having clause::Depend only represent task dependence, and lowering
OmpDependClause to either clause:Depend or clause::Doacross.
DeltaFile
+30-31flang/lib/Lower/OpenMP/Clauses.cpp
+3-12llvm/include/llvm/Frontend/OpenMP/ClauseT.h
+3-9flang/lib/Lower/OpenMP/ClauseProcessor.cpp
+36-523 files

LLVM/project 496f2eflibcxx/test/libcxx/input.output/iostream.format/quoted.manip quoted_traits.compile.pass.cpp, libcxx/test/std/input.output/iostream.format/quoted.manip quoted_traits.compile.pass.cpp

[libc++][test] Move the SFINAE test for return types of `quoted` to `libcxx/test/libcxx/` (#157026)

[quoted.manip] only specifies that `operator<<`/`operator>>` is
well-formed for operands with suitable types, and leaves it undefined
whether they are SFINAE-friendly.

Although it's worthwhile making them SFINAE-friendly, perhaps the
SFINAE-friendliness should be considered as a libc++-specific choice at
this moment.

See LWG4364 for whether this should be considered portable.
DeltaFile
+170-0libcxx/test/libcxx/input.output/iostream.format/quoted.manip/quoted_traits.compile.pass.cpp
+0-166libcxx/test/std/input.output/iostream.format/quoted.manip/quoted_traits.compile.pass.cpp
+170-1662 files

LLVM/project af39416flang/lib/Frontend CompilerInstance.cpp, llvm/lib/Target/NVPTX NVPTXSubtarget.cpp NVPTX.td

Revert "[NVPTX] Validate user-specified PTX version against SM version" (#175760)

Reverts llvm/llvm-project#174834

Bots are broken.
DeltaFile
+2-90llvm/lib/Target/NVPTX/NVPTXSubtarget.cpp
+57-15llvm/lib/Target/NVPTX/NVPTX.td
+0-51llvm/test/CodeGen/NVPTX/ptx-version-validation.ll
+12-3flang/lib/Frontend/CompilerInstance.cpp
+14-0llvm/test/CodeGen/NVPTX/wmma-ptx86-sm120a.py
+4-4llvm/test/CodeGen/NVPTX/clusterlaunchcontrol-multicast.ll
+89-16321 files not shown
+125-20527 files

LLVM/project 01a88f0clang/lib/Driver/ToolChains Clang.cpp, clang/lib/Lex LiteralSupport.cpp

remove implementation details from driver, use const reference
DeltaFile
+6-10clang/lib/Driver/ToolChains/Clang.cpp
+10-2llvm/lib/Support/TextEncoding.cpp
+1-2llvm/include/llvm/Support/TextEncoding.h
+2-1llvm/include/llvm/TargetParser/Triple.h
+1-1clang/lib/Lex/LiteralSupport.cpp
+20-165 files

LLVM/project fde0d50llvm/include/llvm/ADT STLForwardCompat.h, llvm/unittests/ADT STLForwardCompatTest.cpp

[ADT] Forward-port constexpr invoke from C++20 (#175690)

I want to use it to simplify https://github.com/llvm/llvm-project/pull/175056
DeltaFile
+58-0llvm/unittests/ADT/STLForwardCompatTest.cpp
+10-0llvm/include/llvm/ADT/STLForwardCompat.h
+68-02 files

LLVM/project a4ae6f2llvm/lib/Target/AMDGPU GCNSchedStrategy.cpp, llvm/test/CodeGen/X86 masked_store.ll masked_load.ll

Merge branch 'users/chapuni/mcdc/nest/expect' into users/chapuni/mcdc/nest/trunk
DeltaFile
+3,375-2,202llvm/test/CodeGen/X86/masked_store.ll
+3,101-2,189llvm/test/CodeGen/X86/masked_load.ll
+2,555-2,554llvm/test/MC/AMDGPU/gfx12_asm_vop3-fake16.s
+2,196-2,195llvm/test/MC/AMDGPU/gfx11_asm_vop3-fake16.s
+1,703-815llvm/test/CodeGen/X86/masked_gather.ll
+501-288llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp
+13,431-10,24359 files not shown
+16,468-11,51265 files

LLVM/project 1c4eb8elldb/test/API/tools/lldb-dap/launch/io TestDAP_launch_io.py, llvm/test/CodeGen/AMDGPU llvm.amdgcn.struct.ptr.atomic.buffer.load.ll llvm.amdgcn.struct.atomic.buffer.load.ll

Merge branch 'main' into users/hev/loong32-call30
DeltaFile
+3,375-2,202llvm/test/CodeGen/X86/masked_store.ll
+3,101-2,189llvm/test/CodeGen/X86/masked_load.ll
+356-0lldb/test/API/tools/lldb-dap/launch/io/TestDAP_launch_io.py
+162-60llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.ptr.atomic.buffer.load.ll
+162-60llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.atomic.buffer.load.ll
+206-0llvm/test/DebugInfo/LoongArch/relax_dwo_ranges.ll
+7,362-4,51167 files not shown
+8,292-4,84673 files

LLVM/project 666177dllvm/lib/Target/AMDGPU GCNSchedStrategy.cpp, llvm/test/CodeGen/X86 masked_store.ll masked_load.ll

Merge branch 'users/chapuni/mcdc/nest/logopstack' into users/chapuni/mcdc/nest/expect
DeltaFile
+3,375-2,202llvm/test/CodeGen/X86/masked_store.ll
+3,101-2,189llvm/test/CodeGen/X86/masked_load.ll
+2,555-2,554llvm/test/MC/AMDGPU/gfx12_asm_vop3-fake16.s
+2,196-2,195llvm/test/MC/AMDGPU/gfx11_asm_vop3-fake16.s
+1,703-815llvm/test/CodeGen/X86/masked_gather.ll
+501-288llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp
+13,431-10,24364 files not shown
+16,509-11,55370 files

LLVM/project 2e78bffclang/include/clang/Analysis/Analyses/LifetimeSafety Loans.h, clang/lib/Analysis/LifetimeSafety FactsGenerator.cpp

Merge branch 'main' into users/chapuni/mcdc/nest/logopstack
DeltaFile
+58-23llvm/test/CodeGen/AArch64/load-store-forwarding.ll
+64-11clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
+45-7clang/unittests/Analysis/LifetimeSafetyTest.cpp
+37-1clang/test/Sema/warn-lifetime-safety.cpp
+37-0llvm/test/Transforms/SampleProfile/fn-alias.ll
+19-2clang/include/clang/Analysis/Analyses/LifetimeSafety/Loans.h
+260-4413 files not shown
+311-6819 files

LLVM/project b50e0f1clang/lib/Driver/ToolChains Clang.cpp, clang/lib/Lex LiteralSupport.cpp

remove implementation details from driver, use const reference
DeltaFile
+6-10clang/lib/Driver/ToolChains/Clang.cpp
+10-2llvm/lib/Support/TextEncoding.cpp
+1-2llvm/include/llvm/Support/TextEncoding.h
+2-1llvm/include/llvm/TargetParser/Triple.h
+1-1clang/lib/Lex/LiteralSupport.cpp
+20-165 files

LLVM/project 32ec071llvm/lib/IR Module.cpp, llvm/unittests/IR ModuleTest.cpp

[IR] Fix Module move-assignment missing NamedMDSymTab, ComdatSymTab and Parent update (#175501)

`Module::operator=(Module&&)` had three bugs:
1. `NamedMDSymTab` was not moved, may causing getNamedMetadata() to
fail.
2. `ComdatSymTab` was not moved, may causing getOrInsertComdat() to
fail.
3. `NamedMDNode::Parent` was not updated after splice, may causing
getParent() to return the wrong Module.
DeltaFile
+9-0llvm/unittests/IR/ModuleTest.cpp
+5-0llvm/lib/IR/Module.cpp
+14-02 files

LLVM/project 84bbaa0llvm/include/llvm/MC MCGOFFStreamer.h MCObjectStreamer.h, llvm/lib/MC MCGOFFStreamer.cpp GOFFObjectWriter.cpp

[SystemZ][z/OS] Handle labels for parts (#175665)

Global data is emitted into parts, which are modelled as a MCSection. A
label (symbol of type LD) is not allowed in a part, which requires
special handling. The approach is to not emit the label at all, and
using the part symbol in relocations.
DeltaFile
+53-0llvm/test/CodeGen/SystemZ/zos-symbol-2.ll
+7-9llvm/lib/Target/SystemZ/MCTargetDesc/SystemZHLASMAsmStreamer.cpp
+13-0llvm/lib/MC/MCGOFFStreamer.cpp
+4-1llvm/include/llvm/MC/MCGOFFStreamer.h
+3-0llvm/lib/MC/GOFFObjectWriter.cpp
+2-1llvm/include/llvm/MC/MCObjectStreamer.h
+82-111 files not shown
+83-127 files

LLVM/project ad3e3d8llvm/lib/CodeGen/SelectionDAG DAGCombiner.cpp SelectionDAG.cpp, llvm/test/CodeGen/X86 pr172046.ll fold-int-pow2-with-fmul-or-fdiv.ll

[SDAG] fix miss opt: shl nuw + zext adds unnecessary masking (#172046)

close: #171750
DeltaFile
+16-6llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+2-4llvm/test/CodeGen/X86/pr172046.ll
+0-4llvm/test/CodeGen/X86/fold-int-pow2-with-fmul-or-fdiv.ll
+0-4llvm/test/CodeGen/X86/known-never-zero.ll
+0-4llvm/test/CodeGen/X86/pr89877.ll
+4-0llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+22-221 files not shown
+23-247 files