LLVM/project 66b540dclang/test/C/C11 n1518.c, clang/www c_status.html

[C11] Claim conformance to WG14 N1518 (#133749)

This paper introduced ranges of valid start and continuation characters
for identifiers. C23 made further changes to these sets.
DeltaFile
+24-0clang/test/C/C11/n1518.c
+1-1clang/www/c_status.html
+25-12 files

LLVM/project 58551faflang/lib/Optimizer/Transforms SimplifyFIROperations.cpp, flang/test/Transforms simplify-fir-operations.fir

[flang] Inline fir.is_contiguous_box in some cases. (#133812)

Added inlining for `rank == 1` and `innermost` cases.
DeltaFile
+91-69flang/test/Transforms/simplify-fir-operations.fir
+41-18flang/lib/Optimizer/Transforms/SimplifyFIROperations.cpp
+132-872 files

LLVM/project 65ad626libc/test/src/math atan2f128_test.cpp

[libc] Fix atan2f128 test for aarch64. (#133924)

DeltaFile
+6-4libc/test/src/math/atan2f128_test.cpp
+6-41 files

LLVM/project a8a33ballvm/lib/Target/SPIRV SPIRVStructurizer.cpp SPIRVGlobalRegistry.cpp, llvm/lib/Target/SPIRV/Analysis SPIRVConvergenceRegionAnalysis.cpp

[NFC][SPIRV] Misc code cleanup in SPIRV Target (#133764)

- Use static instead of anonymous namespace for file local functions.
- Enclose file-local classes in anonymous namespace.
- Eliminate `llvm::` qualifier when file has `using namespace llvm`.
- Eliminate namespace surrounding entire code in
SPIRVConvergenceRegionAnalysis.cpp file.
- Eliminate call to `initializeSPIRVStructurizerPass` from the pass
constructor (https://github.com/llvm/llvm-project/issues/111767)
DeltaFile
+28-43llvm/lib/Target/SPIRV/SPIRVStructurizer.cpp
+14-16llvm/lib/Target/SPIRV/Analysis/SPIRVConvergenceRegionAnalysis.cpp
+3-8llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp
+5-5llvm/lib/Target/SPIRV/SPIRVCommandLine.cpp
+4-4llvm/lib/Target/SPIRV/SPIRVEmitNonSemanticDI.cpp
+3-3llvm/lib/Target/SPIRV/SPIRVStructurizerWrapper.h
+57-795 files not shown
+63-8611 files

LLVM/project 4cb41d1llvm/lib/Target/AArch64 AArch64InstrInfo.td, llvm/test/CodeGen/AArch64 extract-subvec-combine.ll andorxor.ll

[AArch64] Prefer zip over ushll for anyext. (#133433)

Many CPUs have a higher throughput of ZIP instructions vs USHLL. This
adds some tablegen patterns for preferring zip in anyext patterns.
DeltaFile
+13-6llvm/test/CodeGen/AArch64/extract-subvec-combine.ll
+17-0llvm/lib/Target/AArch64/AArch64InstrInfo.td
+6-6llvm/test/CodeGen/AArch64/andorxor.ll
+2-3llvm/test/CodeGen/AArch64/neon-bitcast.ll
+1-3llvm/test/CodeGen/AArch64/sve-fixed-length-extract-subvector.ll
+2-2llvm/test/CodeGen/AArch64/extbinopload.ll
+41-204 files not shown
+45-2610 files

LLVM/project ac55688llvm/test/tools/llvm-reduce reduce-operands-skip-token.ll

llvm-reduce: Add test for token handling in operands-skip (#133857)

Seems to work correctly but wasn't tested.
DeltaFile
+27-0llvm/test/tools/llvm-reduce/reduce-operands-skip-token.ll
+27-01 files

LLVM/project b461ad8llvm/test/tools/llvm-reduce reduce-operands-skip-token.ll

llvm-reduce: Add test for token handling in operands-skip

Seems to work correctly but wasn't tested.
DeltaFile
+27-0llvm/test/tools/llvm-reduce/reduce-operands-skip-token.ll
+27-01 files

LLVM/project 664e847llvm/test/tools/llvm-reduce reduce-operands-to-args-token.ll, llvm/tools/llvm-reduce/deltas ReduceOperandsToArgs.cpp

llvm-reduce: Fix invalid reduction on tokens in operands-to-args (#133855)

DeltaFile
+27-0llvm/test/tools/llvm-reduce/reduce-operands-to-args-token.ll
+1-1llvm/tools/llvm-reduce/deltas/ReduceOperandsToArgs.cpp
+28-12 files

LLVM/project eb5b0edclang/include/clang/AST Decl.h DeclCXX.h, clang/lib/AST DeclCXX.cpp

[clang] support pack expansions for trailing requires clauses

This fixes a crash when evaluating constraints from trailing
requires clauses, when these are part of a generic lambda which
is expanded.
DeltaFile
+32-18clang/lib/Sema/SemaTemplateDeductionGuide.cpp
+18-18clang/include/clang/AST/Decl.h
+19-14clang/lib/AST/DeclCXX.cpp
+10-14clang/lib/Sema/SemaDecl.cpp
+10-10clang/include/clang/AST/DeclCXX.h
+11-7clang/lib/Sema/SemaLambda.cpp
+100-8125 files not shown
+191-13731 files

LLVM/project aa73124clang/lib/CodeGen CGExprComplex.cpp, clang/lib/Sema SemaExpr.cpp

Fix complex long double division with -mno-x87. (#133152)

The combination of `-fcomplex-arithmetic=promoted` and `mno-x87` for
`double` complex division is leading to a crash.
See https://godbolt.org/z/189G957oY
This patch fixes that.
DeltaFile
+83-0clang/test/CodeGen/promoted-complex-div.c
+4-2clang/lib/Sema/SemaExpr.cpp
+4-0clang/lib/CodeGen/CGExprComplex.cpp
+91-23 files

LLVM/project 1ab3a4fflang-rt/lib/runtime matmul-transpose.cpp matmul.cpp

[flang-rt][NFC] Work around CTK12.8 compilation failure. (#133833)

It happened in https://lab.llvm.org/buildbot/#/builders/152/builds/1131
when the buildbot was switched from CTK12.3 to CTK12.8.
The logs are gone by now, so the above link is useless.

The error was:
error: ‘auto’ not permitted in template argument

This workaround helps, but I also reported the issue to NVCC devs.
DeltaFile
+2-1flang-rt/lib/runtime/matmul-transpose.cpp
+2-1flang-rt/lib/runtime/matmul.cpp
+4-22 files

LLVM/project 4e6c48fllvm/lib/Target/RISCV/AsmParser RISCVAsmParser.cpp

[RISCV] Merge RegStart with RegEnd in parseRegListCommon. NFC (#133867)

We only need to keep track of the last register seen. We never need the
first register once we've parsed. Currently if s0/x8 is used RegStart
will point to that and not ra/s1 so it already isn't the start.
DeltaFile
+5-9llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
+5-91 files

LLVM/project 19fb4b0llvm/lib/Target/RISCV/AsmParser RISCVAsmParser.cpp, llvm/test/MC/RISCV rv32zcmp-invalid.s rv64zcmp-invalid.s

[RISCV] Validate the end of register ranges in Zcmp register lists. (#133866)

We were only checking that the last register was a register, not that it
was a legal register for a register list. This caused the encoder
function to hit an llvm_unreachable.

The error messages are not good, but this only one of multiple things
that need to be fixed in this function. I'll focus on error messages
later once I have the other issues fixed.
DeltaFile
+20-2llvm/test/MC/RISCV/rv32zcmp-invalid.s
+21-0llvm/test/MC/RISCV/rv64zcmp-invalid.s
+3-2llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
+44-43 files

LLVM/project 8741412libc/src/math atan2f128.h, libc/src/math/generic atan2f128.cpp atan_utils.h

[libc][math] Implement a fast pass for atan2f128 with 1ULP error using DyadicFloat<128>. (#133150)

Part of https://github.com/llvm/llvm-project/issues/131642.
DeltaFile
+203-0libc/src/math/generic/atan2f128.cpp
+106-2libc/src/math/generic/atan_utils.h
+99-0libc/test/src/math/atan2f128_test.cpp
+28-0libc/test/src/math/smoke/atan2f128_test.cpp
+21-0libc/src/math/atan2f128.h
+21-0libc/src/math/generic/CMakeLists.txt
+478-29 files not shown
+514-415 files

LLVM/project 664745cllvm/test/CodeGen/X86 avx512-vselect.ll

[X86] avx512-vselect.ll - regenerate VPTERNLOG comments
DeltaFile
+2-2llvm/test/CodeGen/X86/avx512-vselect.ll
+2-21 files

LLVM/project 581de27llvm Maintainers.md

llvm-reduce: Make myself maintainer
DeltaFile
+5-0llvm/Maintainers.md
+5-01 files

LLVM/project c30776allvm/lib/Target/AArch64 AArch64ISelDAGToDAG.cpp

[AArch64] Use ArrayRef::slice (NFC) (#133862)

DeltaFile
+8-9llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
+8-91 files

LLVM/project 173eb32llvm/lib/Target/X86 X86ISelLowering.cpp

[X86] Construct SmallVector with ArrayRef (NFC) (#133860)

DeltaFile
+4-4llvm/lib/Target/X86/X86ISelLowering.cpp
+4-41 files

LLVM/project 498e9a6bolt/include/bolt/Passes DataflowAnalysis.h, bolt/lib/Passes PAuthGadgetScanner.cpp

[BOLT] Make DataflowAnalysis::getStateBefore() const (NFC)
DeltaFile
+7-4bolt/include/bolt/Passes/DataflowAnalysis.h
+1-1bolt/lib/Passes/PAuthGadgetScanner.cpp
+8-52 files

LLVM/project b6e0390bolt/include/bolt/Core MCPlusBuilder.h, bolt/lib/Target/AArch64 AArch64MCPlusBuilder.cpp

Fix formatting
DeltaFile
+2-1bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp
+2-1bolt/include/bolt/Core/MCPlusBuilder.h
+4-22 files

LLVM/project de78d1fbolt/test/binary-analysis/AArch64 gs-pauth-calls.s

Tests: call callee instead of callee_ext
DeltaFile
+20-25bolt/test/binary-analysis/AArch64/gs-pauth-calls.s
+20-251 files

LLVM/project 1edcb92bolt/include/bolt/Core BinaryFunction.h, bolt/include/bolt/Passes PAuthGadgetScanner.h

[BOLT] Gadget scanner: analyze functions without CFG information

Support simple analysis of the functions for which BOLT is unable to
reconstruct the CFG. This patch is inspired by the approach implemented
by Kristof Beyls in the original prototype of gadget scanner, but a
CFG-unaware counterpart of the data-flow analysis is implemented
instead of separate version of gadget detector, as multiple gadget kinds
are detected now.
DeltaFile
+594-0bolt/test/binary-analysis/AArch64/gs-pauth-calls.s
+188-76bolt/lib/Passes/PAuthGadgetScanner.cpp
+24-0bolt/include/bolt/Passes/PAuthGadgetScanner.h
+15-0bolt/test/binary-analysis/AArch64/gs-pacret-autiasp.s
+13-0bolt/include/bolt/Core/BinaryFunction.h
+834-765 files

LLVM/project e92ff64clang/include/clang/Basic arm_sme.td, clang/test/CodeGen/AArch64/sme2-intrinsics acle_sme2_mop4_1x2.c

[Clang][LLVM] Implement single-multi vectors MOP4{A/S} (#128854)

Implement all single-multi {BF/F/S/U/SU/US}MOP4{A/S} instructions in
clang and llvm following the acle in
https://github.com/ARM-software/acle/pull/381/files.

This PR depends on https://github.com/llvm/llvm-project/pull/127797

This patch updates the semantics of template arguments in intrinsic
names for clarity and ease of use. Previously, template argument numbers
indicated which character in the prototype string determined the final
type suffix, which was confusing—especially for intrinsics using
multiple prototype modifiers per operand (e.g., intrinsics operating on
arrays of vectors). The number had to reference the correct character in
the prototype (e.g., the ‘u’ in “2.u”), making the system cumbersome and
error-prone.
With this patch, template argument numbers now refer to the operand
number that determines the final type suffix, providing a more intuitive
and consistent approach.
DeltaFile
+466-0clang/test/CodeGen/AArch64/sme2-intrinsics/acle_sme2_mop4_1x2.c
+462-0llvm/test/CodeGen/AArch64/sme2-intrinsics-mop4a_1x2.ll
+94-10clang/test/Sema/aarch64-sme2p2-instrinsics/acle_sme2p2_imm.cpp
+52-9llvm/lib/Target/AArch64/SMEInstrFormats.td
+10-1llvm/include/llvm/IR/IntrinsicsAArch64.td
+9-0clang/include/clang/Basic/arm_sme.td
+1,093-202 files not shown
+1,099-238 files

LLVM/project c1efd8blibclc/generic/include/math clc_tanpi.h clc_exp10.h

[libclc][NFC] Delete two unused headers

These should have been deleted when the respective builtins were moved
to the CLC library.
DeltaFile
+0-13libclc/generic/include/math/clc_tanpi.h
+0-12libclc/generic/include/math/clc_exp10.h
+0-252 files

LLVM/project db505c8llvm/test/CodeGen/AArch64 itofp.ll vector-fcvt.ll

[AArch64] Custom lower v4i8 subreg extract.

A v4i8 extract will usually be scalarized. This prevents that during lowering,
converting it to an anyext and larger v4i16 subvector extract. There are a few
minor regressions that are fixed up in a followup.
DeltaFile
+320-516llvm/test/CodeGen/AArch64/itofp.ll
+114-198llvm/test/CodeGen/AArch64/vector-fcvt.ll
+15-28llvm/test/CodeGen/AArch64/bitcast-extend.ll
+7-12llvm/test/CodeGen/AArch64/sve-fixed-length-masked-scatter.ll
+8-10llvm/test/CodeGen/AArch64/sve-fixed-length-masked-gather.ll
+9-5llvm/test/CodeGen/AArch64/aarch64-neon-vector-insert-uaddlv.ll
+473-76910 files not shown
+505-79716 files

LLVM/project 15cfe4amlir/include/mlir/Dialect/LLVMIR LLVMOps.td, mlir/lib/Dialect/LLVMIR/IR LLVMDialect.cpp

[MLIR] Adding 'no_inline' and 'always_inline' attributes on LLMV::CallOp (#133726)

Addition of `no_inline` and `always_inline` attributes for CallOps in
MLIR in order to be able to inline or not directly the call of a
function without having the attribute on the `FuncOp`.
The addition of these attributes will be used in a future PR in Flang
(`[NO]INLINE` directive).
DeltaFile
+17-17mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
+29-0mlir/test/Target/LLVMIR/llvmir.mlir
+25-0mlir/test/Target/LLVMIR/Import/call-attributes.ll
+8-4mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
+4-0mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp
+3-0mlir/lib/Target/LLVMIR/ModuleImport.cpp
+86-216 files

LLVM/project 513a91aflang-rt/lib/runtime extensions.cpp, flang/docs Intrinsics.md

[flang/flang-rt] Implement PERROR intrinsic form GNU Extension (#132406)

Add the implementation of the `PERROR(STRING) ` intrinsic from the GNU
Extension to prints on the stderr a newline-terminated error message
corresponding to the last system error prefixed by `STRING`.
(https://gcc.gnu.org/onlinedocs/gfortran/PERROR.html)
DeltaFile
+52-0flang/test/Lower/Intrinsics/perror.f90
+15-0flang/lib/Optimizer/Builder/IntrinsicCall.cpp
+12-0flang/docs/Intrinsics.md
+11-0flang/lib/Optimizer/Builder/Runtime/Command.cpp
+5-0flang/include/flang/Optimizer/Builder/Runtime/Command.h
+4-0flang-rt/lib/runtime/extensions.cpp
+99-03 files not shown
+105-09 files

LLVM/project c8dc571llvm/lib/Target/AArch64 AArch64InstrInfo.td, llvm/test/CodeGen/AArch64 extract-subvec-combine.ll andorxor.ll

[AArch64] Prefer zip over ushll for anyext.

Many CPUs have a higher throughput of ZIP instructions vs USHLL. This adds some
tablegen patterns for preferring zip in anyext patterns.
DeltaFile
+13-6llvm/test/CodeGen/AArch64/extract-subvec-combine.ll
+17-0llvm/lib/Target/AArch64/AArch64InstrInfo.td
+6-6llvm/test/CodeGen/AArch64/andorxor.ll
+2-3llvm/test/CodeGen/AArch64/neon-bitcast.ll
+2-2llvm/test/CodeGen/AArch64/extbinopload.ll
+1-3llvm/test/CodeGen/AArch64/sve-fixed-length-extract-subvector.ll
+41-204 files not shown
+45-2610 files

LLVM/project bcf0f8dlibclc/clc/include/clc/math clc_exp10.h, libclc/clc/lib/generic/math clc_exp10.inc clc_tables.cl

[libclc] Move exp10 to the CLC library (#133899)

The builtin was already nominally in the CLC library; this commit just
moves it over. It also vectorizes the builtin on its way.
DeltaFile
+155-0libclc/clc/lib/generic/math/clc_exp10.inc
+0-152libclc/generic/lib/math/clc_exp10.cl
+0-69libclc/generic/lib/math/tables.cl
+22-0libclc/clc/lib/generic/math/clc_tables.cl
+21-0libclc/clc/lib/generic/math/clc_exp10.cl
+20-0libclc/clc/include/clc/math/clc_exp10.h
+218-2216 files not shown
+223-22812 files

LLVM/project 1ebc308llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs various_ir_values.ll.funcsig.globals.expected various_ir_values.ll.funcsig.transitiveglobals.expected

[DebugInfo][RemoveDIs] Remove debug-intrinsic printing cmdline options (#131855)

During the transition from debug intrinsics to debug records, we used
several different command line options to customise handling: the
printing of debug records to bitcode and textual could be independent of
how the debug-info was represented inside a module, whether the
autoupgrader ran could be customised. This was all valuable during
development, but now that totally removing debug intrinsics is coming
up, this patch removes those options in favour of a single flag
(experimental-debuginfo-iterators), which enables autoupgrade, in-memory
debug records, and debug record printing to bitcode and textual IR.

We need to do this ahead of removing the
experimental-debuginfo-iterators flag, to reduce the amount of
test-juggling that happens at that time.

There are quite a number of weird test behaviours related to this --
some of which I simply delete in this commit. Things like
print-non-instruction-debug-info.ll , the test suite now checks for

    [23 lines not shown]
DeltaFile
+0-317llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.funcsig.globals.expected
+0-306llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.funcsig.transitiveglobals.expected
+0-247llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.funcsig.expected
+0-245llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.funcsig.noglobals.expected
+0-245llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.expected
+0-175llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll
+0-1,53545 files not shown
+174-2,05051 files