LLVM/project 1b2ccf9llvm/lib/Target/AMDGPU SIInstrInfo.cpp SIInstrInfo.h, llvm/test/CodeGen/AMDGPU tail-call-inreg-arguments.waterfall.ll call-args-inreg-no-sgpr-for-csrspill.ll

[AMDGPU] Generate waterfall for calls with SGPR(inreg) argument (#146997)

Fixing issue https://github.com/llvm/llvm-project/issues/140780

Generate waterfall loop for call using SGPR(inreg) argument but result
from divergent source (e.g. VGPR).
DeltaFile
+446-0llvm/test/CodeGen/AMDGPU/tail-call-inreg-arguments.waterfall.ll
+164-61llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+59-50llvm/test/CodeGen/AMDGPU/call-args-inreg-no-sgpr-for-csrspill.ll
+0-78llvm/test/CodeGen/AMDGPU/tail-call-inreg-arguments.error.ll
+27-2llvm/lib/Target/AMDGPU/SIInstrInfo.h
+11-5llvm/lib/Target/AMDGPU/SIFixSGPRCopies.cpp
+707-1966 files

LLVM/project 89f1856clang-tools-extra/test/clang-tidy/checkers/readability redundant-typename.cpp

[clang-tidy][NFC] Add test case confirming #190944 is fixed (#192707)

Closes #190944.

This issue is already fixed, and this change just adds a test case to
confirm that.
DeltaFile
+12-0clang-tools-extra/test/clang-tidy/checkers/readability/redundant-typename.cpp
+12-01 files

LLVM/project cea56f6llvm/test/Transforms/LoopVectorize predicated-inductions.ll

[LV] Add additional test cases with predicated inductions. (NFC) (#192875)

Extend test coverage with predicated IVs both with and without
additional predicates from LoopAccessInfo.
DeltaFile
+719-0llvm/test/Transforms/LoopVectorize/predicated-inductions.ll
+719-01 files

LLVM/project e08ec62llvm/lib/CodeGen SelectOptimize.cpp

[SelectOptimize] Emit Fatal Error instead of Asserting on null PSI (#192871)

SelectOptimize expects to have PSI available which will normally be
available if the pipeline is set up correctly to require
ProfileSummaryInfo at the beginning. However, we do not want to assert
if someone sets up the pipeline incorrectly, instead reporting a fatal
usage error.

Fixes #192759.
DeltaFile
+3-1llvm/lib/CodeGen/SelectOptimize.cpp
+3-11 files

LLVM/project cac7fe5llvm/lib/Transforms/Vectorize VPlan.h VPlanTransforms.cpp, llvm/test/Transforms/LoopVectorize/VPlan vplan-printing-reductions.ll

[VPlan] Make canonical IV part of the region (#156262)

The canonical IV is directly tied to a loop region. To directly ensure
there's a single, unique canonical IV, directly define it by the region.

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

PR: https://github.com/llvm/llvm-project/pull/156262
DeltaFile
+81-101llvm/lib/Transforms/Vectorize/VPlan.h
+50-62llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+70-20llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
+67-15llvm/lib/Transforms/Vectorize/VPlan.cpp
+28-32llvm/unittests/Transforms/Vectorize/VPlanVerifierTest.cpp
+38-19llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing-reductions.ll
+334-24953 files not shown
+786-54059 files

LLVM/project abc37e6llvm/utils/gn/secondary/clang/lib/Headers BUILD.gn

[gn build] Port 4b0dd87d3a29 (#192869)
DeltaFile
+1-0llvm/utils/gn/secondary/clang/lib/Headers/BUILD.gn
+1-01 files

LLVM/project 4bd6175llvm/lib/Target/AArch64 AArch64SMEAttributes.h, llvm/unittests/Target/AArch64 SMEAttributesTest.cpp

[AArch64][SME] Remove a couple of unused functions (NFC) (#192649)

Follow up to https://github.com/llvm/llvm-project/pull/190950
DeltaFile
+9-14llvm/unittests/Target/AArch64/SMEAttributesTest.cpp
+0-9llvm/lib/Target/AArch64/AArch64SMEAttributes.h
+9-232 files

LLVM/project e7cdce4llvm/lib/Bitcode/Reader BitcodeReader.cpp

[BitcodeReader] Simplify CST_CODE_DATA constant parsing (NFC) (#190846)

Cleanup boilerplate in the CST_CODE_DATA case for bitcode parser. This
is generally an aesthetic improvement and can significantly reduce stack
usage on some compilers (such as MSVC) where each SmallVector previously
was allocated it's own individual space.
DeltaFile
+16-78llvm/lib/Bitcode/Reader/BitcodeReader.cpp
+16-781 files

LLVM/project c12a3bbclang/test/Driver linux-ld-args.c linux-ld.c

[test] Improve driver option coverage (#192861)

Split the Linux GNU-linker assertions into a dedicated file and extend
them with previously-untested passthrough flags handled by
gnutools::Linker::ConstructJob: -s, -u sym, -rdynamic (-export-dynamic),
-Wl,-z keyword pairs.

LoongArch on Linux previously had no test for -X / --no-relax, which are
emitted by Gnu.cpp for LoongArch and RISC-V.
DeltaFile
+25-0clang/test/Driver/linux-ld-args.c
+7-7clang/test/Driver/linux-ld.c
+9-0clang/test/Driver/loongarch-toolchain.c
+7-0clang/test/Driver/freebsd.c
+1-6clang/test/Driver/Xlinker-args.c
+49-135 files

LLVM/project d34661bllvm/lib/Analysis LoopPass.cpp

[LPM][LegacyPM] Reenable LCSSA Verification

This was disabled about a decade ago due to issues with LoopSink.
LoopSink has since had its LegacyPM version removed and is now a
function pass due to not needing too much loop infrastructure. So we can
try enabling this again to prevent backsliding on important cases while
we work on switching to the NewPM which does enforce these things.

Eventually we will want to add assertions here for LoopStrengthReduce,
but given it does not correctly preserve LCSSA, postpone that for now.

Reviewers: arsenm, Meinersbur, nikic, fhahn

Pull Request: https://github.com/llvm/llvm-project/pull/191667
DeltaFile
+2-4llvm/lib/Analysis/LoopPass.cpp
+2-41 files

LLVM/project d1a0d04clang/lib/CIR/CodeGen CIRGenBuiltin.cpp, clang/test/CIR/CodeGenBuiltins builtin-bit-clz-ctz-target.cpp

[CIR] Fix __builtin_clz/__builtin_ctz poison_zero to respect target

CIR was hardcoding poisonZero=true for all clz/ctz builtins, ignoring
the target's isCLZForZeroUndef(). This caused incorrect UB on targets
like AArch64 where clz/ctz of zero is well-defined.

Also add support for __builtin_c[lt]zg fallback (2-arg) variants with
compare+select, and add NYI stubs for elementwise variants.
DeltaFile
+104-0clang/test/CIR/CodeGenBuiltins/builtin-bit-clz-ctz-target.cpp
+45-19clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
+149-192 files

LLVM/project 9086be2llvm/test/CodeGen/AMDGPU/NextUseAnalysis spill-vreg-many-lanes.mir acyclic-770bb.mir

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+275,101-0llvm/test/CodeGen/AMDGPU/NextUseAnalysis/spill-vreg-many-lanes.mir
+144,679-0llvm/test/CodeGen/AMDGPU/NextUseAnalysis/acyclic-770bb.mir
+57,682-0llvm/test/CodeGen/AMDGPU/NextUseAnalysis/double-nested-loops-complex-cfg.mir
+41,844-0llvm/test/CodeGen/AMDGPU/NextUseAnalysis/test_ers_multiple_spills2.mir
+40,613-0llvm/test/CodeGen/AMDGPU/NextUseAnalysis/test_ers_multiple_spills1.mir
+37,209-0llvm/test/CodeGen/AMDGPU/NextUseAnalysis/test_ers_multiple_spills3.mir
+597,128-01,715 files not shown
+875,193-22,8011,721 files

LLVM/project 5492150llvm/lib/Analysis ConstantFolding.cpp, llvm/lib/IR ConstantFold.cpp

[ConstantFold] Support byte values in `bitcast` constant folding (#188030)

Add support for constant folding `bitcast` instructions including
`ConstantByte` values. This patch handles bitcasts between byte types
and integer, FP, and other byte types in both directions.

`poison` source bytes are preserved, rather than letting the generic
integer fold refine them to `undef` or zero. This is because some
threading optimizations just compare the result of constant folding
(e.g., https://github.com/llvm/llvm-project/pull/114280).

Folds are skipped for byte `bitcast`s where element counts don't divide
evenly and the source contains `poison` values. Some of these casts can
be folded. However, this is left for a future PR.
DeltaFile
+347-0llvm/test/Transforms/InstSimplify/bitcast-vector-fold.ll
+122-7llvm/lib/Analysis/ConstantFolding.cpp
+44-12llvm/lib/IR/ConstantFold.cpp
+513-193 files

LLVM/project e93f7e5llvm/include/llvm/Support GenericLoopInfoImpl.h

[NFC][Loop] Remove unused verbose loop debug output

This has been defined out using the preprocessor for ~14 years. Given it
doesn't look like it has gotten any use since then, just remove it to
clean the code up a bit.

Reviewers: nikic

Pull Request: https://github.com/llvm/llvm-project/pull/192830
DeltaFile
+0-6llvm/include/llvm/Support/GenericLoopInfoImpl.h
+0-61 files

LLVM/project f5e2b8blldb/packages/Python/lldbsuite/test dotest_args.py, lldb/packages/Python/lldbsuite/test/builders darwin.py builder.py

[lldb] Rally around triple rather than arch in the API tests (#192818)

This PR removes as much uses of arch as possible, in favor of using
triple directly. Most of the changes are in the builder, which no longer
passes ARCH to Make, and of course in Makefile.rules.

This significantly simplifies the remote Darwin test suite, as it
previously had to try and piece together the triple from the platform
and the arch. As an added benefit, we now go through the same code path
for host and remote test runs.

I have tested this on Darwin and Linux and made the changes with the
remote test suites in mind, but it's possible I missed something not
caught by my local testing.
DeltaFile
+33-81lldb/packages/Python/lldbsuite/test/builders/darwin.py
+24-86lldb/packages/Python/lldbsuite/test/make/Makefile.rules
+11-15lldb/packages/Python/lldbsuite/test/builders/builder.py
+6-16lldb/packages/Python/lldbsuite/test/dotest_args.py
+12-5lldb/test/API/commands/expression/ptrauth-objc/TestPtrAuthObjectiveC.py
+11-4lldb/test/API/commands/expression/ptrauth/TestPtrAuthExpressions.py
+97-20715 files not shown
+146-23621 files

LLVM/project 9e5a9a6llvm/test/CodeGen/AMDGPU/NextUseAnalysis spill-vreg-many-lanes.mir acyclic-770bb.mir

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+275,101-0llvm/test/CodeGen/AMDGPU/NextUseAnalysis/spill-vreg-many-lanes.mir
+144,679-0llvm/test/CodeGen/AMDGPU/NextUseAnalysis/acyclic-770bb.mir
+57,682-0llvm/test/CodeGen/AMDGPU/NextUseAnalysis/double-nested-loops-complex-cfg.mir
+41,844-0llvm/test/CodeGen/AMDGPU/NextUseAnalysis/test_ers_multiple_spills2.mir
+40,613-0llvm/test/CodeGen/AMDGPU/NextUseAnalysis/test_ers_multiple_spills1.mir
+37,209-0llvm/test/CodeGen/AMDGPU/NextUseAnalysis/test_ers_multiple_spills3.mir
+597,128-01,696 files not shown
+875,056-22,6901,702 files

LLVM/project b6a4fdbllvm/test/Transforms/LoopStrengthReduce pr25541.ll, llvm/test/Transforms/LoopStrengthReduce/X86 bin_power.ll 2011-12-04-loserreg.ll

[LSR] Autogenerate some tests

pr25541.ll - Was a regression test for a crash. Make a note and
autogenerate the tests.
bin_power.ll - Was essentially doing what UTC would do already, minus
one test where the assembly output is somewhat large, but the large
assembly output shouldn't be an issue with an autoupdate script and
isn't big enough to justify not including in my opinion.

This makes updating some tests easier for planned changes to LCSSA
preservation.

Reviewers: fhahn, nikic

Pull Request: https://github.com/llvm/llvm-project/pull/191664
DeltaFile
+251-94llvm/test/Transforms/LoopStrengthReduce/X86/bin_power.ll
+81-5llvm/test/Transforms/LoopStrengthReduce/X86/2011-12-04-loserreg.ll
+32-6llvm/test/Transforms/LoopStrengthReduce/pr25541.ll
+364-1053 files

LLVM/project e427518llvm/lib/CodeGen MachineBlockHashInfo.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+27-10llvm/lib/CodeGen/MachineBlockHashInfo.cpp
+27-101 files

LLVM/project 3d909fbllvm/lib/CodeGen MachineBlockHashInfo.cpp

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

Created using spr 1.3.7

[skip ci]
DeltaFile
+24-10llvm/lib/CodeGen/MachineBlockHashInfo.cpp
+24-101 files

LLVM/project 342fb34llvm/lib/CodeGen MachineBlockHashInfo.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+24-10llvm/lib/CodeGen/MachineBlockHashInfo.cpp
+24-101 files

LLVM/project f5358f8llvm/lib/CodeGen MachineBlockHashInfo.cpp

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

Created using spr 1.3.7

[skip ci]
DeltaFile
+20-5llvm/lib/CodeGen/MachineBlockHashInfo.cpp
+20-51 files

LLVM/project b0a029fllvm/lib/CodeGen MachineBlockHashInfo.cpp

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

Created using spr 1.3.7

[skip ci]
DeltaFile
+4-2llvm/lib/CodeGen/MachineBlockHashInfo.cpp
+4-21 files

LLVM/project f8d3d82llvm/lib/CodeGen MachineBlockHashInfo.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+20-5llvm/lib/CodeGen/MachineBlockHashInfo.cpp
+20-51 files

LLVM/project 5051c09llvm/lib/CodeGen MachineBlockHashInfo.cpp

include

Created using spr 1.3.7
DeltaFile
+1-1llvm/lib/CodeGen/MachineBlockHashInfo.cpp
+1-11 files

LLVM/project 15021a2llvm/lib/CodeGen MachineBlockHashInfo.cpp

stableHashValue

Created using spr 1.3.7
DeltaFile
+3-100llvm/lib/CodeGen/MachineBlockHashInfo.cpp
+3-1001 files

LLVM/project fcc6192clang/test/CIR/CodeGen lambda-dtor-field.cpp cxx-default-init.cpp

[CIR] Emit inbounds nuw flags on GetMemberOp GEP lowering (#186738)

Struct member accesses via GetMemberOp are always inbounds and cannot
unsigned-wrap, matching LLVM's IRBuilder::CreateStructGEP behavior.
DeltaFile
+15-15clang/test/CIR/CodeGen/lambda-dtor-field.cpp
+14-14clang/test/CIR/CodeGen/cxx-default-init.cpp
+13-13clang/test/CIR/CodeGen/lambda.cpp
+11-11clang/test/CIR/CodeGen/struct.cpp
+9-9clang/test/CIR/CodeGen/bitfields.c
+8-8clang/test/CIR/CodeGen/volatile.cpp
+70-7027 files not shown
+149-14333 files

LLVM/project a3f244elibcxx/include/__functional bind_front.h, libcxx/test/libcxx/utilities/function.objects/func.bind.partial bind_front.nttp.compile.pass.cpp bind_front.nttp.nodiscard.verify.cpp

[libc++][functional] Implement `std::bind_front<NTTP>` (#165096)

Add `std::bind_front<NTTP>` function from
[P2714R1](https://wg21.link/p2714r1).

Towards https://github.com/llvm/llvm-project/issues/105388.
DeltaFile
+388-0libcxx/test/std/utilities/function.objects/func.bind.partial/bind_front.nttp.pass.cpp
+65-0libcxx/test/std/utilities/function.objects/func.bind.partial/bind_front.nttp.verify.cpp
+49-0libcxx/include/__functional/bind_front.h
+43-0libcxx/test/libcxx/utilities/function.objects/func.bind.partial/bind_front.nttp.compile.pass.cpp
+19-0libcxx/test/libcxx/utilities/function.objects/func.bind.partial/bind_front.nttp.nodiscard.verify.cpp
+8-0libcxx/test/std/utilities/function.objects/func.bind.partial/types.h
+572-01 files not shown
+574-07 files

LLVM/project e260edbclang/test/CIR/CodeGen lambda-dtor-field.cpp cxx-default-init.cpp

[CIR] Emit inbounds nuw flags on GetMemberOp GEP lowering

Struct member accesses via GetMemberOp are always inbounds and cannot
unsigned-wrap, matching LLVM's IRBuilder::CreateStructGEP behavior.
DeltaFile
+15-15clang/test/CIR/CodeGen/lambda-dtor-field.cpp
+14-14clang/test/CIR/CodeGen/cxx-default-init.cpp
+13-13clang/test/CIR/CodeGen/lambda.cpp
+11-11clang/test/CIR/CodeGen/struct.cpp
+9-9clang/test/CIR/CodeGen/bitfields.c
+8-8clang/test/CIR/CodeGen/volatile.cpp
+70-7027 files not shown
+149-14333 files

LLVM/project 21762a1clang/lib/Driver/ToolChains FreeBSD.cpp

[ToolChains][FreeBSD] Pass -s to Linker

Clang now supports pass -s to Linker instead of using -Wl,-s. This
change is in sync with Gnu Toolchain's behavior.
DeltaFile
+3-0clang/lib/Driver/ToolChains/FreeBSD.cpp
+3-01 files

LLVM/project 17e1a3blibcxx/test/std/containers/views/mdspan/mdspan index_operator.pass.cpp

[libc++] Enable `mdspan::operator[]` constraint tests for AppleClang (#192475)

Although I couldn't find a corresponding AppleClang release note, this
issue appears to be fixed in AppleClang 16.
DeltaFile
+0-31libcxx/test/std/containers/views/mdspan/mdspan/index_operator.pass.cpp
+0-311 files