LLVM/project 99847e6llvm/lib/Transforms/IPO LowerTypeTests.cpp ThinLTOBitcodeWriter.cpp, llvm/test/Transforms/LowerTypeTests promoted-internal.ll

[CFI] Create an external linkage alias instead of promoting internals
DeltaFile
+19-32llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
+35-0llvm/lib/Transforms/IPO/LowerTypeTests.cpp
+29-0llvm/test/Transforms/LowerTypeTests/promoted-internal.ll
+10-7llvm/test/Transforms/ThinLTOBitcodeWriter/comdat.ll
+4-2llvm/test/Transforms/ThinLTOBitcodeWriter/split-vfunc-internal.ll
+3-2llvm/test/Transforms/ThinLTOBitcodeWriter/split-internal2.ll
+100-432 files not shown
+104-478 files

LLVM/project f0175eellvm/lib/Transforms/IPO WholeProgramDevirt.cpp, llvm/test/ThinLTO/X86 devirt-alias-attributes.ll devirt-alias-cross-module.ll

[WPD] Dereference `GlobalAlias` targets
DeltaFile
+84-0llvm/test/ThinLTO/X86/devirt-alias-cross-module-interposable.ll
+78-0llvm/test/ThinLTO/X86/devirt-alias-attributes-interposable.ll
+61-0llvm/test/ThinLTO/X86/devirt-alias-cross-module.ll
+51-0llvm/test/ThinLTO/X86/devirt-alias-attributes.ll
+37-0llvm/test/Transforms/WholeProgramDevirt/uniform-retval-alias.ll
+11-4llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
+322-41 files not shown
+327-77 files

LLVM/project e196d96llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/lib/Transforms/Vectorize/SLPVectorizer SLPUtils.h SLPUtils.cpp

[SLP]Analyze widened reduction leaves in the narrow type

When all leaves of an and/or/xor reduction are narrow integers widened
via zext/shl, and InstCombine packed some of them under a single zext,
collect the narrow leaves with per-lane shift amounts and masks and
build the tree in the narrow type. Narrow shls fold into the shift,
narrow ands into the mask. The result is widened back, shifted and
masked per lane before the reduction.

Fixes #198195

Reviewers: bababuck, RKSimon

Pull Request: https://github.com/llvm/llvm-project/pull/216062
DeltaFile
+149-3llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+116-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.cpp
+15-93llvm/test/Transforms/SLPVectorizer/X86/zext-or-nibble-reduction.ll
+10-53llvm/test/Transforms/SLPVectorizer/RISCV/zext-or-nibble-reduction.ll
+27-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.h
+317-1495 files

LLVM/project 3dfadb0llvm/lib/Target/NVPTX NVPTXISelLowering.cpp, llvm/test/CodeGen/NVPTX shift-logic-cse.ll

[NVPTX] Expose CSE for shifts of logic operations (#213091)

SelectionDAG does not currently transpose multiple shifts of constant
bitwise operations as a group, so expressions sharing the same input
retain separate shifts.

This adds a combine for two or more AND, OR, or XOR operations that
share an input and shift amount:

```
P1 = shl (LOP X, C1), S 
P2 = shl (LOP X, C2), S      
P3 = shl (LOP X, C3), S      

 -> 

SX = shl X, S
P1 = LOP SX, (C1 << S) ; constants will be folded
P2 = LOP SX, (C2 << S) ; constants will be folded

    [7 lines not shown]
DeltaFile
+180-0llvm/test/CodeGen/NVPTX/shift-logic-cse.ll
+129-0llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
+309-02 files

LLVM/project 030551ellvm/lib/DWARFLinker/Parallel SyntheticTypeNameBuilder.h SyntheticTypeNameBuilder.cpp, llvm/test/tools/dsymutil/X86 odr-static-member-mixed-spelling.s

[DWARFLinker] Unique a static data member independent of its tag (#217751)

A C++ static data member is a DW_TAG_member with DW_AT_declaration in
DWARF 4 and a DW_TAG_variable in DWARF 5 (DWARF 5 section 5.7.6). Clang
chooses between the two from -gdwarf-version alone, so both reach the
linker whenever objects built at different versions are linked.

Uniquing in the parallel linker identifies a data member by its index
among the record's DW_TAG_member children, and DW_TAG_variable children
are not counted.

```
struct S {
  static const int kMask = 1;
  int field;
};
```

In the example above, kMask is counted in the DWARF 4 unit and takes

    [10 lines not shown]
DeltaFile
+320-0llvm/test/tools/dsymutil/X86/odr-static-member-mixed-spelling.s
+32-3llvm/lib/DWARFLinker/Parallel/SyntheticTypeNameBuilder.cpp
+1-1llvm/lib/DWARFLinker/Parallel/SyntheticTypeNameBuilder.h
+353-43 files

LLVM/project 2698859llvm/lib/Transforms/Scalar Reassociate.cpp, llvm/test/Transforms/PhaseOrdering/AArch64 reduce_submuladd.ll

[Reassociate]Keep fmul/fadd pairs together for fma

Do not linearize one-use contract fmul/fadd pairs into the enclosing
expression tree, so they stay fusable as fma. Unpack them only when a
repeated factor exists, so factorization still applies.

Fixes #211521

Assisted-by: Cursor

Reviewers: krzysz00, dtcxzyw

Pull Request: https://github.com/llvm/llvm-project/pull/215873
DeltaFile
+407-0llvm/test/Transforms/Reassociate/fma-pairs.ll
+70-70llvm/test/Transforms/PhaseOrdering/AArch64/reduce_submuladd.ll
+86-0llvm/test/Transforms/PhaseOrdering/X86/fma-reassociate-pairs.ll
+58-12llvm/lib/Transforms/Scalar/Reassociate.cpp
+621-824 files

LLVM/project 24e4164llvm/lib/DWARFLinker/Parallel OutputSections.cpp

[DWARFLinker] Erase the type ref patch list with the section data (#217989)

SectionDescriptor::clearAllSectionData drops every patch list but
ListDebugDieTypeRefPatch. maybeResetToLoadedStage calls eraseSections()
on a unit which is already past Stage::Cloned, so that list outlives the
section content it points into and is then applied to the offsets of the
re-cloned content.
DeltaFile
+1-0llvm/lib/DWARFLinker/Parallel/OutputSections.cpp
+1-01 files

LLVM/project 932cd4ellvm/lib/Target/AMDGPU GCNSubtarget.cpp AMDGPUTargetParser.td, llvm/test/TableGen AMDGPUTargetDefErrors.td

incorporate comments

Change-Id: If727a9eb8459825d555c8784b5d23771312d51ed
DeltaFile
+64-18llvm/lib/Target/AMDGPU/AMDGPU.td
+0-71llvm/lib/Target/AMDGPU/GCNProcessors.td
+34-3llvm/utils/TableGen/Basic/AMDGPUTargetDefEmitter.cpp
+0-18llvm/test/TableGen/AMDGPUTargetDefErrors.td
+0-11llvm/lib/Target/AMDGPU/AMDGPUTargetParser.td
+7-3llvm/lib/Target/AMDGPU/GCNSubtarget.cpp
+105-1246 files not shown
+124-14012 files

LLVM/project f4a43fcllvm/include/llvm/TargetParser AMDGPUTargetParser.h, llvm/lib/Target/AMDGPU R600Subtarget.h GCNSubtarget.cpp

[AMDGPU] Address wave query review feedback

Keep the minimum and maximum waves-per-EU queries together in TargetParser, use the canonical full-SIMD-mode predicate added by the gfx13 LDS changes, and extend coverage for non-splitting and gfx13 targets.

Change-Id: I74a8180e605d6fbf4219d26bc48b2273477db1ec
DeltaFile
+11-2llvm/unittests/TargetParser/TargetParserTest.cpp
+2-4llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
+0-4llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
+2-2llvm/lib/Target/AMDGPU/GCNSubtarget.cpp
+3-0llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
+1-1llvm/lib/Target/AMDGPU/R600Subtarget.h
+19-132 files not shown
+21-158 files

LLVM/project a9c707cllvm/lib/Target/AMDGPU AMDGPU.td

fix indent

Change-Id: I5ff36bf0554c82de1d1d9462e92ee15c6d015b46
DeltaFile
+13-21llvm/lib/Target/AMDGPU/AMDGPU.td
+13-211 files

LLVM/project f4f784ellvm/include/llvm/TargetParser AMDGPUTargetParser.h, llvm/lib/Target/AMDGPU GCNProcessors.td

[AMDGPU] Move EU and Wave Queries into TargetParser

Change-Id: I32b24e6fd7c676d7ca99bdcaa7f9baf351ff4f7f
DeltaFile
+71-0llvm/lib/Target/AMDGPU/GCNProcessors.td
+37-0llvm/unittests/TargetParser/TargetParserTest.cpp
+13-22llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
+24-0llvm/lib/TargetParser/AMDGPUTargetParser.cpp
+18-0llvm/test/TableGen/AMDGPUTargetDefErrors.td
+13-0llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
+176-229 files not shown
+213-5115 files

LLVM/project 3ca4805llvm/test/CodeGen/AMDGPU buffer-fat-pointer-atomicrmw-fmax.ll buffer-fat-pointer-atomicrmw-fadd.ll

Rebase, extra checks, improvements

Created using spr 1.3.7
DeltaFile
+3,815-3,810llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fmin.ll
+3,815-3,810llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fmax.ll
+3,513-3,467llvm/test/CodeGen/AMDGPU/global-atomicrmw-fmin.ll
+3,513-3,467llvm/test/CodeGen/AMDGPU/global-atomicrmw-fmax.ll
+3,252-3,311llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fadd.ll
+2,533-2,603llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fmax.ll
+20,441-20,4684,206 files not shown
+179,192-136,9014,212 files

LLVM/project 9a08a80lldb/source/Plugins/Process/Linux NativeRegisterContextLinux_ppc64le.cpp NativeProcessLinux.h

lldb: Linux: clean up dead and mis-ordered includes (#217435)

Add a few obviously missing includes. Use fully qualified paths more
consistently.

This will help later planned refactorings, and better complies with the
style guide.

Link: https://llvm.org/docs/CodingStandards.html#include-style
Link: https://github.com/llvm/llvm-project/issues/217413
DeltaFile
+7-14lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+7-11lldb/source/Plugins/Process/Linux/NativeThreadLinux.cpp
+8-10lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
+7-9lldb/source/Plugins/Process/Linux/SingleStepCheck.cpp
+6-7lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_ppc64le.cpp
+6-7lldb/source/Plugins/Process/Linux/NativeProcessLinux.h
+41-5815 files not shown
+92-9621 files

LLVM/project 3859204llvm/include/llvm/IR IntrinsicsNVVM.td, llvm/lib/Target/NVPTX NVPTXISelLowering.cpp NVPTXIntrinsics.td

[NVVM][NVPTX] Support decompress_b feature for tcgen05.mma intrinsics (#216312)

Support `decompress_b` feature for `tcgen05.mma` intrinsics in the
NVVM/NVPTX flow.
DeltaFile
+264-0llvm/test/CodeGen/NVPTX/tcgen05-mma-block-scale-decompress-b.ll
+263-0llvm/test/CodeGen/NVPTX/tcgen05-mma-disable-output-lane-decompress-b.ll
+260-0llvm/test/CodeGen/NVPTX/tcgen05-mma-decompress-b.ll
+158-12llvm/lib/Target/NVPTX/NVPTXIntrinsics.td
+134-8llvm/include/llvm/IR/IntrinsicsNVVM.td
+28-0llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
+1,107-206 files

LLVM/project dc948bellvm/runtimes CMakeLists.txt

[runtimes] Escape list separators when forwarding search paths (#216169)

`CMAKE_PREFIX_PATH` and `CMAKE_PROGRAM_PATH` are forwarded to the
runtimes sub-build as `-D` arguments, but a CMake list is just a
semicolon-separated string, so `list(APPEND)` splits a multi-entry path
across several elements. The sub-build is then configured with only the
first entry, and the rest become stray positional arguments to cmake.

Configuring with `-DCMAKE_PREFIX_PATH="/aaa;/bbb"
-DCMAKE_PROGRAM_PATH="/ccc;/ddd"` and `-DLLVM_ENABLE_RUNTIMES=libunwind`
produces this runtimes configure command today:

```
-DCMAKE_PREFIX_PATH=/aaa
/bbb
-DCMAKE_PROGRAM_PATH=/ccc
/ddd
```


    [13 lines not shown]
DeltaFile
+8-3llvm/runtimes/CMakeLists.txt
+8-31 files

LLVM/project 2243f63utils/bazel/llvm-project-overlay/libc BUILD.bazel

[Bazel] Fixes 75d5d50 (#218023)

This fixes 75d5d50255a809604d1149ff377957ed9311ceb3 (#217471).

Buildkite error link:
https://buildkite.com/llvm-project/upstream-bazel/builds?commit=75d5d50255a809604d1149ff377957ed9311ceb3

Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
DeltaFile
+7-0utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+7-01 files

LLVM/project fb75e72llvm/lib/Target/AMDGPU AMDGPUCodeGenPrepare.cpp, llvm/test/CodeGen/AMDGPU amdgpu-codegenprepare-sqrt.ll

AMDGPU: Fix assert on llvm.sqrt.f16 on gfx6/7 (#217994)
DeltaFile
+21-0llvm/test/CodeGen/AMDGPU/amdgpu-codegenprepare-sqrt.ll
+1-1llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
+22-12 files

LLVM/project d867129llvm/utils/gn/secondary/lldb/source/Plugins/Language/CPlusPlus BUILD.gn

[gn build] Port 9a9b50168182 (#218025)
DeltaFile
+1-0llvm/utils/gn/secondary/lldb/source/Plugins/Language/CPlusPlus/BUILD.gn
+1-01 files

LLVM/project 862f921offload/languages/kernel/include Stream.h OffloadErrors.h, offload/languages/kernel/src State.cpp

add interal StreamTy
DeltaFile
+234-31offload/languages/kernel/src/State.cpp
+43-7offload/languages/kernel/include/State.h
+34-9offload/test/offloading/CUDA/stream_api.cu
+33-8offload/test/offloading/HIP/stream_api.hip
+38-0offload/languages/kernel/include/OffloadErrors.h
+33-0offload/languages/kernel/include/Stream.h
+415-554 files not shown
+460-7710 files

LLVM/project d24c23alibc/include/llvm-libc-macros/linux signal-macros.h, libc/src/signal/linux signal_utils.h

[libc] Update NSIG value and usage on Linux. (#217481)

* Increase NSIG to 65 - one greater than the maximal possible value
allowed for a signal. POSIX doesn't reference NSIG constant itself, but
is explicit (after Issue 8 / Austin Group Defect 741) that SIGRTMAX
should be strictly less than sysconf(_SC_NSIG) and all SIG* constants
should be strictly less than NSIG_MAX
(https://pubs.opengroup.org/onlinepubs/9799919799/). Note that other
libc implementations on Linux (e.g. glibc and musl) also define NSIG as
the value greater than SIGRTMAX.
* Fix a handful of uses/comments to reflect the updated semantics.
* Add `_NSIG` alias to the same value for compatibility.
DeltaFile
+6-5libc/include/llvm-libc-macros/linux/signal-macros.h
+4-6libc/src/signal/linux/signal_utils.h
+1-2libc/test/src/ucontext/ucontext_test.cpp
+0-2libc/test/src/signal/sigaddset_test.cpp
+11-154 files

LLVM/project 75d5d50libc/hdr/types struct_sysinfo.h, libc/include/llvm-libc-types struct_sysinfo.h

[libc] Implement sysinfo (#217471)

Adds the public sysinfo function and tests. The internal wrapper already
existed. I decided to avoid defining `struct sysinfo` since it's a
kernel struct defined in the UAPI headers. Can revisit in future if
necessary.

Assisted-by: Automated tooling, human reviewed.
DeltaFile
+35-0libc/test/src/sys/sysinfo/sysinfo_test.cpp
+33-0libc/src/sys/sysinfo/linux/sysinfo.cpp
+27-0libc/hdr/types/struct_sysinfo.h
+26-0libc/src/sys/sysinfo/sysinfo.h
+21-0libc/include/llvm-libc-types/struct_sysinfo.h
+19-0libc/include/llvm-libc-types/linux/struct_sysinfo.h
+161-022 files not shown
+264-428 files

LLVM/project 27802eeoffload/languages/kernel/include Stream.h OffloadErrors.h, offload/languages/kernel/src State.cpp

add interal StreamTy
DeltaFile
+235-31offload/languages/kernel/src/State.cpp
+43-7offload/languages/kernel/include/State.h
+34-9offload/test/offloading/CUDA/stream_api.cu
+33-8offload/test/offloading/HIP/stream_api.hip
+38-0offload/languages/kernel/include/OffloadErrors.h
+33-0offload/languages/kernel/include/Stream.h
+416-554 files not shown
+461-7710 files

LLVM/project 6c4f409clang/lib/CodeGen CGOpenMPRuntime.cpp, clang/test/OpenMP distribute_parallel_for_simd_num_threads_codegen.cpp distribute_parallel_for_num_threads_codegen.cpp

[clang][OpenMP] Fix thread count upper bound for target directives

Fix the UpperBound-computing ternary, which was inverted: std::min is
only reachable when UpperBound is 0, where it is a no-op, so any clause
with a bound to combine simply overwrites it.
Two consequences:

- A clause can raise the bound above a smaller one.
  'target teams distribute parallel for thread_limit(8) num_threads(64)' gets a bound of 64.
- A non-constant clause pins the bound at 0 and discards every constant
  clause after it, losing the bound entirely.

Additionally, let a construct split over separate 'target', 'teams' and
worksharing directives find its num_threads clause, so it agrees with
the combined spelling.

Note that the codegen changes in
`clang/test/OpenMP/distribute_parallel_for_num_threads_codegen.cpp` and
`clang/test/OpenMP/distribute_parallel_for_simd_num_threads_codegen.cpp`

    [5 lines not shown]
DeltaFile
+82-0clang/test/OpenMP/thread_limit_gpu.c
+29-8clang/lib/CodeGen/CGOpenMPRuntime.cpp
+8-8clang/test/OpenMP/distribute_parallel_for_simd_num_threads_codegen.cpp
+8-8clang/test/OpenMP/distribute_parallel_for_num_threads_codegen.cpp
+127-244 files

LLVM/project 9a9b501lldb/source/Plugins/Language/CPlusPlus MsvcStl.h CPlusPlusLanguage.cpp, lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/expected Makefile main.cpp

[lldb] Add MSVC STL formatter for std::expected (#217243)

Pretty-print MSVC STL `std::expected<T, E>` and `expected<void, E>`.
Engaged values show `Value`; unexpected alternatives show `Unexpected`.
The anonymous union is walked the same way as `optional` so PDB debug
info still finds `_Value` / `_Unexpected`.

Tests: generic C++23 MSVC STL coverage for engaged, unexpected, void,
and reference cases using PDB debug info.

Part of #24834

Assisted-by: Grok 4.6
Assisted-by: codex-5.6-high

---------

Co-authored-by: Bjorn Schobben <bjorn.schobben at aimsport.com>
DeltaFile
+101-0lldb/source/Plugins/Language/CPlusPlus/MsvcStlExpected.cpp
+46-0lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/expected/TestDataFormatterStdExpected.py
+24-0lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
+12-0lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/expected/main.cpp
+8-0lldb/source/Plugins/Language/CPlusPlus/MsvcStl.h
+4-0lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/expected/Makefile
+195-01 files not shown
+196-07 files

LLVM/project 8a9cc1cmlir/include/mlir/IR DialectImplementation.h, mlir/test/IR properties-invalid.mlir properties.mlir

Revert "[MLIR][ODS] Parse prop-dict fields with custom parsers" (#218010)

Reverts llvm/llvm-project#217590 due to buildbot failures (reported in
https://github.com/llvm/llvm-project/pull/217590#issuecomment-5372403484
and
https://github.com/llvm/llvm-project/pull/217590#issuecomment-5373041184)

```
******************** TEST 'MLIR :: IR/properties.mlir' FAILED ********************
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 1
/home/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan_ubsan/bin/mlir-opt /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/test/IR/properties.mlir -split-input-file | /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan_ubsan/bin/mlir-opt | /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan_ubsan/bin/FileCheck /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/test/IR/properties.mlir
# executed command: /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan_ubsan/bin/mlir-opt /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/test/IR/properties.mlir -split-input-file
# .---command stderr------------
# | /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/test/IR/properties.mlir:95:60: error: custom op 'test.with_key_value_parser_boundaries' expected integer value
# | test.with_key_value_parser_boundaries <specializedValues = [3, 4], specializedMaybe = some<7>, values = array<i64: 1, 2>, maybe = [], maybeEnum = [], next = 9>
# |                                                            ^
# `-----------------------------
```
DeltaFile
+0-264mlir/test/lib/Dialect/Test/TestOps.td
+0-218mlir/tools/mlir-tblgen/OpFormatGen.cpp
+1-94mlir/test/IR/properties.mlir
+4-76mlir/include/mlir/IR/DialectImplementation.h
+0-79mlir/test/IR/properties-invalid.mlir
+0-34mlir/test/lib/Dialect/Test/TestOps.h
+5-7656 files not shown
+13-83512 files

LLVM/project f7ab6bcllvm/lib/Transforms/Vectorize VPlanUtils.cpp, llvm/test/Transforms/LoopVectorize trip-count-expansion-may-introduce-ub.ll hoist-and-sink-mem-ops-with-invariant-pointers.ll

[VPlan] Expand negated add operands as a subtract in VPSCEVExpander. (#215253)

Update VPSCEVExpander to try to expand adds of negative values as
subtract, instead of adding the negated operand. This matches IR
SCEVExpander behavior and improves expansions slightly.

It also avoids regressions when expanding more expressions.

Alive2 Proof: https://alive2.llvm.org/ce/z/Emgeqv

Depends on https://github.com/llvm/llvm-project/pull/215252
DeltaFile
+50-17llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
+33-1llvm/test/Transforms/LoopVectorize/VPlan/expand-scev.ll
+2-6llvm/test/Transforms/LoopVectorize/cast-induction.ll
+2-3llvm/test/Transforms/LoopVectorize/nested-loops-scev-expansion.ll
+2-2llvm/test/Transforms/LoopVectorize/trip-count-expansion-may-introduce-ub.ll
+2-2llvm/test/Transforms/LoopVectorize/hoist-and-sink-mem-ops-with-invariant-pointers.ll
+91-316 files

LLVM/project 714039bllvm/lib/Transforms/IPO LowerTypeTests.cpp ThinLTOBitcodeWriter.cpp, llvm/test/Transforms/LowerTypeTests promoted-internal.ll

[CFI] Create an external linkage alias instead of promoting internals
DeltaFile
+19-32llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
+35-0llvm/lib/Transforms/IPO/LowerTypeTests.cpp
+29-0llvm/test/Transforms/LowerTypeTests/promoted-internal.ll
+10-7llvm/test/Transforms/ThinLTOBitcodeWriter/comdat.ll
+4-2llvm/test/Transforms/ThinLTOBitcodeWriter/split-vfunc-internal.ll
+3-2llvm/test/Transforms/ThinLTOBitcodeWriter/split-internal2.ll
+100-432 files not shown
+104-478 files

LLVM/project e39a7dallvm/lib/Transforms/IPO WholeProgramDevirt.cpp, llvm/test/ThinLTO/X86 devirt-alias-attributes.ll devirt-alias-cross-module.ll

[WPD] Dereference `GlobalAlias` targets
DeltaFile
+84-0llvm/test/ThinLTO/X86/devirt-alias-cross-module-interposable.ll
+78-0llvm/test/ThinLTO/X86/devirt-alias-attributes-interposable.ll
+61-0llvm/test/ThinLTO/X86/devirt-alias-cross-module.ll
+51-0llvm/test/ThinLTO/X86/devirt-alias-attributes.ll
+37-0llvm/test/Transforms/WholeProgramDevirt/uniform-retval-alias.ll
+11-4llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
+322-41 files not shown
+327-77 files

LLVM/project 061865fclang/lib/CodeGen CodeGenModule.cpp, clang/test/CodeGenCXX msvc-global-delete-llvm-used.cpp

[clang][win] Fix __global_delete breaking __attribute__((used)) (#217753)

The `__empty_global_delete` fallback introduced in #209585 was marked
used via `llvm::appendToUsed()`, which creates a global named
"llvm.used" during codegen. `CodeGenModule::emitLLVMUsed()` later
unconditionally creates its own global of that same name at end-of-TU,
so the name collision renamed the latter to "llvm.used.1" -- a name LLVM
ignores. The result was that every `__attribute__((used))` global in the
TU silently lost its used semantics whenever a `__global_delete` wrapper
was emitted, letting those symbols be dropped.

Mark the fallback used via `CodeGenModule::addUsedGlobal()` instead, so
it joins the single llvm.used that `emitLLVMUsed()` emits.
`emitLLVMUsed()` runs well after `emitGlobalDeleteForwardingBodies()` in
`Release()`, so the fallback is still recorded in time.

Fixes a regression reported on #209585.
DeltaFile
+17-0clang/test/CodeGenCXX/msvc-global-delete-llvm-used.cpp
+1-1clang/lib/CodeGen/CodeGenModule.cpp
+18-12 files

LLVM/project 7fbd45cclang/lib/CodeGen CGOpenMPRuntime.cpp, clang/test/OpenMP distribute_parallel_for_simd_num_threads_codegen.cpp distribute_parallel_for_num_threads_codegen.cpp

[clang][OpenMP] Fix thread bounds for split directives

Claude assisted with this patch.
DeltaFile
+82-0clang/test/OpenMP/thread_limit_gpu.c
+29-8clang/lib/CodeGen/CGOpenMPRuntime.cpp
+8-8clang/test/OpenMP/distribute_parallel_for_simd_num_threads_codegen.cpp
+8-8clang/test/OpenMP/distribute_parallel_for_num_threads_codegen.cpp
+127-244 files