LLVM/project 376f414llvm/lib/Target/AArch64 AArch64ConditionalCompares.cpp, llvm/test/CodeGen/AArch64 ccmp-look-through-copy.mir

AArch64: Look through copies in CCMP converter.

The usual IR pattern for llvm.ptrauth.auth involves creating an
inttoptr for the auth operation to convert the result into a pointer.
CodeGenPrepare will copy these inttoptr operations into the user basic
blocks as this generally results in more efficient code. However, this is
not the case for the CCMP converter as it will encounter a COPY created
by the inttoptr and inhibit the optimization. Fix it by looking through
copies in the CCMP converter pass.

Assisted-by: gemini (wrote test)

Reviewers: davemgreen, fmayer, atrosinenko

Reviewed By: fmayer

Pull Request: https://github.com/llvm/llvm-project/pull/186842
DeltaFile
+45-0llvm/test/CodeGen/AArch64/ccmp-look-through-copy.mir
+12-1llvm/lib/Target/AArch64/AArch64ConditionalCompares.cpp
+57-12 files

LLVM/project f572cc0llvm/lib/Target/RISCV RISCVISelLowering.cpp, llvm/test/CodeGen/RISCV rv32p.ll

[RISCV] Fold (WADDAU -C, -1, rs1, 0) -> (WSUBU rs1, C) where C > 0 (#186638)
DeltaFile
+15-5llvm/test/CodeGen/RISCV/rv32p.ll
+14-0llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+29-52 files

LLVM/project b005ff7llvm/lib/Analysis ValueTracking.cpp, llvm/test/Transforms/Attributor nofpclass-frem.ll

[ValueTracking] frem in computeKnownFPClass can not return +/-Inf (#186748)

`frem` only produces finite numbers or NaN, never +/-Inf. Before the
patch `computeKnownFPClass` failed to clear the `fcInf` mask for
`Instruction::FRem`, causing potential missed optimizations.

Fix #186746.
DeltaFile
+79-79llvm/test/Transforms/Attributor/nofpclass-frem.ll
+27-0llvm/test/Transforms/InstCombine/frem-inf.ll
+3-0llvm/lib/Analysis/ValueTracking.cpp
+109-793 files

LLVM/project a8edc53mlir/lib/Interfaces ControlFlowInterfaces.cpp

[mlir][Interfaces][NFC] Improve time complexity of RegionBranchOpInterface canonicalization patterns (#186114)

Optimize RemoveDuplicateSuccessorInputUses in
`ControlFlowInterfaces.cpp`:

- Replace O(n² * k) pairwise comparison of successor inputs with O(n * k
* max(log k, log n)) signature-based grouping using `std::map`, where
_n_ is the number of successor inputs and _k_ is the number of
predecessors per input.

Assisted-by: Claude Code

---------

Co-authored-by: Yang Bai <yangb at nvidia.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply at anthropic.com>
DeltaFile
+57-43mlir/lib/Interfaces/ControlFlowInterfaces.cpp
+57-431 files

LLVM/project 8270121llvm/test/tools/llvm-ir2vec/bindings ir2vec-bindings.py ir2vec-initEmbedding.py

[llvm-ir2vec] Refactoring the ir2vec python bindings testing (#180664)

This is order to make it more thorough and cover the API and possible
exceptions better
DeltaFile
+0-126llvm/test/tools/llvm-ir2vec/bindings/ir2vec-bindings.py
+62-0llvm/test/tools/llvm-ir2vec/bindings/ir2vec-initEmbedding.py
+0-38llvm/test/tools/llvm-ir2vec/bindings/ir2vec-exceptions.py
+27-0llvm/test/tools/llvm-ir2vec/bindings/ir2vec-getInstEmbMap.py
+25-0llvm/test/tools/llvm-ir2vec/bindings/ir2vec-getBBEmbMap.py
+21-0llvm/test/tools/llvm-ir2vec/bindings/ir2vec-getFuncEmb.py
+135-1642 files not shown
+172-1648 files

LLVM/project 45974caclang/test/CodeGenObjC direct-method-ret-mismatch.m

fix test
DeltaFile
+17-14clang/test/CodeGenObjC/direct-method-ret-mismatch.m
+17-141 files

LLVM/project 3751ee3bolt/lib/Profile DataAggregator.cpp

format

Created using spr 1.3.4
DeltaFile
+1-2bolt/lib/Profile/DataAggregator.cpp
+1-21 files

LLVM/project 88f1ec9clang/include/clang/Basic Attr.td, clang/lib/Parse ParseOpenMP.cpp

[clang][OpenMP] Parse/Sema for OpenMP 6.0 declare_target 'local' clause (#186281)

Parse and perform semantic checks for declare_target 'local' clause.
When compiling for device offloading, generate a warning that 'local' is
not yet fully supported. On the host, 'local' is/will be a no-op, so no
warning is generated.

NOTE: The minimal CodeGen changes allow 'local' to flow through as
equivalent to the 'enter' clause after warning is generated.

Testing:
  - Updated messages and ast tests for declare target/declare_target
  - ninja check-all.
DeltaFile
+119-20clang/test/OpenMP/declare_target_messages.cpp
+44-26clang/lib/Parse/ParseOpenMP.cpp
+49-1clang/test/OpenMP/declare_target_ast_print.cpp
+25-4clang/lib/Sema/SemaOpenMP.cpp
+26-1clang/test/AST/dump.cpp
+9-11clang/include/clang/Basic/Attr.td
+272-636 files not shown
+314-8312 files

LLVM/project 38eebe8llvm/lib/Target/AMDGPU SIInstrInfo.cpp, llvm/test/CodeGen/AMDGPU llvm.amdgcn.s.sethalt.ll

[AMDGPU] Add s_sethalt to hasUnwantedEffectsWhenEXECEmpty (#186745)

We don't want to execute s_sethalt when all lanes want to skip it.

Co-authored-by: Junda Liu <Junda.Liu at amd.com>
DeltaFile
+21-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.sethalt.ll
+2-1llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+23-12 files

LLVM/project 6d615b2clang/lib/Sema SemaTemplateDeduction.cpp SemaConcept.cpp, clang/test/CXX/expr/expr.prim/expr.prim.req nested-requirement.cpp

[clang] Backport: use canonical arguments for checking function template constraints

Backport from #186889

This is a partial revert of #161671, restoring the original behaviour
where the canonical template arguments are used for function template
constraint checking in diagnostics.

This reverts the fix from #183010, which attempted to fix #182344
but it causes regressions. These regressions now have test cases
included.

The attempt at #183010 is flawed because in the general case we can't
check satisfaction for constraints which have unsubstituted template
arguments, even if they don't affect the canonical type (ie they are
purely
syntactical), because these types can still turn out to be invalid after
substitution.


    [20 lines not shown]
DeltaFile
+43-0clang/test/SemaTemplate/concepts.cpp
+4-4clang/test/SemaCXX/cxx2b-deducing-this.cpp
+3-4clang/lib/Sema/SemaTemplateDeduction.cpp
+6-1clang/lib/Sema/SemaConcept.cpp
+3-3clang/test/SemaTemplate/concepts-recursive-inst.cpp
+1-1clang/test/CXX/expr/expr.prim/expr.prim.req/nested-requirement.cpp
+60-136 files

LLVM/project 4abb927libclc/cmake/modules CMakeCLCInformation.cmake CMakeDetermineCLCCompiler.cmake, llvm/runtimes CMakeLists.txt

[libclc][CMake] Use clang/llvm-ar on Windows (#186726)

When LLVM_TARGETS_TO_BUILD contains host target, runtime build sets
CMAKE_C_COMPILER to clang-cl on Windows.
Changes to fix build on Windows:
- libclc struggles to pass specific flags to clang-cl MSVC-like interface.
- compile flag handling will be consistent across all host systems.
- libclc build is cross-compilation for offloading targets.
DeltaFile
+21-3libclc/cmake/modules/CMakeCLCInformation.cmake
+16-1libclc/cmake/modules/CMakeDetermineCLCCompiler.cmake
+1-1llvm/runtimes/CMakeLists.txt
+38-53 files

LLVM/project fe1f512clang/test/C/C2y n3517.c n3652.c, clang/www c_status.html

[Clang][docs][test] Add N3517, N3652, and N3715 according to N3783 (#185566)

And test that these papers are not yet implemented.
DeltaFile
+46-0clang/test/C/C2y/n3517.c
+19-0clang/test/C/C2y/n3652.c
+17-0clang/test/C/C2y/n3715.c
+10-0clang/www/c_status.html
+92-04 files

LLVM/project 779ec94bolt/docs profiles.md index.rst, bolt/include/bolt/Profile DataAggregator.h

[𝘀𝗽𝗿] initial version

Created using spr 1.3.4
DeltaFile
+212-0bolt/docs/profiles.md
+55-0bolt/test/X86/pre-aggregated-perf-buildid.test
+19-0bolt/lib/Profile/DataAggregator.cpp
+9-0bolt/test/X86/Inputs/pre-aggregated-buildid.txt
+6-0bolt/docs/index.rst
+4-0bolt/include/bolt/Profile/DataAggregator.h
+305-01 files not shown
+306-17 files

LLVM/project e2c4121bolt/docs profiles.md index.rst

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

Created using spr 1.3.4

[skip ci]
DeltaFile
+212-0bolt/docs/profiles.md
+6-0bolt/docs/index.rst
+218-02 files

LLVM/project 4dd80d2clang/lib/Sema SemaConcept.cpp SemaTemplateDeduction.cpp, clang/test/CXX/expr/expr.prim/expr.prim.req nested-requirement.cpp

[clang] Backport: use canonical arguments for checking function template constraints

Backport from #186889

This is a partial revert of #161671, restoring the original behaviour
where the canonical template arguments are used for function template
constraint checking in diagnostics.

This reverts the fix from #183010, which attempted to fix #182344
but it causes regressions. These regressions now have test cases
included.

The attempt at #183010 is flawed because in the general case we can't
check satisfaction for constraints which have unsubstituted template
arguments, even if they don't affect the canonical type (ie they are
purely
syntactical), because these types can still turn out to be invalid after
substitution.


    [20 lines not shown]
DeltaFile
+43-0clang/test/SemaTemplate/concepts.cpp
+4-4clang/test/SemaCXX/cxx2b-deducing-this.cpp
+6-1clang/lib/Sema/SemaConcept.cpp
+3-4clang/lib/Sema/SemaTemplateDeduction.cpp
+2-2clang/test/SemaTemplate/concepts-recursive-inst.cpp
+1-1clang/test/CXX/expr/expr.prim/expr.prim.req/nested-requirement.cpp
+59-126 files

LLVM/project 47970a4flang/test/Lower/PowerPC ppc-vec-store.f90 ppc-vec-store-elem-order.f90

[flang][PPC] Update vector tests with nuw nsw (NFC) (#186879)
DeltaFile
+60-60flang/test/Lower/PowerPC/ppc-vec-store.f90
+10-10flang/test/Lower/PowerPC/ppc-vec-store-elem-order.f90
+70-702 files

LLVM/project 83965adclang/include/clang/Sema Template.h, clang/lib/Sema SemaConcept.cpp SemaTemplateDeduction.cpp

[clang] use canonical arguments for checking function template constraints (#186889)

This is a partial revert of #161671, restoring the original behaviour
where the canonical template arguments are used for function template
constraint checking in diagnostics.

This reverts the fix from #183010, which attempted to fix #182344
but it causes regressions. These regressions now have test cases
included.

The attempt at #183010 is flawed because in the general case we can't
check satisfaction for constraints which have unsubstituted template
arguments, even if they don't affect the canonical type (ie they are
purely
syntactical), because these types can still turn out to be invalid after
substitution.

This is a problem when directly evaluating a concept specialization, but
it's not a problem with other template specializations because the

    [18 lines not shown]
DeltaFile
+25-2clang/test/SemaTemplate/concepts.cpp
+7-2clang/lib/Sema/SemaConcept.cpp
+4-4clang/test/SemaCXX/cxx2b-deducing-this.cpp
+3-4clang/lib/Sema/SemaTemplateDeduction.cpp
+2-3clang/include/clang/Sema/Template.h
+2-2clang/test/SemaTemplate/concepts-recursive-inst.cpp
+43-172 files not shown
+45-198 files

LLVM/project 4ccd036bolt/docs profiles.md index.rst

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

Created using spr 1.3.7

[skip ci]
DeltaFile
+212-0bolt/docs/profiles.md
+6-0bolt/docs/index.rst
+218-02 files

LLVM/project 5232d9abolt/docs profiles.md index.rst, bolt/include/bolt/Profile DataAggregator.h

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+212-0bolt/docs/profiles.md
+55-0bolt/test/X86/pre-aggregated-perf-buildid.test
+19-0bolt/lib/Profile/DataAggregator.cpp
+9-0bolt/test/X86/Inputs/pre-aggregated-buildid.txt
+6-0bolt/docs/index.rst
+4-0bolt/include/bolt/Profile/DataAggregator.h
+305-01 files not shown
+306-17 files

LLVM/project 182723flldb/packages/Python/lldbsuite/test decorators.py

[lldb] Add a decorator for arm64e (#186909)
DeltaFile
+30-0lldb/packages/Python/lldbsuite/test/decorators.py
+30-01 files

LLVM/project 957283allvm/test/CodeGen/MIR/Generic inline-asm-extra-info.mir

[NFC] [MIR] mark inline-asm-extra-info as failing on UBSan



Reviewers: boomanaiden154

Reviewed By: boomanaiden154

Pull Request: https://github.com/llvm/llvm-project/pull/186919
DeltaFile
+2-0llvm/test/CodeGen/MIR/Generic/inline-asm-extra-info.mir
+2-01 files

LLVM/project 044d40dllvm/lib/Target/AMDGPU AMDGPUInstructionSelector.cpp AMDGPUISelDAGToDAG.cpp, llvm/test/CodeGen/AMDGPU spill-scavenge-offset.ll promote-constOffset-to-imm.ll

[AMDGPU] Support for nested add in GVS pattern matching

Fixes ROCM-20181.
DeltaFile
+1,463-3,005llvm/test/CodeGen/AMDGPU/spill-scavenge-offset.ll
+520-496llvm/test/CodeGen/AMDGPU/promote-constOffset-to-imm.ll
+130-0llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
+108-0llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
+41-15llvm/test/CodeGen/AMDGPU/llvm.amdgcn.global.load.async.to.lds.ll
+25-23llvm/test/CodeGen/AMDGPU/machine-sink-temporal-divergence-swdev407790.ll
+2,287-3,5393 files not shown
+2,309-3,5669 files

LLVM/project 7ddf9c8llvm/test lit.cfg.py

[llvm] [NFC] [test] Add ubsan feature for tests



Reviewers: boomanaiden154

Pull Request: https://github.com/llvm/llvm-project/pull/186918
DeltaFile
+2-0llvm/test/lit.cfg.py
+2-01 files

LLVM/project deef1a0clang/unittests/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage UnsafeBufferUsageTest.cpp

Address comments
DeltaFile
+80-0clang/unittests/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageTest.cpp
+80-01 files

LLVM/project 613955cclang/lib/Analysis UnsafeBufferUsage.cpp, clang/unittests/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage UnsafeBufferUsageTest.cpp

clean up
DeltaFile
+1-1clang/lib/Analysis/UnsafeBufferUsage.cpp
+1-1clang/unittests/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageTest.cpp
+2-22 files

LLVM/project 09fcf76clang/include/clang/Analysis/Analyses UnsafeBufferUsage.h, clang/include/clang/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage UnsafeBufferUsage.h

[ssaf][UnsafeBufferUsage] Add support for extracting unsafe pointers from all kinds of contributors

- Generalize the -Wunsafe-buffer-usage API for finding unsafe pointers in all kinds of Decls
- Add support in SSAF-based UnsafeBufferUsage analysis for extracting from various contributors
- Mock implementation of HandleTranslationUnit

rdar://171735836
DeltaFile
+113-25clang/lib/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageExtractor.cpp
+45-18clang/lib/Analysis/UnsafeBufferUsage.cpp
+58-4clang/unittests/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageTest.cpp
+8-1clang/include/clang/Analysis/Analyses/UnsafeBufferUsage.h
+2-0clang/include/clang/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsage.h
+226-485 files

LLVM/project 0fba3c0llvm/include/llvm/Transforms/Utils Cloning.h

[NFC] Remove unused InlineFunctionInfo::InlinedCalls (#186920)

Looks to be a relic of the legacy pass manager.
DeltaFile
+1-8llvm/include/llvm/Transforms/Utils/Cloning.h
+1-81 files

LLVM/project 13138b3clang/lib/Sema SemaConcept.cpp, clang/test/SemaTemplate concepts.cpp

[Clang] Fix a concept subsumption bug when template depths are adjusted (#186735)

We cannot reuse the cached normalization results if any template depth
adjustments (in subsumption checking) are involved.

Fixes https://github.com/llvm/llvm-project/issues/186624
DeltaFile
+19-0clang/test/SemaTemplate/concepts.cpp
+9-1clang/lib/Sema/SemaConcept.cpp
+28-12 files

LLVM/project 140adc9llvm/lib/Target/X86 X86FastISel.cpp, llvm/test/CodeGen/X86 i1-fast-isel.ll

[X86] Improve illegal return type handling in FastISel (#186723)

Previously, FastISel would fall back to DAG ISel for any illegal return
type. This change adds a more precise check to determine if the ABI
requires a type conversion that FastISel cannot handle.

For example, bfloat is returned as f16 in XMM0, but FastISel would
assign f32 register type and store it in FuncInfo.ValueMap, causing DAG
to incorrectly perform type conversion from f32 to bfloat later.

However, i1 is promoted to i8 and returned as i8 per the ABI, so
FastISel
can safely lower it without switching to DAGISel. This change enables
FastISel to handle such cases properly.

---------

Co-authored-by: Yuanke Luo <ykluo at birentech.com>
DeltaFile
+106-0llvm/test/CodeGen/X86/i1-fast-isel.ll
+21-5llvm/lib/Target/X86/X86FastISel.cpp
+127-52 files

LLVM/project cd9aa66clang/test/OpenMP target_teams_distribute_parallel_for_simd_schedule_codegen.cpp teams_distribute_parallel_for_simd_schedule_codegen.cpp, libc/AOR_v20.02/math/test/traces sincosf.txt exp.txt

Merge branch 'fix-blockfreq-unroll-unconditional-latches--fast' into fix-blockfreq-unroll-unconditional-latches--uniform
DeltaFile
+0-31,999libc/AOR_v20.02/math/test/traces/sincosf.txt
+0-16,000libc/AOR_v20.02/math/test/traces/exp.txt
+5,294-4,814clang/test/OpenMP/target_teams_distribute_parallel_for_simd_schedule_codegen.cpp
+5,238-4,758clang/test/OpenMP/teams_distribute_parallel_for_simd_schedule_codegen.cpp
+4,350-4,098clang/test/OpenMP/distribute_parallel_for_simd_codegen.cpp
+4,004-3,524clang/test/OpenMP/teams_distribute_parallel_for_schedule_codegen.cpp
+18,886-65,1934,613 files not shown
+303,628-260,2174,619 files