LLVM/project 84085aamlir/lib/Dialect/Linalg/Transforms Specialize.cpp, mlir/test/Dialect/Linalg roundtrip-morphism-linalg-named-ops.mlir roundtrip-morphism-linalg-category-ops.mlir

[mlir][linalg] Improve contraction specialization (#201300)

Extend the matcher to recognize additional supported boolean contraction
form(and+or). Fixes #198235.
DeltaFile
+20-9mlir/lib/Dialect/Linalg/Transforms/Specialize.cpp
+18-0mlir/test/Dialect/Linalg/roundtrip-morphism-linalg-named-ops.mlir
+16-0mlir/test/Dialect/Linalg/roundtrip-morphism-linalg-category-ops.mlir
+54-93 files

LLVM/project 97d7264llvm/lib/Transforms/IPO MemProfContextDisambiguation.cpp, llvm/test/ThinLTO/X86 memprof-icp-recursive.ll

[MemProf] Change default of memprof-icp-noinline-threshold to 0 (#201474)

This is no longer needed after PR172502 added support to identify
indirect callees from inlined frames.
DeltaFile
+7-7llvm/test/ThinLTO/X86/memprof-icp-recursive.ll
+1-1llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp
+8-82 files

LLVM/project 9263a42clang/test/OpenMP target_codegen.cpp target_simd_codegen.cpp, llvm/include/llvm/Frontend/Offloading Utility.h

[OpenMP] Use ext linkage for kernels handles and globals handles keep… (#200964)

… linkage

Host handles are now emmitted with external linkage to clash if two
kernels with the same name are registered. This could have happen right
now and silently corrupt the program, but it can happen more easily once
we allow users to name their kernels.

In the same patch we make global variable handles retain the linkage of
the global variable, forcing clashes for external ones and continue to
support weak use cases.

---------

Co-authored-by: Shilei Tian <i at tianshilei.me>
DeltaFile
+11-11clang/test/OpenMP/target_codegen.cpp
+8-8mlir/test/Target/LLVMIR/omptarget-declare-target-llvm-host.mlir
+8-8clang/test/OpenMP/target_simd_codegen.cpp
+7-6llvm/lib/Frontend/Offloading/Utility.cpp
+4-4llvm/include/llvm/Frontend/Offloading/Utility.h
+4-4clang/test/OpenMP/target_indirect_codegen.cpp
+42-4114 files not shown
+70-6820 files

LLVM/project f0d98c3clang-tools-extra/clang-tidy/readability FunctionSizeCheck.cpp FunctionSizeCheck.h, clang-tools-extra/docs ReleaseNotes.rst

[clang-tidy][readability] Ignore macros in function-size check (#199549)

This patch adds an IgnoreMacros option to the readability-function-size
check.

Fixes https://github.com/llvm/llvm-project/issues/112835
DeltaFile
+71-0clang-tools-extra/test/clang-tidy/checkers/readability/function-size-ignore-macros.cpp
+27-10clang-tools-extra/clang-tidy/readability/FunctionSizeCheck.cpp
+5-0clang-tools-extra/docs/clang-tidy/checks/readability/function-size.rst
+5-0clang-tools-extra/docs/ReleaseNotes.rst
+5-0clang-tools-extra/clang-tidy/readability/FunctionSizeCheck.h
+113-105 files

LLVM/project ffb26b6clang/include/clang/AST OpenMPClause.h, clang/lib/Sema SemaOpenMP.cpp

[OpenMP] Introduce the ompx_name clause for kernel naming

This adds support for the ompx_name clause that allows users to specify
custom kernel names for OpenMP target offloading regions. The clause
accepts a string literal and overrides the default compiler-generated
kernel names.

Example usage:
  #pragma omp target ompx_name("my_kernel")
  { ... }

Kernel names need to be unique or they are diagnosed at compile or link
time as errors.

Co-Authored-By: Claude (claude-sonnet-4.5) <noreply at anthropic.com>
DeltaFile
+78-0offload/test/offloading/ompx_name.c
+62-0clang/test/OpenMP/ompx_name_messages_errors.cpp
+53-0clang/test/OpenMP/ompx_name_codegen.cpp
+40-0offload/test/offloading/ompx_name_duplicate_link.c
+36-0clang/lib/Sema/SemaOpenMP.cpp
+33-0clang/include/clang/AST/OpenMPClause.h
+302-014 files not shown
+415-920 files

LLVM/project 6811280clang/test/OpenMP target_codegen.cpp target_simd_codegen.cpp, llvm/include/llvm/Frontend/Offloading Utility.h

[OpenMP] Use ext linkage for kernels handles and globals handles keep linkage

Host handles are now emmitted with external linkage to clash if two
kernels with the same name are registered. This could have happen right
now and silently corrupt the program, but it can happen more easily once
we allow users to name their kernels.

In the same patch we make global variable handles retain the linkage of
the global variable, forcing clashes for external ones and continue to
support weak use cases.
DeltaFile
+11-11clang/test/OpenMP/target_codegen.cpp
+8-8clang/test/OpenMP/target_simd_codegen.cpp
+8-8mlir/test/Target/LLVMIR/omptarget-declare-target-llvm-host.mlir
+7-6llvm/lib/Frontend/Offloading/Utility.cpp
+4-4clang/test/OpenMP/target_indirect_codegen.cpp
+4-4llvm/include/llvm/Frontend/Offloading/Utility.h
+42-4114 files not shown
+70-6820 files

LLVM/project 34757d5llvm/lib/Frontend/OpenMP OMPIRBuilder.cpp

Update llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

Co-authored-by: Shilei Tian <i at tianshilei.me>
DeltaFile
+1-1llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
+1-11 files

LLVM/project 8d741ceclang/test/OpenMP target_codegen.cpp target_simd_codegen.cpp, llvm/include/llvm/Frontend/Offloading Utility.h

[OpenMP] Use ext linkage for kernels handles and globals handles keep linkage

Host handles are now emmitted with external linkage to clash if two
kernels with the same name are registered. This could have happen right
now and silently corrupt the program, but it can happen more easily once
we allow users to name their kernels.

In the same patch we make global variable handles retain the linkage of
the global variable, forcing clashes for external ones and continue to
support weak use cases.
DeltaFile
+11-11clang/test/OpenMP/target_codegen.cpp
+8-8clang/test/OpenMP/target_simd_codegen.cpp
+8-8mlir/test/Target/LLVMIR/omptarget-declare-target-llvm-host.mlir
+7-6llvm/lib/Frontend/Offloading/Utility.cpp
+4-4clang/test/OpenMP/target_indirect_codegen.cpp
+4-4llvm/include/llvm/Frontend/Offloading/Utility.h
+42-4114 files not shown
+70-6820 files

LLVM/project 0f3d6b9llvm/include/llvm/ExecutionEngine/Orc SymbolLookupSet.h Core.h

[ORC] Lift SymbolLookupSet into its own header. NFCI. (#201295)

Lifts the SymbolLookupSet class and SymbolLookupFlags enum out of Core.h
and into a new SymbolLookupSet.h header.
DeltaFile
+256-0llvm/include/llvm/ExecutionEngine/Orc/SymbolLookupSet.h
+1-225llvm/include/llvm/ExecutionEngine/Orc/Core.h
+257-2252 files

LLVM/project 2e27610llvm/lib/IR Verifier.cpp, llvm/lib/Transforms/Utils InlineFunction.cpp

Revert "Remove the optional bitcast between a musttail call and its ret" (#201479)

This reverts https://github.com/llvm/llvm-project/pull/201280

This broke MSan on the buildbots:
https://lab.llvm.org/buildbot/#/builders/169/builds/23291/steps/10/logs/stdio

This is the only change in the batch that touched BitcodeReader
DeltaFile
+34-9llvm/lib/IR/Verifier.cpp
+0-32llvm/test/Bitcode/musttail-bitcast-upgrade.ll
+24-0llvm/test/Transforms/CallSiteSplitting/musttail.ll
+21-2llvm/lib/Transforms/Utils/InlineFunction.cpp
+19-0llvm/test/Transforms/SafeStack/X86/musttail.ll
+14-0llvm/test/Instrumentation/AddressSanitizer/musttail.ll
+112-435 files not shown
+134-5711 files

LLVM/project c10e506libc/src/inttypes wcstoumax.cpp wcstoimax.cpp, libc/test/src/inttypes CMakeLists.txt

[libc] implement wcstoimax/wcstoumax (#200284)

Adds the implementation and tests for wide character to intmax_t and
uintmax_t.

Assisted-by: Automated tooling, human reviewed.
DeltaFile
+35-0libc/src/inttypes/wcstoumax.cpp
+35-0libc/src/inttypes/wcstoimax.cpp
+28-0libc/src/inttypes/wcstoimax.h
+28-0libc/src/inttypes/wcstoumax.h
+27-0libc/src/inttypes/CMakeLists.txt
+21-0libc/test/src/inttypes/CMakeLists.txt
+174-05 files not shown
+233-011 files

LLVM/project ff812a5lldb/packages/Python/lldbsuite/test lldbtest.py

[lldb/test] Add _excluded_variant_combinations hook in lldbtest (#201459)

Add a module-scope hook that LLDBTestCaseFactory consults during variant
expansion so the suite can declare combinations of variant axis values
that should never be generated. Each entry in
`_excluded_variant_combinations` is a dict mapping variant_name ->
value; the helper `_is_excluded_variant_combination(method,
variant_name, value_name)` returns True when assigning the given
variant=value to the method would produce a combination matching every
entry. `_expand_test_variants` checks the predicate before generating
each copy and drops the variant entirely so excluded crosses don't
appear in the test matrix at all.

This is a suite-wide per-axis-combination analogue of
NO_DEBUG_INFO_TESTCASE: instead of collapsing the entire debug-info axis
for one test class, it lets the suite declare narrowly that any variant
carrying e.g. {"swift_module_importer": "noclang", "swift_embedded":
"swiftembed"} should be dropped, regardless of which source method or
test class generated it. Useful when a subset of the variant matrix is

    [7 lines not shown]
DeltaFile
+26-0lldb/packages/Python/lldbsuite/test/lldbtest.py
+26-01 files

LLVM/project 8a21afcllvm/lib/Transforms/Vectorize VPlanRecipes.cpp, llvm/test/Transforms/LoopVectorize/AArch64 conditional-branches-cost.ll arith-costs.ll

[LV] Add cost for VPInstruction::Not. (#198445)

This patch add the cost for VPInstruction::Not which will lower to Xor.
DeltaFile
+23-124llvm/test/Transforms/LoopVectorize/AArch64/conditional-branches-cost.ll
+112-0llvm/test/Transforms/LoopVectorize/AArch64/arith-costs.ll
+0-72llvm/test/Transforms/LoopVectorize/AArch64/binop-costs.ll
+5-47llvm/test/Transforms/LoopVectorize/X86/predicate-switch.ll
+11-0llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+6-3llvm/test/Transforms/LoopVectorize/AArch64/call-costs.ll
+157-2462 files not shown
+162-2518 files

LLVM/project 6b1282aflang/lib/Lower/OpenMP OpenMP.cpp, flang/test/Lower/OpenMP metadirective-user.f90

Fix match_none dynamic user condition guard

Under extension(match_none), a dynamic user condition should select the variant
when the runtime condition is false. Track the expected runtime condition value
on metadirective candidates and invert the emitted fir.if guard for match_none.
DeltaFile
+25-17flang/lib/Lower/OpenMP/OpenMP.cpp
+5-3flang/test/Lower/OpenMP/metadirective-user.f90
+30-202 files

LLVM/project 086f9c1libcxx/test/std/containers exception_safety_helpers.h, libcxx/test/std/containers/sequences/forwardlist exception_safety.pass.cpp

[libc++][tests] Add missing strong exception guarantee test coverage in forward_list (#200666)

Adds missing test coverage for exception guarantees in forward_list.

- Strong exception guarantee for forward_list::push_front and
forward_list::emplace_front.
- Exception guarantee for constructor, operator= and assign overloads
taking an initializer_list.
- Add move and inplace construction as throwing functions in test
helpers.
- Add tests throwing upon moving or constructing elements inplace for
relevant overloads.
DeltaFile
+85-49libcxx/test/std/containers/exception_safety_helpers.h
+75-14libcxx/test/std/containers/sequences/forwardlist/exception_safety.pass.cpp
+160-632 files

LLVM/project 5be0462llvm/lib/IR Verifier.cpp, llvm/lib/Transforms/Utils InlineFunction.cpp

Revert "Remove the optional bitcast between a musttail call and its ret (#201…"

This reverts commit 91b00526a599fa21e43da82438f1e9c8a8e1b7b3.
DeltaFile
+34-9llvm/lib/IR/Verifier.cpp
+0-32llvm/test/Bitcode/musttail-bitcast-upgrade.ll
+24-0llvm/test/Transforms/CallSiteSplitting/musttail.ll
+21-2llvm/lib/Transforms/Utils/InlineFunction.cpp
+19-0llvm/test/Transforms/SafeStack/X86/musttail.ll
+14-0llvm/test/Instrumentation/AddressSanitizer/musttail.ll
+112-435 files not shown
+134-5711 files

LLVM/project 96a50e0clang/lib/Driver ToolChain.cpp, clang/test/Driver lto.c

[Clang] Accept `-flto=none` similar to `-fno-lto` (#201460)

Summary:
Personal preference, but I would like to be able to set all the LTO
kinds from the string, and it feels a little odd to need to use
`-fno-lto` to override the mode.
DeltaFile
+2-0clang/test/Driver/lto.c
+1-0clang/lib/Driver/ToolChain.cpp
+3-02 files

LLVM/project 7132f8fllvm/docs ReleaseNotes.md

[NFC] Remove trailing whitespaces from llvm/docs/ReleaseNotes.md (#201478)
DeltaFile
+1-1llvm/docs/ReleaseNotes.md
+1-11 files

LLVM/project aa9099allvm/lib/Transforms/Scalar JumpThreading.cpp, llvm/test/Transforms/JumpThreading noalias-scope-decl.ll

[JumpThreading] Clone noalias scopes in duplicateCondBranchOnPHIIntoPred (#200550)

duplicateCondBranchOnPHIIntoPred clones a block into a predecessor with
its own loop. Unlike cloneInstructions (used by threadEdge), it never
cloned the duplicated noalias scope declarations. The duplicated code
therefore shared the original's !alias.scope/!noalias MDNodes, letting
AA incorrectly treat two accesses on different paths as non-aliasing.

Fix by cloning the scopes.
DeltaFile
+74-16llvm/test/Transforms/JumpThreading/noalias-scope-decl.ll
+11-0llvm/lib/Transforms/Scalar/JumpThreading.cpp
+85-162 files

LLVM/project 685eeddllvm/docs ReleaseNotes.md

[NFC] Remove trailing whitespaces from llvm/docs/ReleaseNotes.md
DeltaFile
+1-1llvm/docs/ReleaseNotes.md
+1-11 files

LLVM/project 1606658llvm/include/llvm/IR Intrinsics.td, llvm/lib/CodeGen/GlobalISel IRTranslator.cpp

[RFC][CodeGen] Add generic target feature checks for intrinsics

This PR adds target-independent infrastructure for annotating LLVM intrinsics
with required subtarget feature expressions.

It introduces a TargetFeatures string field to intrinsic TableGen records.
TableGen emits an intrinsic-to-feature mapping table.

Both SelectionDAG and GlobalISel now perform this check before lowering target
intrinsics. This allows targets to opt in by annotating intrinsic definitions
directly, rather than adding custom checks during lowering, legalization, or
instruction selection.

This PR uses one AMDGPU intrinsic as an example.
DeltaFile
+92-0llvm/lib/MC/MCSubtargetInfo.cpp
+51-0llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
+33-1llvm/utils/TableGen/Basic/IntrinsicEmitter.cpp
+28-0llvm/test/TableGen/intrinsic-target-features.td
+24-0llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
+13-0llvm/include/llvm/IR/Intrinsics.td
+241-110 files not shown
+279-616 files

LLVM/project 58de983llvm/include/llvm/IR Intrinsics.td

[NFC] Remove trailing whitespaces in Intrinsics.td (#201472)
DeltaFile
+8-8llvm/include/llvm/IR/Intrinsics.td
+8-81 files

LLVM/project 7917772llvm/lib/Target/AMDGPU AMDGPUTargetTransformInfo.cpp

[AMDGPU][NFC] Hoist independent condition out of loop in dependsOnLocalPhi in AMDGPUTTI (#198789)
DeltaFile
+2-2llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
+2-21 files

LLVM/project 2b081a2llvm/lib/Target/AMDGPU GCNSubtarget.cpp, llvm/test/CodeGen/AMDGPU ldsdmacnt_sched.mir asyncmark-gfx12plus.ll

[AMDGPU] Do not add latency for tensorcnt / asynccnt dependencies (#201201)

Currently, when constructing the ScheduleDAG we see dependencies between
LDSDMA->LDSDMA or s_wait->s_wait due to implicit $asynccnt / $tensorcnt
operands. These implicit operands are necessary to force ordering of the
instructions, but there should be no latency for this dependency. In the
LDSDMA->LDSDMA case, the scheduler thinks it will be hundreds of cycles
until the next LDSDMA is ready.

This handles the cases:
1. LDSDMA -> LDSDMA
2. WAIT -> LDSDMA
3. WAIT -> WAIT

In the LDSDMA -> WAIT case, usually the relevant WAIT is in a different
iteration, so we don't need latency between these instructions in the
same iteration, though that isn't guaranteed. I plan to handle remove
the latency for obvious cases in a followup PR.
DeltaFile
+305-0llvm/test/CodeGen/AMDGPU/ldsdmacnt_sched.mir
+66-67llvm/test/CodeGen/AMDGPU/asyncmark-gfx12plus.ll
+46-46llvm/test/CodeGen/AMDGPU/sched-ldsdma-mask.mir
+22-20llvm/test/CodeGen/AMDGPU/promote-constOffset-to-imm-gfx12.ll
+17-14llvm/test/CodeGen/AMDGPU/promote-constOffset-to-imm-gfx12.mir
+13-0llvm/lib/Target/AMDGPU/GCNSubtarget.cpp
+469-1476 files

LLVM/project 438b803flang/lib/Lower/OpenMP OpenMP.cpp, flang/test/Lower/OpenMP metadirective-loop.f90

Fix metadirective loop variant lowering

Preserve the associated DO evaluation when a dynamic metadirective can
select either a loop-associated directive or a standalone fallback, so
the fallback still lowers the original loop body.

Scope temporary loop-IV data-sharing attributes to the selected variant.
Use the selected variant's collapse clause to determine how many loop IVs
to mark, avoiding DSA state leaking between alternatives.
DeltaFile
+84-23flang/lib/Lower/OpenMP/OpenMP.cpp
+49-1flang/test/Lower/OpenMP/metadirective-loop.f90
+133-242 files

LLVM/project 49ac4f4llvm/test/CodeGen/Xtensa setcc.ll inline-asm-invalid.ll

[Xtensa] Fix setcc test. (#201196)

Fix setcc test after changes in llvm passes.
Also add minor fix in inline-asm-invalid.ll test.
DeltaFile
+41-44llvm/test/CodeGen/Xtensa/setcc.ll
+1-1llvm/test/CodeGen/Xtensa/inline-asm-invalid.ll
+42-452 files

LLVM/project 2e9cdc4llvm/lib/Target/NVPTX NVPTXAsmPrinter.cpp, llvm/test/CodeGen/NVPTX global-ordering.ll

[NVPTX] Remove support for `sub` in global initializers. (#201473)

I added this in https://github.com/llvm/llvm-project/pull/201220 and
assumed it worked because the pre-commit builders passed.  But (a) this
is not attested in the PTX ISA, and (b) it seems that the builders don't
actually run ptxas.

Oops.  Removed support for `sub`.
DeltaFile
+2-9llvm/test/CodeGen/NVPTX/global-ordering.ll
+2-5llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
+4-142 files

LLVM/project 158897bflang/lib/Lower/OpenMP OpenMP.cpp DataSharingProcessor.cpp, flang/test/Lower/OpenMP metadirective-loop.f90

[flang][OpenMP] Support loop-associated metadirective variants (part 3)

Enable metadirective lowering for loop-associated variants such as
`do`, `simd`, `parallel do`, and `do simd`.

When a metadirective resolves to a loop-associated directive, the
sibling DO evaluation is spliced into the metadirective's evaluation
list so existing loop lowering finds it. Loop IV data-sharing
attributes are marked at lowering time since semantic analysis cannot
know which variant will be selected. The DataSharingProcessor is also
extended to handle spliced evaluations.

This patch is part of the feature work for #188820 and stacked on top
of #194424.

Assisted with copilot and GPT-5.4
DeltaFile
+203-0flang/test/Lower/OpenMP/metadirective-loop.f90
+100-1flang/lib/Lower/OpenMP/OpenMP.cpp
+83-2flang/lib/Lower/OpenMP/DataSharingProcessor.cpp
+15-0flang/test/Lower/OpenMP/Todo/metadirective-target-loop.f90
+14-0flang/lib/Lower/OpenMP/Utils.cpp
+0-12flang/test/Lower/OpenMP/Todo/metadirective-loop.f90
+415-152 files not shown
+429-158 files

LLVM/project 9f5f7edllvm/include/llvm/IR Intrinsics.td

[NFC] Remove trailing whitespaces in Intrinsics.td
DeltaFile
+8-8llvm/include/llvm/IR/Intrinsics.td
+8-81 files

LLVM/project ca93ef1llvm/include/llvm/IR Intrinsics.td, llvm/lib/CodeGen/GlobalISel IRTranslator.cpp

[RFC][CodeGen] Add generic target feature checks for intrinsics

This PR adds target-independent infrastructure for annotating LLVM intrinsics
with required subtarget feature expressions.

It introduces a TargetFeatures string field to intrinsic TableGen records.
TableGen emits an intrinsic-to-feature mapping table.

Both SelectionDAG and GlobalISel now perform this check before lowering target
intrinsics. This allows targets to opt in by annotating intrinsic definitions
directly, rather than adding custom checks during lowering, legalization, or
instruction selection.

This PR uses one AMDGPU intrinsic as an example.
DeltaFile
+92-0llvm/lib/MC/MCSubtargetInfo.cpp
+51-0llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
+33-1llvm/utils/TableGen/Basic/IntrinsicEmitter.cpp
+21-8llvm/include/llvm/IR/Intrinsics.td
+28-0llvm/test/TableGen/intrinsic-target-features.td
+24-0llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
+249-910 files not shown
+287-1416 files