LLVM/project e3f42b0llvm/lib/Target/RISCV/MCTargetDesc RISCVMCCodeEmitter.cpp, llvm/test/MC/RISCV tail-call.s

[RISCV] Expand PseudoTAIL with t2 instead of t1 for Zicfilp. (#89014)

PseudoTail should be a software guarded branch in Ziciflp, since its
branch target is known in link time. JALR/C.JR/C.JALR with rs1 as t2 is
termed a software guarded branch. Such branches do not need to land on a
lpad instruction.

ABI Change PR: https://github.com/riscv-non-isa/riscv-asm-manual/pull/93
DeltaFile
+27-0llvm/test/MC/RISCV/tail-call.s
+4-0llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCCodeEmitter.cpp
+31-02 files

LLVM/project b7df9a3clang/include/clang/Sema Sema.h, clang/lib/Sema SemaTemplateDeduction.cpp SemaTemplate.cpp

[clang] Implement provisional wording for CWG2398 regarding packs

This solves some ambuguity introduced in P0522 regarding how
template template parameters are partially ordered, and should reduce
the negative impact of enabling `-frelaxed-template-template-args`
by default.

A template template parameter containing no packs should be more
specialized than one that does.

Given the following example:
```C++
template<class T2> struct A;
template<template<class ...T3s> class TT1, class T4> struct A<TT1<T4>>; #1
template<template<class    T5 > class TT2, class T6> struct A<TT2<T6>>; #2

template<class T1> struct B;
template struct A<B<char>>;
```

    [18 lines not shown]
DeltaFile
+59-20clang/lib/Sema/SemaTemplateDeduction.cpp
+6-4clang/lib/Sema/SemaTemplate.cpp
+0-6clang/test/SemaTemplate/cwg2398.cpp
+3-2clang/include/clang/Sema/Sema.h
+68-324 files

LLVM/project b86e099clang/docs ReleaseNotes.rst, clang/lib/Driver/ToolChains Clang.cpp

[clang] Enable C++17 relaxed template template argument matching by default (#89807)

This patch will finally allow us to mark C++17 support in clang as
complete.
    
In order to implement this as a DR and avoid breaking reasonable code
that worked before P0522, this patch implements a provisional resolution
for CWG2398: When deducing template template parameters against each other,
and the argument side names a template specialization, instead of just
deducing A, we deduce a synthesized template template parameter based
on A, but with it's parameters using the template specialization's arguments
as defaults.
    
The driver flag is deprecated with a warning.
    
Fixes https://github.com/llvm/llvm-project/issues/36505
DeltaFile
+139-0clang/test/SemaTemplate/cwg2398.cpp
+101-6clang/lib/Sema/SemaTemplateDeduction.cpp
+19-0clang/docs/ReleaseNotes.rst
+8-10clang/www/cxx_status.html
+8-9clang/test/SemaTemplate/instantiate-template-template-parm.cpp
+10-6clang/lib/Driver/ToolChains/Clang.cpp
+285-3113 files not shown
+317-6319 files

LLVM/project 59ab292bolt/lib/Rewrite LinuxKernelRewriter.cpp, bolt/test/X86 linux-static-keys.s

[BOLT] Register Linux kernel dynamic branch offsets (#90677)

To match profile data to code we need to know branch instruction offsets
within a function. For this reason, we mark branches with the "Offset"
annotation while disassembling the code. However, _dynamic_ branches in
the Linux kernel could be NOPs in disassembled code, and we ignore them
while adding annotations. We need to explicitly add the "Offset"
annotation while creating dynamic branches.

Note that without this change, `getInstructionAtOffset()` would still
return a branch instruction if the offset matched the last instruction
in a basic block (and the profile data was matched correctly). However,
the function failed for cases when the searched instruction was followed
by an unconditional jump. "Offset" annotation solves this case.
DeltaFile
+23-6bolt/test/X86/linux-static-keys.s
+3-0bolt/lib/Rewrite/LinuxKernelRewriter.cpp
+26-62 files

LLVM/project dd09a7dbolt/lib/Passes SplitFunctions.cpp, bolt/lib/Rewrite LinuxKernelRewriter.cpp

[BOLT] Add split function support for the Linux kernel (#90541)

While rewriting the Linux kernel, we try to fit optimized functions into
their original boundaries. When a function becomes larger, we skip it
during the rewrite and end up with less than optimal code layout. To
overcome that issue, add support for --split-function option so that hot
part of the function could be fit into the original space. The cold part
should go to reserved space in the binary.
DeltaFile
+35-9bolt/lib/Rewrite/LinuxKernelRewriter.cpp
+13-0bolt/lib/Passes/SplitFunctions.cpp
+48-92 files

LLVM/project df91cdeclang/lib/StaticAnalyzer/Checkers/WebKit UncountedCallArgsChecker.cpp, clang/test/Analysis/Checkers/WebKit call-args-wtf-containers.cpp mock-types.h

[alpha.webkit.UncountedCallArgsChecker] Ignore methods of WTF String classes. (#90704)

DeltaFile
+118-0clang/test/Analysis/Checkers/WebKit/call-args-wtf-containers.cpp
+10-3clang/lib/StaticAnalyzer/Checkers/WebKit/UncountedCallArgsChecker.cpp
+6-3clang/test/Analysis/Checkers/WebKit/mock-types.h
+134-63 files

LLVM/project 1f1a417clang-tools-extra/clang-tidy/readability ConstReturnTypeCheck.cpp, clang-tools-extra/docs ReleaseNotes.rst

[clang-tidy] Relax readability-const-return-type (#90560)

From now readability-const-return-type won't provide warnings for
returning const types, where const is not on top level. In such case
const there is a performance issue, but not a readability.

Closes #73270
DeltaFile
+4-17clang-tools-extra/clang-tidy/readability/ConstReturnTypeCheck.cpp
+17-3clang-tools-extra/test/clang-tidy/checkers/readability/const-return-type.cpp
+4-0clang-tools-extra/docs/ReleaseNotes.rst
+25-203 files

LLVM/project 889e60dclang-tools-extra/clang-tidy/bugprone CastingThroughVoidCheck.cpp, clang-tools-extra/docs ReleaseNotes.rst

[clang-tidy] Ignore casts from void to void in bugprone-casting-through-void (#90566)

Improved bugprone-casting-through-void check by ignoring casts where
source is already a void pointer, making middle void pointer casts
bug-free.

Closes #87069
DeltaFile
+7-0clang-tools-extra/test/clang-tidy/checkers/bugprone/casting-through-void.cpp
+2-3clang-tools-extra/clang-tidy/bugprone/CastingThroughVoidCheck.cpp
+5-0clang-tools-extra/docs/ReleaseNotes.rst
+14-33 files

LLVM/project a370d57clang-tools-extra/docs/clang-tidy/checks list.rst

[NFC][clang-tidy] update check list document (#90813)

DeltaFile
+1-1clang-tools-extra/docs/clang-tidy/checks/list.rst
+1-11 files

LLVM/project 0644909llvm/lib/Target/RISCV RISCVInstrInfo.td RISCVRegisterInfo.td, llvm/lib/Target/RISCV/GISel RISCVRegisterBankInfo.cpp

[RISCV] Avoid using x7/t2 for indirect branches which need landing pad. (#68292)

When Zicfilp enabled, this avoids selecting indirect jumps to PseudoBRIND/PseudoCALLIndirect/PseudoTAILIndirect, since they may uses X7 as rs1 and be identified as a software guarded jump. There is an another PR #66762 to use software guarded jump for jumptable branch.
DeltaFile
+48-0llvm/test/CodeGen/RISCV/zicfilp-indirect-branch.ll
+31-3llvm/lib/Target/RISCV/RISCVInstrInfo.td
+3-0llvm/lib/Target/RISCV/RISCVRegisterInfo.td
+2-0llvm/lib/Target/RISCV/GISel/RISCVRegisterBankInfo.cpp
+2-0llvm/lib/Target/RISCV/RISCVFeatures.td
+86-35 files

LLVM/project 3d65bd9llvm/include/llvm/IR Attributes.h, llvm/lib/IR Attributes.cpp AttributeImpl.h

[NFC] Reduce copies created of ConstantRange when getting ConstantRangeAttributes (#90335)

Think that it can be good to reduce the number of copies created when
working with ConstantRangeAttributes.
DeltaFile
+4-4llvm/lib/IR/Attributes.cpp
+2-2llvm/include/llvm/IR/Attributes.h
+2-2llvm/lib/IR/AttributeImpl.h
+2-2llvm/lib/Transforms/Utils/FunctionComparator.cpp
+2-1llvm/lib/IR/Verifier.cpp
+12-115 files

LLVM/project 027939dbolt/include/bolt/Core BinaryFunction.h, bolt/lib/Core BinaryFunction.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.4
DeltaFile
+22-5bolt/lib/Profile/BoltAddressTranslation.cpp
+4-9bolt/lib/Passes/ValidateInternalCalls.cpp
+9-3bolt/test/X86/bolt-address-translation-yaml.test
+7-0bolt/lib/Profile/DataAggregator.cpp
+6-0bolt/include/bolt/Core/BinaryFunction.h
+1-5bolt/lib/Core/BinaryFunction.cpp
+49-221 files not shown
+51-237 files

LLVM/project c476c1fbolt/include/bolt/Core BinaryFunction.h, bolt/lib/Core BinaryFunction.cpp

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

Created using spr 1.3.4

[skip ci]
DeltaFile
+4-9bolt/lib/Passes/ValidateInternalCalls.cpp
+7-0bolt/lib/Profile/DataAggregator.cpp
+1-5bolt/lib/Core/BinaryFunction.cpp
+6-0bolt/include/bolt/Core/BinaryFunction.h
+3-2bolt/test/X86/bolt-address-translation-yaml.test
+2-1bolt/lib/Rewrite/RewriteInstance.cpp
+23-176 files

LLVM/project ad7ee90bolt/include/bolt/Core BinaryContext.h, bolt/lib/Rewrite RewriteInstance.cpp

[BOLT][NFC] Add BOLTReserved to BinaryContext (#90766)

Use BOLTReserved to track binary space preallocated for BOLT.
DeltaFile
+21-17bolt/lib/Rewrite/RewriteInstance.cpp
+4-0bolt/include/bolt/Core/BinaryContext.h
+25-172 files

LLVM/project 2b1be3dbolt/include/bolt/Core BinaryFunction.h, bolt/lib/Core BinaryFunction.cpp

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

Created using spr 1.3.4

[skip ci]
DeltaFile
+4-9bolt/lib/Passes/ValidateInternalCalls.cpp
+6-0bolt/include/bolt/Core/BinaryFunction.h
+1-5bolt/lib/Core/BinaryFunction.cpp
+2-1bolt/lib/Rewrite/RewriteInstance.cpp
+13-154 files

LLVM/project b1a3f65bolt/include/bolt/Core BinaryFunction.h, bolt/lib/Core BinaryFunction.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.4
DeltaFile
+4-9bolt/lib/Passes/ValidateInternalCalls.cpp
+7-0bolt/lib/Profile/DataAggregator.cpp
+1-5bolt/lib/Core/BinaryFunction.cpp
+6-0bolt/include/bolt/Core/BinaryFunction.h
+3-2bolt/test/X86/bolt-address-translation-yaml.test
+2-1bolt/lib/Rewrite/RewriteInstance.cpp
+23-176 files

LLVM/project 37e5d80bolt/include/bolt/Core BinaryFunction.h, bolt/lib/Core BinaryFunction.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.4
DeltaFile
+4-9bolt/lib/Passes/ValidateInternalCalls.cpp
+6-0bolt/include/bolt/Core/BinaryFunction.h
+1-5bolt/lib/Core/BinaryFunction.cpp
+2-1bolt/lib/Rewrite/RewriteInstance.cpp
+13-154 files

LLVM/project ff94c5abolt/include/bolt/Core BinaryFunction.h, bolt/lib/Core BinaryFunction.cpp

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

Created using spr 1.3.4

[skip ci]
DeltaFile
+4-9bolt/lib/Passes/ValidateInternalCalls.cpp
+6-0bolt/include/bolt/Core/BinaryFunction.h
+1-0bolt/lib/Core/BinaryFunction.cpp
+11-93 files

LLVM/project 44338a3llvm/test/CodeGen/AMDGPU memory-legalizer-global-agent.ll memory-legalizer-global-workgroup.ll

update commit message

Created using spr 1.3.4
DeltaFile
+13,404-6,344llvm/test/CodeGen/AMDGPU/memory-legalizer-global-agent.ll
+12,949-6,549llvm/test/CodeGen/AMDGPU/memory-legalizer-global-workgroup.ll
+12,712-6,088llvm/test/CodeGen/AMDGPU/memory-legalizer-global-system.ll
+12,041-6,669llvm/test/CodeGen/AMDGPU/memory-legalizer-global-singlethread.ll
+12,041-6,669llvm/test/CodeGen/AMDGPU/memory-legalizer-global-wavefront.ll
+12,958-4,611llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-system.ll
+76,105-36,930502 files not shown
+201,042-84,242508 files

LLVM/project 3066d80llvm/test/CodeGen/AMDGPU memory-legalizer-global-agent.ll memory-legalizer-global-workgroup.ll

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.4

[skip ci]
DeltaFile
+13,404-6,344llvm/test/CodeGen/AMDGPU/memory-legalizer-global-agent.ll
+12,949-6,549llvm/test/CodeGen/AMDGPU/memory-legalizer-global-workgroup.ll
+12,712-6,088llvm/test/CodeGen/AMDGPU/memory-legalizer-global-system.ll
+12,041-6,669llvm/test/CodeGen/AMDGPU/memory-legalizer-global-wavefront.ll
+12,041-6,669llvm/test/CodeGen/AMDGPU/memory-legalizer-global-singlethread.ll
+12,958-4,611llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-system.ll
+76,105-36,930502 files not shown
+201,042-84,242508 files

LLVM/project b297f63llvm/test/CodeGen/AMDGPU memory-legalizer-global-agent.ll memory-legalizer-global-workgroup.ll

Rebase and fix test

Created using spr 1.3.4
DeltaFile
+13,404-6,344llvm/test/CodeGen/AMDGPU/memory-legalizer-global-agent.ll
+12,949-6,549llvm/test/CodeGen/AMDGPU/memory-legalizer-global-workgroup.ll
+12,712-6,088llvm/test/CodeGen/AMDGPU/memory-legalizer-global-system.ll
+12,041-6,669llvm/test/CodeGen/AMDGPU/memory-legalizer-global-singlethread.ll
+12,041-6,669llvm/test/CodeGen/AMDGPU/memory-legalizer-global-wavefront.ll
+12,958-4,611llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-system.ll
+76,105-36,930502 files not shown
+201,042-84,242508 files

LLVM/project 9c64107llvm/test/CodeGen/AMDGPU memory-legalizer-global-agent.ll memory-legalizer-global-workgroup.ll

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.4

[skip ci]
DeltaFile
+13,404-6,344llvm/test/CodeGen/AMDGPU/memory-legalizer-global-agent.ll
+12,949-6,549llvm/test/CodeGen/AMDGPU/memory-legalizer-global-workgroup.ll
+12,712-6,088llvm/test/CodeGen/AMDGPU/memory-legalizer-global-system.ll
+12,041-6,669llvm/test/CodeGen/AMDGPU/memory-legalizer-global-wavefront.ll
+12,041-6,669llvm/test/CodeGen/AMDGPU/memory-legalizer-global-singlethread.ll
+12,958-4,611llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-system.ll
+76,105-36,930503 files not shown
+201,043-84,243509 files

LLVM/project 964058cllvm/test/CodeGen/AMDGPU memory-legalizer-global-agent.ll memory-legalizer-global-workgroup.ll

Rebase and fix typo

Created using spr 1.3.4
DeltaFile
+13,404-6,344llvm/test/CodeGen/AMDGPU/memory-legalizer-global-agent.ll
+12,949-6,549llvm/test/CodeGen/AMDGPU/memory-legalizer-global-workgroup.ll
+12,712-6,088llvm/test/CodeGen/AMDGPU/memory-legalizer-global-system.ll
+12,041-6,669llvm/test/CodeGen/AMDGPU/memory-legalizer-global-wavefront.ll
+12,041-6,669llvm/test/CodeGen/AMDGPU/memory-legalizer-global-singlethread.ll
+12,958-4,611llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-agent.ll
+76,105-36,930503 files not shown
+201,043-84,243509 files

LLVM/project 4dac662llvm/test/CodeGen/AMDGPU memory-legalizer-global-agent.ll memory-legalizer-global-workgroup.ll

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.4

[skip ci]
DeltaFile
+13,404-6,344llvm/test/CodeGen/AMDGPU/memory-legalizer-global-agent.ll
+12,949-6,549llvm/test/CodeGen/AMDGPU/memory-legalizer-global-workgroup.ll
+12,712-6,088llvm/test/CodeGen/AMDGPU/memory-legalizer-global-system.ll
+12,041-6,669llvm/test/CodeGen/AMDGPU/memory-legalizer-global-singlethread.ll
+12,041-6,669llvm/test/CodeGen/AMDGPU/memory-legalizer-global-wavefront.ll
+12,958-4,611llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-system.ll
+76,105-36,930503 files not shown
+201,043-84,243509 files

LLVM/project 319aaa6llvm/test/CodeGen/AMDGPU memory-legalizer-global-agent.ll memory-legalizer-global-workgroup.ll

Fix mismerge and rebase on main

Created using spr 1.3.4
DeltaFile
+13,404-6,344llvm/test/CodeGen/AMDGPU/memory-legalizer-global-agent.ll
+12,949-6,549llvm/test/CodeGen/AMDGPU/memory-legalizer-global-workgroup.ll
+12,712-6,088llvm/test/CodeGen/AMDGPU/memory-legalizer-global-system.ll
+12,041-6,669llvm/test/CodeGen/AMDGPU/memory-legalizer-global-wavefront.ll
+12,041-6,669llvm/test/CodeGen/AMDGPU/memory-legalizer-global-singlethread.ll
+12,958-4,611llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-agent.ll
+76,105-36,930503 files not shown
+201,043-84,243509 files

LLVM/project 56c4658llvm/test/CodeGen/AMDGPU memory-legalizer-global-agent.ll memory-legalizer-global-workgroup.ll

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.4

[skip ci]
DeltaFile
+13,404-6,344llvm/test/CodeGen/AMDGPU/memory-legalizer-global-agent.ll
+12,949-6,549llvm/test/CodeGen/AMDGPU/memory-legalizer-global-workgroup.ll
+12,712-6,088llvm/test/CodeGen/AMDGPU/memory-legalizer-global-system.ll
+12,041-6,669llvm/test/CodeGen/AMDGPU/memory-legalizer-global-wavefront.ll
+12,041-6,669llvm/test/CodeGen/AMDGPU/memory-legalizer-global-singlethread.ll
+12,958-4,611llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-agent.ll
+76,105-36,930499 files not shown
+201,036-84,217505 files

LLVM/project 99a071bbolt/include/bolt/Core BinaryFunction.h, bolt/lib/Core BinaryFunction.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.4
DeltaFile
+4-9bolt/lib/Passes/ValidateInternalCalls.cpp
+6-0bolt/include/bolt/Core/BinaryFunction.h
+1-0bolt/lib/Core/BinaryFunction.cpp
+11-93 files

LLVM/project d484c4dllvm/lib/CodeGen InterleavedLoadCombinePass.cpp, llvm/test/CodeGen/AArch64 interleaved-load-combine-pr90695.ll

[InterleavedLoadCombine] Bail out on non-byte-sized vector element type (#90705)

Vectors are always tightly packed, and elements of non-byte-sized
usually do not have a well-defined (byte) offset.

Fixes https://github.com/llvm/llvm-project/issues/90695.
DeltaFile
+19-0llvm/test/CodeGen/AArch64/interleaved-load-combine-pr90695.ll
+3-0llvm/lib/CodeGen/InterleavedLoadCombinePass.cpp
+22-02 files

LLVM/project 4b75fcfclang/docs Multilib.rst, clang/test/Driver baremetal-multilib.yaml print-multi-selection-flags.c

Triple::normalize: Use none as OS for XX-none-ABI (#89638)

When parsing a 3-component triple, after we determine Arch and Env, if
the middle component is "none", treat it as OS instead of Vendor.

See:
https://discourse.llvm.org/t/rfc-baremetal-target-triple-normalization/78524
Fixes: #89582.
DeltaFile
+32-32clang/test/Driver/baremetal-multilib.yaml
+7-7clang/test/Driver/print-multi-selection-flags.c
+5-5clang/test/Driver/arm-triple.c
+6-0llvm/lib/TargetParser/Triple.cpp
+2-2clang/docs/Multilib.rst
+1-1llvm/unittests/TargetParser/TripleTest.cpp
+53-475 files not shown
+58-5211 files

LLVM/project 8c64a30clang/docs ReleaseNotes.rst, clang/lib/Basic/Targets WebAssembly.cpp

[WebAssembly] Disable reference types in generic CPU (#90792)

#80923 newly enabled multivalue and reference-types in the generic CPU.
But enabling reference-types ended up breaking up Wasm's Chromium CI
(https://chromium-review.googlesource.com/c/emscripten-releases/+/5500231)
because the way the table index is encoded is different from MVP (u32)
vs. reference-types (LEB), which caused different encodings for
`call_indirect`.

And Chromium CI's and Emscripten's minimum required node version is v16,
which does not yet support reference-types, which does not recognize
that table index encoding. reference-types is first supported in node
v17.2.

We knew the current minimum required node for Emscripten (v16) did not
support reference-types, but thought it was fine because unless you
explicitly use `__funcref` or `__externref` things would be fine, and if
you want to use them explicitly, you would have a newer node. But it
turned out it also affected the encoding of `call_indirect`.

    [2 lines not shown]
DeltaFile
+4-4clang/docs/ReleaseNotes.rst
+1-1clang/lib/Basic/Targets/WebAssembly.cpp
+1-1clang/test/Preprocessor/wasm-target-features.c
+6-63 files