LLVM/project 7b6a8d7 — clang/lib/AST/ByteCode InterpBuiltin.cpp, clang/test/AST/ByteCode ms.cpp

[clang][bytecode] Check for function pointers in __builtin_memcmp (#237877)

They can appear here in -fms-compatibility mode.
DeltaFile
+4-1clang/test/AST/ByteCode/ms.cpp
+4-0clang/lib/AST/ByteCode/InterpBuiltin.cpp
+8-12 files

LLVM/project 23313c8 — llvm/include/llvm/Analysis InlineCost.h, llvm/lib/Analysis InlineAdvisor.cpp InlineCost.cpp

[Inliner] Change CalleeTTI -> CallerTTI (#231905)

It makes more sense to use the caller's TTI, as this way we can query
whether the instruction can be inlined into the parent function, using
state described by the caller's TTI.

For example, for AArch64 SME where a function can be in a different mode
(streaming/non-streaming), the cost-model gives different answers based
on the TTI used.

For now, we don't expect to see any changes in behaviour as there are
currently no targets where it makes different cost/inlining-decisions
based on which TTI is used.
DeltaFile
+11-11llvm/lib/Analysis/InlineCost.cpp
+8-8llvm/lib/Analysis/InlineAdvisor.cpp
+5-5llvm/lib/Transforms/IPO/SampleProfile.cpp
+5-5llvm/include/llvm/Analysis/InlineCost.h
+4-4llvm/lib/Transforms/IPO/AlwaysInliner.cpp
+3-3llvm/lib/Transforms/IPO/FunctionSpecialization.cpp
+36-365 files not shown
+44-4411 files

LLVM/project 63869fb — llvm/lib/Transforms/IPO FunctionSpecialization.cpp, llvm/test/Transforms/FunctionSpecialization recursive-penalty.ll

[FuncSpec] Relax restrictions on code size growth (#196570)

This patch is a preparation for
https://github.com/llvm/llvm-project/pull/195886 , which affects code
size and thus causes more functions to be rejected by the current code
size growth restriction in function specialisation.
DeltaFile
+3-3llvm/lib/Transforms/IPO/FunctionSpecialization.cpp
+1-1llvm/test/Transforms/FunctionSpecialization/recursive-penalty.ll
+4-42 files

LLVM/project 1a9005c — flang/lib/Parser openmp-parsers.cpp

Add missing stylized instantiations
DeltaFile
+6-4flang/lib/Parser/openmp-parsers.cpp
+6-41 files

LLVM/project 03424a8 — flang/test/Semantics/OpenMP metadirective-declare-reduction-v52.f90 metadirective-declare-reduction-v51.f90

Change plus to + in two tests
DeltaFile
+4-1flang/test/Semantics/OpenMP/metadirective-declare-reduction-v52.f90
+4-1flang/test/Semantics/OpenMP/metadirective-declare-reduction-v51.f90
+8-22 files

LLVM/project 9a7cf0d — flang/test/Semantics/OpenMP metadirective-declare-reduction-v52.f90 metadirective-declare-reduction-v51.f90

Add checks for DECLARE_REDUCTION in DEFAULT/OTHERWISE
DeltaFile
+14-0flang/test/Semantics/OpenMP/metadirective-declare-reduction-v52.f90
+14-0flang/test/Semantics/OpenMP/metadirective-declare-reduction-v51.f90
+28-02 files

LLVM/project 5adc52a — flang/test/Semantics/OpenMP metadirective-declare-reduction-v52.f90 metadirective-declare-reduction-v51.f90

Add metadirective nothing per reviewer request
DeltaFile
+1-0flang/test/Semantics/OpenMP/metadirective-declare-reduction-v52.f90
+1-0flang/test/Semantics/OpenMP/metadirective-declare-reduction-v51.f90
+2-02 files

LLVM/project d6caac1 — flang/lib/Semantics check-omp-variant.cpp openmp-utils.cpp

format
DeltaFile
+2-2flang/lib/Semantics/openmp-utils.cpp
+0-1flang/lib/Semantics/check-omp-variant.cpp
+2-32 files

LLVM/project 5126244 — flang/lib/Semantics canonicalize-omp.cpp, flang/test/Semantics/OpenMP metadirective-common.f90 metadirective-declare-reduction-v52.f90

Treat ERROR AT(COMPILATION) as neutral
DeltaFile
+29-9flang/lib/Semantics/canonicalize-omp.cpp
+20-0flang/test/Semantics/OpenMP/metadirective-declare-reduction-v52.f90
+20-0flang/test/Semantics/OpenMP/metadirective-declare-reduction-v51.f90
+7-0flang/test/Semantics/OpenMP/metadirective-common.f90
+76-94 files

LLVM/project c20dd08 — flang/lib/Semantics openmp-utils.cpp

Add missing include
DeltaFile
+1-0flang/lib/Semantics/openmp-utils.cpp
+1-01 files

LLVM/project 8513b30 — flang/include/flang/Semantics openmp-utils.h, flang/lib/Semantics check-omp-variant.cpp openmp-utils.cpp

Verify selectorless clauses as well
DeltaFile
+35-20flang/lib/Semantics/openmp-utils.cpp
+9-15flang/lib/Semantics/check-omp-variant.cpp
+8-2flang/test/Semantics/OpenMP/metadirective-declare-reduction.f90
+5-0flang/include/flang/Semantics/openmp-utils.h
+57-374 files

LLVM/project 4d7b0ef — flang/lib/Semantics check-omp-variant.cpp, flang/test/Semantics/OpenMP metadirective-declare-reduction.f90 metadirective-declare-reduction-v51.f90

Address review comments
DeltaFile
+0-15flang/test/Semantics/OpenMP/metadirective-declare-reduction.f90
+15-0flang/test/Semantics/OpenMP/metadirective-declare-reduction-v51.f90
+15-0flang/test/Semantics/OpenMP/metadirective-declare-reduction-v52.f90
+1-1flang/lib/Semantics/check-omp-variant.cpp
+31-164 files

LLVM/project 38b547d — flang/lib/Semantics canonicalize-omp.cpp, flang/test/Semantics/OpenMP metadirective-declare-reduction-v52.f90 metadirective-declare-reduction-v51.f90

Missing AT is equivalent to AT(COMPILATION)
DeltaFile
+8-0flang/test/Semantics/OpenMP/metadirective-declare-reduction-v52.f90
+8-0flang/test/Semantics/OpenMP/metadirective-declare-reduction-v51.f90
+1-0flang/lib/Semantics/canonicalize-omp.cpp
+17-03 files

LLVM/project e16f9fd — flang/lib/Semantics check-omp-structure.h check-omp-structure.cpp, flang/test/Semantics/OpenMP metadirective-declare-reduction.f90

Verify DECLARE_REDUCTION in METADIRECTIVE
DeltaFile
+13-0flang/lib/Semantics/check-omp-variant.cpp
+7-2flang/lib/Semantics/check-omp-structure.cpp
+9-0flang/test/Semantics/OpenMP/metadirective-declare-reduction.f90
+1-0flang/lib/Semantics/check-omp-structure.h
+30-24 files

LLVM/project 90780de — flang/lib/Semantics check-omp-variant.cpp

format
DeltaFile
+4-2flang/lib/Semantics/check-omp-variant.cpp
+4-21 files

LLVM/project ff07471 — flang/lib/Semantics check-omp-variant.cpp

Limit checks to current METADIRECTIVE
DeltaFile
+17-7flang/lib/Semantics/check-omp-variant.cpp
+17-71 files

LLVM/project 7830d59 — flang/include/flang/Semantics tools.h, flang/lib/Semantics check-omp-structure.h tools.cpp

[flang][OpenMP] Improve diagnosing invalid operators in DECLARE_REDUCTION

Move the check out of the common MakeNameFromOperator function and
into OmpStructureChecker. Remove the no longer needed SemanticsContext
parameter in MakeNameFromOperator.

This will allow reusing at least some parts of the the name-mangling
code in DECLARE_INDUCTION.
DeltaFile
+51-19flang/lib/Semantics/check-omp-structure.cpp
+3-5flang/lib/Semantics/tools.cpp
+4-2flang/lib/Semantics/check-omp-structure.h
+3-2flang/test/Semantics/OpenMP/reduction-subtract.f90
+2-2flang/test/Semantics/OpenMP/declare-reduction-bad-operator.f90
+1-2flang/include/flang/Semantics/tools.h
+64-327 files not shown
+72-4113 files

LLVM/project 3a78896 — mlir/lib/Conversion/SPIRVToLLVM SPIRVToLLVM.cpp, mlir/test/Conversion/SPIRVToLLVM gl-ops-to-llvm.mlir

[mlir][SPIR-V] Add SPIRVToLLVM conversion for GL.Atan2 (#237741)
DeltaFile
+13-0mlir/test/Conversion/SPIRVToLLVM/gl-ops-to-llvm.mlir
+1-0mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp
+14-02 files

LLVM/project d439cb3 — llvm/test/CodeGen/AMDGPU promote-alloca-divergent-index.ll

[AMDGPU] Pre-commit tests with a sub-optimal codgen in PromoteAlloca (#236731)

Tests show that for large vectors with a divergent dynamic index
`AMDGPUPromoteAlloca` forces long chains of `cmp`/`cndmask` in the
codegen.

Assisted-by: Claude Code
DeltaFile
+226-0llvm/test/CodeGen/AMDGPU/promote-alloca-divergent-index.ll
+226-01 files

LLVM/project a32d469 — llvm/lib/Target/AMDGPU AMDGPUTargetTransformInfo.cpp, llvm/test/Analysis/CostModel/AMDGPU store.ll load.ll

[AMDGPU] Price under-aligned memory operations

Without unaligned access for the address space, an access aligned below
4 bytes is split into pieces of its alignment. LDS accesses aligned to 4
use 8-byte pieces, and take a 12-byte piece only when aligned to 16 or
when unaligned DS access is enabled.
DeltaFile
+287-116llvm/test/Analysis/CostModel/AMDGPU/load.ll
+262-104llvm/test/Analysis/CostModel/AMDGPU/store.ll
+131-47llvm/test/Transforms/SLPVectorizer/AMDGPU/packed-math.ll
+22-2llvm/test/Transforms/SLPVectorizer/AMDGPU/vectorize-i8.ll
+13-0llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
+715-2695 files

LLVM/project a61bada — llvm/lib/Target/AMDGPU AMDGPUTargetTransformInfo.cpp

if -> elif
DeltaFile
+1-1llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
+1-11 files

LLVM/project 53eee09 — llvm/lib/Target/AMDGPU AMDGPUTargetTransformInfo.cpp, llvm/test/Analysis/CostModel/AMDGPU load.ll store.ll

[AMDGPU] Price memory operations by the number of memory instructions

Price a load or store as the number of memory instructions it is split
into.

Constant and buffer "fat" pointers are left alone (for now).
DeltaFile
+229-137llvm/test/Analysis/CostModel/AMDGPU/store.ll
+210-140llvm/test/Analysis/CostModel/AMDGPU/load.ll
+260-50llvm/test/Transforms/SLPVectorizer/AMDGPU/ordered-reduction-coalesced-loads.ll
+74-7llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
+2-1llvm/test/CodeGen/AMDGPU/simplify-libcalls.ll
+2-1llvm/test/CodeGen/AMDGPU/amdgpu-simplify-libcall-sincos.ll
+777-3361 files not shown
+778-3377 files

LLVM/project df36171 — llvm/lib/Target/AMDGPU AMDGPUTargetTransformInfo.cpp

Use one dwordx3 predicate and list the merging address spaces
DeltaFile
+5-5llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
+5-51 files

LLVM/project b42b02a — llvm/lib/Target/AMDGPU AMDGPUISelLowering.h AMDGPUTargetTransformInfo.cpp, llvm/test/Analysis/CostModel/AMDGPU store.ll load.ll

Count odd width memory operations instead of deferring to BaseT
DeltaFile
+88-56llvm/test/Analysis/CostModel/AMDGPU/store.ll
+88-56llvm/test/Analysis/CostModel/AMDGPU/load.ll
+11-5llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
+1-1llvm/lib/Target/AMDGPU/AMDGPUISelLowering.h
+188-1184 files

LLVM/project fbaf4ac — llvm/lib/Target/AMDGPU AMDGPUTargetTransformInfo.cpp, llvm/test/Analysis/CostModel/AMDGPU store.ll

apply comments
DeltaFile
+16-26llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
+13-13llvm/test/Analysis/CostModel/AMDGPU/store.ll
+29-392 files

LLVM/project 61be47d — llvm/test/tools/llvm-split/AMDGPU recursive-search-8.ll recursive-search-2.ll

[NFC][AMDGPU] Store through a global pointer in recursive search llvm-split tests (#233260)

Their function sizes then do not depend on the cost of flat stores.

Assisted-By: Claude Code Opus 5
DeltaFile
+17-17llvm/test/tools/llvm-split/AMDGPU/recursive-search-8.ll
+17-17llvm/test/tools/llvm-split/AMDGPU/recursive-search-2.ll
+34-342 files

LLVM/project 47bf0a9 — llvm/test/Analysis/CostModel/AMDGPU store.ll load.ll

[NFC][AMDGPU] Precommit memory operation cost tests across alignments and subtargets (#233259)

Assisted-By: Claude Code Opus 5
DeltaFile
+366-137llvm/test/Analysis/CostModel/AMDGPU/load.ll
+299-137llvm/test/Analysis/CostModel/AMDGPU/store.ll
+665-2742 files

LLVM/project 785aa9a — mlir/lib/Conversion/SPIRVToLLVM SPIRVToLLVM.cpp, mlir/test/Conversion/SPIRVToLLVM cl-ops-to-llvm.mlir

[mlir][SPIR-V] Add SPIRVToLLVM conversions for CL.s_abs and CL.rsqrt (#237740)

Reuse the GL.SAbs and GL.InverseSqrt patterns by templating them on the
source op
DeltaFile
+18-16mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp
+26-0mlir/test/Conversion/SPIRVToLLVM/cl-ops-to-llvm.mlir
+44-162 files

LLVM/project 5236af5 — clang/docs ReleaseNotes.md, clang/lib/Lex PPDirectives.cpp

[clang][Lex] Avoid discarding past EOD in __has_embed parameters (#237233)

When an invalid integer parameter in `__has_embed` reaches the end of a
directive, `LexEmbedParameters` may try to discard more tokens after
consuming EOD. This can consume the following directive and assert at
EOF.

Skip discarding when already at EOD, while retaining recovery when
tokens remain.

Fixes #236416
DeltaFile
+11-0clang/test/Preprocessor/embed___has_embed_parsing_errors.c
+2-2clang/lib/Lex/PPDirectives.cpp
+1-0clang/docs/ReleaseNotes.md
+14-23 files

LLVM/project 233ac38 — llvm/docs LangRef.md

[LangRef] Use quotation marks on no-jump-tables and indirect-tls-seg-refs function attrs (#237640)
DeltaFile
+2-2llvm/docs/LangRef.md
+2-21 files