LLVM/project 1c3c09fllvm/include/llvm/CodeGen/GlobalISel Legalizer.h, llvm/lib/CodeGen/GlobalISel Legalizer.cpp

rebase

Created using spr 1.3.7
DeltaFile
+28-71llvm/lib/CodeGen/GlobalISel/Legalizer.cpp
+17-35llvm/include/llvm/CodeGen/GlobalISel/Legalizer.h
+3-3llvm/unittests/CodeGen/GlobalISel/LegalizerTest.cpp
+2-2llvm/test/CodeGen/MIR/AArch64/deactivation-symbols.mir
+1-1llvm/lib/Target/X86/X86TargetMachine.cpp
+1-1llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
+52-11312 files not shown
+63-12518 files

LLVM/project 5db2ae9llvm/include/llvm/CodeGen/GlobalISel Legalizer.h, llvm/lib/CodeGen/GlobalISel Legalizer.cpp

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+28-71llvm/lib/CodeGen/GlobalISel/Legalizer.cpp
+17-35llvm/include/llvm/CodeGen/GlobalISel/Legalizer.h
+3-3llvm/unittests/CodeGen/GlobalISel/LegalizerTest.cpp
+2-2llvm/test/CodeGen/MIR/AArch64/deactivation-symbols.mir
+1-1llvm/lib/Target/X86/X86TargetMachine.cpp
+1-1llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
+52-11312 files not shown
+63-12518 files

LLVM/project 40cddd8mlir/lib/Dialect/OpenACC/Transforms ACCCGToGPU.cpp

[mlir][OpenACC] Use active_par_dims attribute when computing active dims (#217099)

In `computeActiveAndInactiveParDims` function, use the
`acc.active_par_dims` attribute set on privatize/private_local, deriving
inactive dims from the launch dims.
DeltaFile
+42-5mlir/lib/Dialect/OpenACC/Transforms/ACCCGToGPU.cpp
+42-51 files

LLVM/project 6eb9643llvm/include/llvm/Support KnownFPClass.h, llvm/lib/Analysis ValueTracking.cpp

[KnownFPClass] Refactor sNaN handling for KnownFPClass (#216086)

Addresses
https://github.com/llvm/llvm-project/pull/215159#pullrequestreview-4898780491

I have added/modified some helpers to help with the handling of `sNaN`
and `qNaN` propagation

Changes:
- Allow `atan2` to rule out `sNaN` instead of only `NaN` in general.
- Renamed `Known.propagateNaN(KnownSrc)` to
`Known.propagateNonNaN(KnownSrc)`
- Added `Known.propagateNonSNaN(KnownSrc)` (same as `propagateNonNaN`
but does not touch sign or `qNaN`)
- Added two argument versions of `propagateNonNaN` and
`propagateNonSNaN`

Future plans:
- Add `sNaN` handling for `sin`, `cos`, `tan`, and `log`.
DeltaFile
+16-20llvm/lib/Support/KnownFPClass.cpp
+22-4llvm/include/llvm/Support/KnownFPClass.h
+10-0llvm/test/Transforms/Attributor/nofpclass-trig.ll
+1-1llvm/lib/Analysis/ValueTracking.cpp
+49-254 files

LLVM/project 95bde43compiler-rt/lib/scudo/standalone secondary.h, compiler-rt/lib/scudo/standalone/tests combined_test.cpp secondary_test.cpp

[scudo] Fix MTE remapping for cached allocations

When MTE is enabled, force page-alignment for all secondary allocations.
Since the allocation position can shift when reusing a cached block, the
new header page must be remapped with MAP_MEMTAG to enable MTE and the
old header page must be remapped without MAP_MEMTAG to disable MTE, as
it may now be a part of the user playload. This is necessary because
PROT_MTE is sticky and not cleared by the PROT_NONE mapping used during
caching.

Co-authored-by: Christopher Ferris <cferris1000 at users.noreply.github.com>
DeltaFile
+67-31compiler-rt/lib/scudo/standalone/secondary.h
+84-0compiler-rt/lib/scudo/standalone/tests/secondary_test.cpp
+27-6compiler-rt/lib/scudo/standalone/tests/combined_test.cpp
+178-373 files

LLVM/project 86876d5llvm/lib/Target/AArch64 AArch64ISelLowering.cpp

clang-format
DeltaFile
+1-2llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+1-21 files

LLVM/project 72be246.github/workflows premerge.yaml

[CI] Pin runners to us-west cluster (#217111)

We are having scaling issues in the us-central cluster, so use a hack to
pin everything to the us-west cluster while we get things sorted out in
the us-central cluster.

This should be reverted after https://github.com/llvm/llvm-zorg/pull/914
gets applied and we have confirmed scaling is working better.

LLM assisted.
DeltaFile
+11-7.github/workflows/premerge.yaml
+11-71 files

LLVM/project f00f4c5llvm/include/llvm/CodeGen MachineLoopInfo.h, llvm/lib/CodeGen MachineLoopInfo.cpp

[NFC] [llvm] mark MachineLoop get{Bottom,Top}Block const (#216860)
DeltaFile
+2-2llvm/lib/CodeGen/MachineLoopInfo.cpp
+2-2llvm/include/llvm/CodeGen/MachineLoopInfo.h
+4-42 files

LLVM/project 9ef4135llvm/lib/CodeGen/AsmPrinter DwarfDebug.cpp, llvm/test/DebugInfo/Generic compileunit-identifier-case.ll

Emit DW_AT_identifier_case for compile units (#216197)

DWARF compile unit tags can contain an attribute that indicates the case
sensitivity of symbols in the source language. This attribute will be
useful in supporting Fortran in lldb (issue# 205872)

Co-developed with Claude Opus 4.6
DeltaFile
+38-0llvm/test/DebugInfo/Generic/compileunit-identifier-case.ll
+31-0llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
+69-02 files

LLVM/project bd17836utils/bazel/llvm-project-overlay/libc BUILD.bazel

[bazel][libc] Removes the unused dependency for `floorf128`  (#217117)

Removes the unused dependency for `floorf128`
DeltaFile
+0-1utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+0-11 files

LLVM/project 43d92c7llvm/test/CodeGen/AMDGPU flat-saddr-atomics.ll llvm.amdgcn.wmma.imm.gfx1250.w32.ll

[AMDGPU] Improve the sequence for initial unclaused VMEM

Fixes LCOMPILER-2619.
DeltaFile
+250-250llvm/test/CodeGen/AMDGPU/llvm.amdgcn.wmma.gfx1250.w32.ll
+232-232llvm/test/CodeGen/AMDGPU/flat-saddr-load.ll
+196-196llvm/test/CodeGen/AMDGPU/llvm.amdgcn.wmma.imod.gfx1250.w32.ll
+183-183llvm/test/CodeGen/AMDGPU/fcanonicalize.ll
+174-174llvm/test/CodeGen/AMDGPU/llvm.amdgcn.wmma.imm.gfx1250.w32.ll
+166-166llvm/test/CodeGen/AMDGPU/flat-saddr-atomics.ll
+1,201-1,201204 files not shown
+6,527-6,329210 files

LLVM/project e92dd73clang/include/clang/CIR/Dialect/IR CIROps.td, clang/lib/CIR/CodeGen CIRGenCXX.cpp

[CIR] Implement 'init_priority' attribute (#216845)

This attribute sets the order of initialization of a global variable.
The test is pulled from classic codegen, and the rest is pretty rote.
All variables of the same 'priority' are initialized in the same init
function, generated based on the priority number.
DeltaFile
+133-0clang/test/CIR/CodeGenCXX/init-priority-attr.cpp
+67-18clang/lib/CIR/Dialect/Transforms/LoweringPrepare.cpp
+8-1clang/include/clang/CIR/Dialect/IR/CIROps.td
+3-0clang/lib/CIR/CodeGen/CIRGenCXX.cpp
+211-194 files

LLVM/project 6be2852clang/docs/analyzer checkers.rst

[analyzer][docs] Add documentation for the UseAfterLifetimeEnd chceker
DeltaFile
+59-0clang/docs/analyzer/checkers.rst
+59-01 files

LLVM/project b259decclang/test/CodeGen/AArch64 abi-classify-arg-types.c, llvm/lib/ABI/Targets AArch64.cpp

[LLVMABI][AARCH64] Add support for simple direct argument cases (#216849)

This adds LLVM ABI library support for AArch64 argument type
classification for scalar and matrix types that are classified as
Direct. Other types are reported as not yet implemented.

This also adds a Clang test for the ABI handling of types which are
handled by the library.

Assisted-by: Cursor / Grok 4.5 (test generation)
DeltaFile
+63-0clang/test/CodeGen/AArch64/abi-classify-arg-types.c
+55-2llvm/unittests/ABI/AArch64TargetInfoTest.cpp
+34-5llvm/lib/ABI/Targets/AArch64.cpp
+152-73 files

LLVM/project 13034efllvm/lib/Transforms/ObjCARC ObjCARCContract.cpp, llvm/test/Transforms/ObjCARC contract-replace-arg-use.ll

[ObjcARCContract] Do not replace llvm.lifetime argument. (#216991)

Only alloca or poison is allowed as arguments for lifetime intrinsics.
Before replacing, check if the operand can be replaced with a variable
and skip replacement if it is not valid.

Fixes a verifier crash in the added test case.

PR: https://github.com/llvm/llvm-project/pull/216991
DeltaFile
+23-0llvm/test/Transforms/ObjCARC/contract-replace-arg-use.ll
+5-0llvm/lib/Transforms/ObjCARC/ObjCARCContract.cpp
+28-02 files

LLVM/project 574efafflang/lib/Lower Bridge.cpp, flang/test/Lower/OpenACC acc-loop-directive-annotation.f90

Merge branch 'main' into users/ellishg/lld-macho-eh-frame-test
DeltaFile
+362-151llvm/test/CodeGen/AMDGPU/amdgpu-simplify-libcall-powr.ll
+318-0libc/test/src/stdio/freopen_test.cpp
+56-162flang/lib/Lower/Bridge.cpp
+180-0flang/test/Lower/OpenACC/acc-loop-directive-annotation.f90
+179-0llvm/unittests/Analysis/MLGOUtilsTest.cpp
+163-14libc/src/__support/File/linux/file.cpp
+1,258-32796 files not shown
+3,349-586102 files

LLVM/project 883f75bclang/lib/CIR/Dialect/Transforms LoweringPrepare.cpp, clang/test/CIR/CodeGen union-agg-init.c local-const-aggregate-name-clash.cpp

[CIR] Set alignment correctly in getOrCreateConstAggregateGlobal (#216321)

Just a drive-by that I discovered while debugging something else, we end
up not getting the 'alignment' of these aggregates set at all. This
patch just wires through the alloca's alignment onto these constants,
which matches classic codegen.
DeltaFile
+8-8clang/lib/CIR/Dialect/Transforms/LoweringPrepare.cpp
+6-6clang/test/CIR/CodeGen/local-const-aggregate-name-clash.cpp
+3-3clang/test/CIR/CodeGen/union-agg-init.c
+17-173 files

LLVM/project 01c479cllvm/lib/CodeGen ImplicitNullChecks.cpp

Append 'Impl' to passname.
DeltaFile
+26-27llvm/lib/CodeGen/ImplicitNullChecks.cpp
+26-271 files

LLVM/project 81aa409llvm/include/llvm/CodeGen ImplicitNullChecks.h

Update ImplicitNullChecks.h

Fix header comment.
DeltaFile
+1-1llvm/include/llvm/CodeGen/ImplicitNullChecks.h
+1-11 files

LLVM/project 57fdc0dflang/lib/Semantics check-acc-structure.cpp, flang/test/Semantics/OpenACC acc-update-validity.f90

[flang][openacc] Raise an error when UPDATE directive is in compute region (#217090)

This is in line with the reference compiler.
DeltaFile
+63-0flang/test/Semantics/OpenACC/acc-update-validity.f90
+2-0flang/lib/Semantics/check-acc-structure.cpp
+65-02 files

LLVM/project e297b4flibc/src/__support/File file.h, libc/src/__support/File/linux file.cpp

[libc] Implement freopen (#207837)

Add implementation of freopen. This involved some refactoring of the
internal FILE. Currently it's only implemented for linux, despite being
a C standard function. This is because POSIX adds several features and
ties the implementation tightly to the concept of file descriptors.
Other platforms will need separate implementations.

Needed for #191075

Assisted-by: Automated tooling, human reviewed.
DeltaFile
+318-0libc/test/src/stdio/freopen_test.cpp
+163-14libc/src/__support/File/linux/file.cpp
+43-0libc/src/stdio/generic/freopen.cpp
+30-0libc/test/src/stdio/CMakeLists.txt
+27-0libc/src/stdio/freopen.h
+21-0libc/src/__support/File/file.h
+602-148 files not shown
+637-1614 files

LLVM/project ab54709llvm/cmake/modules MLGOLower.cmake, llvm/include/llvm/Analysis EmitCModelRunner.h

[MLGO] Model selection for models lowered through EmitC (#212650)

This adds support for lowering models through an MLIR based pipeline and
selecting between one or more of them. It creates the `-mlgo-model` CLI
flag in `MLInlineAdvisor` to select between available models which are
configured through the `LLVM_MLGO_MODELS` build flag.
DeltaFile
+179-0llvm/unittests/Analysis/MLGOUtilsTest.cpp
+143-0llvm/cmake/modules/MLGOLower.cmake
+82-0llvm/include/llvm/Analysis/Utils/MLGOUtils.h
+59-13llvm/lib/CodeGen/MLRegAllocEvictAdvisor.cpp
+53-15llvm/lib/Analysis/MLInlineAdvisor.cpp
+66-0llvm/include/llvm/Analysis/EmitCModelRunner.h
+582-2821 files not shown
+724-6127 files

LLVM/project fc6e9eaclang-tools-extra/clang-tidy/readability EnumInitialValueCheck.cpp, clang-tools-extra/docs/clang-tidy/checks/readability enum-initial-value.rst

[clang-tidy] Add AllowReferencedInitialValues to `readability-enum-initial-value` (#189459)

Add a new `AllowReferencedInitialValues` option to the
`readability-enum-initial-value` check.
When enabled, enumerators initialized by referencing another enumerator
in the same enum (e.g., `last = first`) are allowed, and the remaining
enumerators are checked for consistency.

This **implements** the `INT09-C-EX1` exception from the [CERT C Coding
Standard](https://wiki.sei.cmu.edu/confluence/spaces/c/pages/87152467/INT09-C.+Ensure+enumeration+constants+map+to+unique+values#INT09C.Ensureenumerationconstantsmaptouniquevalues-Exceptions).

The option defaults to `false` to preserve existing behavior.

Example:
```cpp
// OK when AllowReferencedInitialValues is true.
enum E {
 first,
 second,

    [7 lines not shown]
DeltaFile
+79-0clang-tools-extra/test/clang-tidy/checkers/readability/enum-initial-value-allow-refs-combined.c
+61-17clang-tools-extra/clang-tidy/readability/EnumInitialValueCheck.cpp
+52-0clang-tools-extra/test/clang-tidy/checkers/readability/enum-initial-value-allow-refs.c
+37-0clang-tools-extra/test/clang-tidy/checkers/readability/enum-initial-value-allow-refs.cpp
+17-0clang-tools-extra/docs/clang-tidy/checks/readability/enum-initial-value.rst
+14-0clang-tools-extra/test/clang-tidy/checkers/readability/enum-initial-value.c
+260-173 files not shown
+278-179 files

LLVM/project f6b0fa8lld/test/MachO eh-frame.s, lld/test/MachO/Inputs eh-frame-x86_64-r.o eh-frame-arm64-r.o

[LLD][MachO] Remove eh-frame test binaries
DeltaFile
+819-12lld/test/MachO/eh-frame.s
+0-0lld/test/MachO/Inputs/eh-frame-x86_64-r.o
+0-0lld/test/MachO/Inputs/eh-frame-arm64-r.o
+819-123 files

LLVM/project 5146250clang/include/clang/Lex HeaderSearch.h, clang/lib/Lex HeaderSearch.cpp

[clang][lex] Deduplicate `-Wheader-shadowing` diags (#216748)

The `-Wheader-shadowing` diagnostic emits duplicate diagnostics. This PR
deduplicates these diagnostics by caching the check per file name.
DeltaFile
+39-0clang/test/Preprocessor/header-shadowing-dedup.c
+22-15clang/lib/Lex/HeaderSearch.cpp
+11-1clang/test/Preprocessor/header-shadowing.c
+9-2clang/include/clang/Lex/HeaderSearch.h
+81-184 files

LLVM/project 2c42a6bllvm/lib/Target/AMDGPU GCNSubtarget.h GCNSubtarget.cpp, llvm/test/CodeGen/AMDGPU swp-amdgpu-pipeline-max-mii.ll swp-amdgpu-pipeline-regpressure-retry.mir

[AMDGPU] Configure the software pipeliner policy

Set the pipeliner policy in overridePipelinerPolicy(): raise the maximum MII
and opt into the generic register-pressure detector.

MFMA latencies push the MII of otherwise pipelineable loops past the generic
limit of 27, so AMDGPU raises it to 256, which covers the II distributions
observed across Composable Kernels and Triton workloads on gfx950. Removing
the limit entirely pipelines no additional loops on those workloads and costs
around 23% more compile time, so the bound stays finite.

Enable the generic register-pressure detector so schedules exceeding the
target-provided pressure-set limits are rejected and retried at a higher II.
DeltaFile
+181-0llvm/test/CodeGen/AMDGPU/swp-amdgpu-pipeline-regpressure-retry.mir
+5-5llvm/test/CodeGen/AMDGPU/swp-amdgpu-pipeline-max-mii.ll
+9-0llvm/lib/Target/AMDGPU/GCNSubtarget.cpp
+2-0llvm/lib/Target/AMDGPU/GCNSubtarget.h
+197-54 files

LLVM/project b8ea940llvm/lib/Transforms/Vectorize LoopVectorize.cpp

Fixups
DeltaFile
+3-2llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+3-21 files

LLVM/project c974c17llvm/lib/Transforms/Vectorize VPlanConstruction.cpp

Clean up
DeltaFile
+11-14llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
+11-141 files

LLVM/project 589ea23llvm/include/llvm/Analysis LoopAccessAnalysis.h, llvm/include/llvm/Transforms/Vectorize LoopVectorizationLegality.h

Rework
DeltaFile
+11-8llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
+2-16llvm/lib/Analysis/LoopAccessAnalysis.cpp
+8-9llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
+1-3llvm/include/llvm/Analysis/LoopAccessAnalysis.h
+3-1llvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h
+25-375 files

LLVM/project 1e92466llvm/test/Transforms/LoopVectorize compress-idioms.ll

Add test
DeltaFile
+112-2llvm/test/Transforms/LoopVectorize/compress-idioms.ll
+112-21 files