LLVM/project 1123d2bllvm/lib/Target/RISCV RISCVISelLowering.cpp, llvm/test/CodeGen/RISCV clmulh.ll rv64i-demanded-bits.ll

[RISCV] Improve shrinkDemandedConstant. (#196585)

Teach shrinkDemandedConstant to restore a constant that can be
materialized as:
  lui a0, hi20
  addi(w) a0, a0, lo12
  slli a1, a0, 32
  add a0, a0, a1

or:
  lui a0, hi20
  addi(w) a0, a0, lo12
  pack a0, a0, a0

This fixes a regression between clang 18 and 19 on this test case
https://godbolt.org/z/Ma746a8xP
DeltaFile
+603-608llvm/test/CodeGen/RISCV/clmulh.ll
+79-17llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+94-0llvm/test/CodeGen/RISCV/rv64i-demanded-bits.ll
+85-0llvm/test/CodeGen/RISCV/imm.ll
+25-23llvm/test/CodeGen/RISCV/sextw-removal.ll
+38-2llvm/test/CodeGen/RISCV/rv64zbkb.ll
+924-6501 files not shown
+944-6507 files

LLVM/project 1d760d4clang/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 e58e308clang/test/CodeGen builtins-nvptx.c, llvm/test/Assembler auto_upgrade_nvvm_intrinsics.ll

[NVPTX][clang] Remove nvvm scoped atomic intrinsics; use atomicrmw/cmpxchg (#200735)

The
`llvm.nvvm.atomic.{add,exch,max,min,inc,dec,and,or,xor,cas}.gen.{i,f}.{cta,sys}`
intrinsics are redundant; we can use atomicrmw / cmpxchg with a syncscope.

Moreover, the nvvm atomics are problematic because they don't have
unsigned min/max opcodes. Clang uses these intrinsics and currently emits
signed min/max for what should be unsigned operations!

Fix by doing the following.

 - Remove the nvvm intrinsics.
 - Auto-upgrade the removed intrinsics to atomicrmw/cmpxchg.
 - Make clang Clang emits atomicrmw/cmpxchg directly.
DeltaFile
+745-0llvm/test/CodeGen/NVPTX/atomicrmw-sm90.ll
+745-0llvm/test/CodeGen/NVPTX/atomicrmw-sm70.ll
+745-0llvm/test/CodeGen/NVPTX/atomicrmw-sm60.ll
+0-189llvm/test/CodeGen/NVPTX/atomics-with-scope.ll
+92-90clang/test/CodeGen/builtins-nvptx.c
+148-0llvm/test/Assembler/auto_upgrade_nvvm_intrinsics.ll
+2,475-2797 files not shown
+2,639-56313 files

LLVM/project ddcf2f8llvm/lib/CodeGen/SelectionDAG SelectionDAG.cpp

clang-format concat
DeltaFile
+2-2llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+2-21 files

LLVM/project 9bda223libc/src/__support/math atan2f128.h expm1.h

[libc] Renaming Float128 (DyadicFloat<128>) to DFloat128 (#200907)

This is to be able to use the `Float128` for emulated float128 type.
[#200565 ](https://github.com/llvm/llvm-project/pull/200565)
DeltaFile
+28-27libc/src/__support/math/atan2f128.h
+26-26libc/src/__support/math/expm1.h
+23-22libc/src/__support/math/range_reduction_double_common.h
+23-22libc/src/__support/math/asinpi.h
+22-22libc/src/__support/math/exp10.h
+21-21libc/src/__support/math/tan.h
+143-14019 files not shown
+343-33825 files

LLVM/project d7ee01cllvm/test/MC/Disassembler/AMDGPU gfx9_vop3.txt gfx12_dasm_vop3.txt

[AMDGPU] Fix disasm of i16 operands fp inline constants (#200944)
DeltaFile
+228-228llvm/test/MC/Disassembler/AMDGPU/gfx9_vop3.txt
+200-200llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3.txt
+200-200llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3.txt
+194-194llvm/test/MC/Disassembler/AMDGPU/gfx10_vop3.txt
+144-144llvm/test/MC/Disassembler/AMDGPU/gfx10_vop3c.txt
+128-128llvm/test/MC/Disassembler/AMDGPU/gfx8_vop3cx.txt
+1,094-1,09439 files not shown
+3,048-3,19945 files

LLVM/project b9d5c24llvm/utils/gn/secondary/clang/include/clang/Config BUILD.gn

[gn build] Port 7a907089 (#200953)
DeltaFile
+1-0llvm/utils/gn/secondary/clang/include/clang/Config/BUILD.gn
+1-01 files

LLVM/project 334da51llvm/lib/Target/AMDGPU AMDGPUCoExecSchedStrategy.cpp, llvm/test/CodeGen/AMDGPU coexec-sched-barrier-latency.mir

[AMDGPU] Add some DAG mutations to CoexecSched

Change-Id: Id86bbdb427b23f68d39ceee196e4232e91974186
DeltaFile
+171-0llvm/test/CodeGen/AMDGPU/coexec-sched-barrier-latency.mir
+6-1llvm/lib/Target/AMDGPU/AMDGPUCoExecSchedStrategy.cpp
+177-12 files

LLVM/project f254ae6libc/cmake/modules CheckCompilerFeatures.cmake LLVMLibCCompileOptionRules.cmake, libc/cmake/modules/compiler_features check_stdc_fenv_access.cpp

[libc] Add FENV_ACCESS pragma with CMake compiler feature detection (#200268)

Related to https://github.com/llvm/llvm-project/pull/199009

Added compiler feature detection for _STDC FENV_ACCESS_ pragma. It is
used to conditionally add function-scoped `#pragma STDC FENV_ACCESS ON`
to `libc/src/__support/FPUtil/FEnvAccess.h`, whenever functions from the
`<fenv.h>` header are called and the target supports the pragma.
DeltaFile
+28-4libc/src/__support/FPUtil/FEnvImpl.h
+10-3libc/cmake/modules/CheckCompilerFeatures.cmake
+2-2libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
+2-2libc/cmake/modules/LLVMLibCTestRules.cmake
+2-0libc/cmake/modules/compiler_features/check_stdc_fenv_access.cpp
+44-115 files

LLVM/project 9e29f7dllvm/include/llvm/Target TargetSelectionDAG.td, llvm/lib/Target/X86 X86InstrSSE.td X86InstrAVX512.td

[X86] Remove extra MOV after widening atomic store (#197619)

This change adds patterns to optimize out an extra MOV present after
widening the atomic store. Covers `<2 x i8>` (SSE4.1+), `<2 x i16>`,
`<4 x i8>`, `<2 x i32>`, `<2 x float>`, `<4 x i16>`,
`<2 x ptr addrspace(270)>`.

Store-side counterpart to #148898. Stacked on top of #197618; and below
of #197860.
DeltaFile
+47-64llvm/test/CodeGen/X86/atomic-load-store.ll
+30-24llvm/test/CodeGen/X86/atomic-unordered.ll
+35-0llvm/include/llvm/Target/TargetSelectionDAG.td
+10-10llvm/lib/Target/X86/X86InstrSSE.td
+6-6llvm/lib/Target/X86/X86InstrAVX512.td
+1-1llvm/lib/Target/X86/X86ISelLowering.cpp
+129-1056 files

LLVM/project 4b91251mlir/include/mlir/IR TypeRange.h Remarks.h, mlir/lib/TableGen Constraint.cpp

[mlir] Remove unused DenseMapInfo::getTombstoneKey (#200633)

#200595 changed DenseMap to no longer create tombstone buckets, so
DenseMapInfo<T>::getTombstoneKey() is never called. Remove dead
definitions and dead tombstone branches.
DeltaFile
+0-17mlir/include/mlir/IR/TypeRange.h
+2-14mlir/include/mlir/IR/Remarks.h
+0-16mlir/include/mlir/IR/Value.h
+2-11mlir/lib/TableGen/Constraint.cpp
+0-12mlir/include/mlir/IR/Attributes.h
+0-8mlir/include/mlir/IR/OperationSupport.h
+4-7831 files not shown
+13-19137 files

LLVM/project 67139a2flang/include/flang/Lower IterationSpace.h, flang/include/flang/Lower/Support Utils.h

[flang] Remove unused DenseMapInfo::getTombstoneKey (#200632)

#200595 changed DenseMap to no longer create tombstone buckets, so
DenseMapInfo<T>::getTombstoneKey() is never called. Remove dead
definitions and dead tombstone branches.
DeltaFile
+2-6flang/lib/Lower/Support/Utils.cpp
+0-6flang/include/flang/Lower/Support/Utils.h
+0-6flang/include/flang/Semantics/symbol.h
+0-3flang/include/flang/Lower/IterationSpace.h
+2-214 files

LLVM/project 333bc30lldb/include/lldb/Symbol Symbol.h

[lldb] Add static_assert to catch increases to size of Symbol (#200919)
DeltaFile
+10-0lldb/include/lldb/Symbol/Symbol.h
+10-01 files

LLVM/project 7ccb0edlld/wasm Writer.cpp Config.h

[lld][WebAssembly] Refine type used for internal TLS-related symbols. NFC (#200899)

I noticed this while reviewing #200855.
DeltaFile
+3-6lld/wasm/Writer.cpp
+4-4lld/wasm/Config.h
+7-102 files

LLVM/project f0d3a8fbolt/include/bolt/Passes DataflowAnalysis.h SplitFunctions.h, bolt/include/bolt/Profile DataReader.h

[BOLT] Remove unused DenseMapInfo::getTombstoneKey (#200637)

#200595 changed DenseMap to no longer create tombstone buckets, so
DenseMapInfo<T>::getTombstoneKey() is never called. Remove dead
definitions and dead tombstone branches.
DeltaFile
+0-5bolt/include/bolt/Passes/DataflowAnalysis.h
+0-4bolt/include/bolt/Profile/DataReader.h
+0-3bolt/include/bolt/Passes/SplitFunctions.h
+0-123 files

LLVM/project 54796f2lldb/include/lldb/Core Highlighter.h, lldb/include/lldb/Host HostThread.h

[lldb] Remove unused DenseMapInfo::getTombstoneKey (#200635)

#200595 changed DenseMap to no longer create tombstone buckets, so
DenseMapInfo<T>::getTombstoneKey() is never called. Remove dead
definitions and dead tombstone branches.
DeltaFile
+2-12lldb/include/lldb/Symbol/SymbolContext.h
+3-3lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
+0-5lldb/include/lldb/Utility/UUID.h
+0-4lldb/include/lldb/Host/HostThread.h
+0-4lldb/include/lldb/Utility/ConstString.h
+0-3lldb/include/lldb/Core/Highlighter.h
+5-314 files not shown
+6-4010 files

LLVM/project fbcf6bblld/COFF Chunks.h, lld/MachO ConcatOutputSection.h

[lld] Remove unused DenseMapInfo::getTombstoneKey (#200636)

#200595 changed DenseMap to no longer create tombstone buckets, so
DenseMapInfo<T>::getTombstoneKey() is never called. Remove dead
definitions and dead tombstone branches.
DeltaFile
+1-6lld/MachO/ConcatOutputSection.h
+1-6lld/wasm/SyntheticSections.h
+0-3lld/COFF/Chunks.h
+2-153 files

LLVM/project 5912817llvm/test/MC/Disassembler/AMDGPU gfx9_vop3.txt gfx11_dasm_vop3.txt

[AMDGPU] Fix disasm of i16 operands fp inline constants
DeltaFile
+228-228llvm/test/MC/Disassembler/AMDGPU/gfx9_vop3.txt
+200-200llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3.txt
+200-200llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3.txt
+194-194llvm/test/MC/Disassembler/AMDGPU/gfx10_vop3.txt
+144-144llvm/test/MC/Disassembler/AMDGPU/gfx10_vop3c.txt
+128-128llvm/test/MC/Disassembler/AMDGPU/gfx8_vop3c.txt
+1,094-1,09439 files not shown
+3,048-3,19945 files

LLVM/project 11158cfllvm/test/Transforms/HotColdSplit coldentrycount.ll

[HotColdSplit] Consolidate pass pipeline (#200941)

Codegenprepare was added for more of a E2E test in
f0f68c6e6c5e0064c0196e4f1528e910a47766e0. The pipeline was split in
cb5e48d1c2c4774ed9f17ff89412f1291b640172 to allow for the removal of the
HotColdSplit legacy pass. Now that CodeGenPrepare has been ported to the
NewPM in f1ec0d12bb0843f0deab83ef2b5cf1339cbc4f0b (which even touched
this test), we can use a single pass pipeline and simplify the run line
a little bit.
DeltaFile
+1-1llvm/test/Transforms/HotColdSplit/coldentrycount.ll
+1-11 files

LLVM/project 8c65695offload/plugins-nextgen/level_zero/include L0Queue.h, offload/plugins-nextgen/level_zero/src L0Queue.cpp

[OFFLOAD][L0][NFC] Add struct for deferred memory operations (#200928)

Improve readibility a bit by using a well-defined struct instead of
tuples.
DeltaFile
+13-13offload/plugins-nextgen/level_zero/src/L0Queue.cpp
+10-2offload/plugins-nextgen/level_zero/include/L0Queue.h
+23-152 files

LLVM/project 47eee1dflang/lib/Lower/OpenMP OpenMP.cpp, flang/test/Lower/OpenMP metadirective-user.f90

Preserve dynamic user condition scores for variant ranking

Dynamic user conditions are bypassed during static applicability
filtering, but their scores must still influence variant ordering.
Previously, the filtering VMI removed `user_condition_unknown`,
inadvertently dropping the score attached to
`user={condition(score(...): expr)}`.

We now preserves that score in the ranking VMI by transferring
any non-zero dynamic condition score onto `user_condition_true`. The
runtime condition remains separate and correctly lowers as a `fir.if`
guard for the selected variant.

Variant ordering now correctly prioritizes scored conditions over
lexically earlier unscored conditions or static fallbacks:

```
  if (high) barrier
  else if (low) taskyield

    [4 lines not shown]
DeltaFile
+34-0flang/test/Lower/OpenMP/metadirective-user.f90
+13-0flang/lib/Lower/OpenMP/OpenMP.cpp
+47-02 files

LLVM/project 27aec96llvm/include/llvm/Target TargetSelectionDAG.td, llvm/lib/Target/X86 X86InstrSSE.td X86InstrAVX512.td

[X86] Remove extra MOV after widening atomic store

This change adds patterns to optimize out an extra MOV present after
widening the atomic store. Covers <2 x i8> (SSE4.1+), <2 x i16>,
<4 x i8>, <2 x i32>, <2 x float>, <4 x i16>, <2 x ptr addrspace(270)>.
DeltaFile
+47-64llvm/test/CodeGen/X86/atomic-load-store.ll
+30-24llvm/test/CodeGen/X86/atomic-unordered.ll
+35-0llvm/include/llvm/Target/TargetSelectionDAG.td
+10-10llvm/lib/Target/X86/X86InstrSSE.td
+6-6llvm/lib/Target/X86/X86InstrAVX512.td
+1-1llvm/lib/Target/X86/X86ISelLowering.cpp
+129-1056 files

LLVM/project 64ed683llvm/test/CodeGen/AMDGPU/GlobalISel llvm.amdgcn.image.atomic.dim.mir combine-fma-add-mul-pre-legalize.mir

AMDGPU/GlobalISel: Remove redundant -global-isel from -run-pass MIR tests (NFC) (#200857)
DeltaFile
+5-5llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.atomic.dim.mir
+4-4llvm/test/CodeGen/AMDGPU/GlobalISel/combine-fma-add-mul-pre-legalize.mir
+4-4llvm/test/CodeGen/AMDGPU/GlobalISel/combine-fma-add-mul-post-legalize.mir
+3-3llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-widen-scalar-loads.mir
+2-2llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-i1-copy.mir
+2-2llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-amdgcn.exp.compr.mir
+20-2023 files not shown
+47-4729 files

LLVM/project 9740a4bllvm/lib/CodeGen SelectOptimize.cpp, llvm/test/CodeGen/AArch64 selectopt-cast.ll

[SelectOpt] Preserve Profile Information (#200680)

If at least one of the SelectLike instructions in the group has profile
metadata, we can propagate it given they all share the same condition.
DeltaFile
+67-3llvm/test/CodeGen/AArch64/selectopt-cast.ll
+24-1llvm/lib/CodeGen/SelectOptimize.cpp
+0-2llvm/utils/profcheck-xfail.txt
+91-63 files

LLVM/project fc2ab20llvm/test/CodeGen/AMDGPU llvm.exp10.f64.ll llvm.exp.f64.ll

AMDGPU/GlobalISel: Switch some tests to -new-reg-bank-select (#200853)
DeltaFile
+887-803llvm/test/CodeGen/AMDGPU/llvm.exp10.f64.ll
+855-771llvm/test/CodeGen/AMDGPU/llvm.exp.f64.ll
+677-645llvm/test/CodeGen/AMDGPU/llvm.exp2.f64.ll
+654-306llvm/test/CodeGen/AMDGPU/fptosi-sat-vector.ll
+503-255llvm/test/CodeGen/AMDGPU/fptoui-sat-vector.ll
+435-309llvm/test/CodeGen/AMDGPU/rsq.f64.ll
+4,011-3,08926 files not shown
+5,656-4,16332 files

LLVM/project 24ea912llvm Maintainers.md

[LLVM] Fix style issue in Maintainers file (#200917)
DeltaFile
+3-3llvm/Maintainers.md
+3-31 files

LLVM/project e687478llvm/lib/CodeGen/SelectionDAG LegalizeVectorTypes.cpp LegalizeTypes.h, llvm/test/CodeGen/X86 atomic-load-store.ll

[SelectionDAG] Widen <2 x T> vector types for atomic store (#197618)

Vector types of 2 elements must be widened. This change does this
for vector types of atomic store in SelectionDAG so that it can
translate aligned vectors of >1 size.

Store-side counterpart to #148897. Stacked on top of #197166; and below
of #197619.
DeltaFile
+198-0llvm/test/CodeGen/X86/atomic-load-store.ll
+50-0llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
+1-0llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
+249-03 files

LLVM/project fc7b3f6clang/include/clang/AST ExprCXX.h, clang/include/clang/Sema Sema.h

[clang] fix transformation of SubstNonTypeTemplateParmExpr nodes from typealiases and concepts

This makes sure SubstNonTypeTemplateParmExpr produced from non-specialization
decls (Type alias templates and concepts) are correctly transformed.

This makes the SubstNonTypeTemplateParmExpr store the parameter type directly,
and uses that instead of relying on the AssociatedDecl.

Fixes #191738
Fixes #196375
DeltaFile
+38-52clang/lib/Sema/SemaTemplate.cpp
+18-31clang/lib/Sema/TreeTransform.h
+13-13clang/include/clang/AST/ExprCXX.h
+14-10clang/lib/Sema/SemaTemplateInstantiate.cpp
+9-10clang/include/clang/Sema/Sema.h
+0-12clang/lib/AST/ExprCXX.cpp
+92-12825 files not shown
+157-14931 files

LLVM/project 4d35130lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime AppleObjCTrampolineHandler.cpp

[lldb] Strip objc superclass pointer in trampoline handler (#200490)

The pointer needs to be stripped before being handed off to any objc
runtime functions. Otherwise the utility expression will hit a PAC
exception and the thread plan will fail to execute correctly.

This fixes TestObjCStepping.py on arm64e.
DeltaFile
+4-0lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.cpp
+4-01 files

LLVM/project 8b66d82. .clang-format-ignore, clang .clang-format-ignore

[Docs] Update coding standard for TD files (#200848)

This PR proposes an update to the coding standards document to make
explicit that we do not want unnecessary formatting changes to TD files.

This is in response to this merged PR (#199346), which lead to this RFC
(https://discourse.llvm.org/t/80-column-limit-for-td-files/90950/).

---------

Co-authored-by: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
DeltaFile
+9-0llvm/docs/CodingStandards.rst
+3-0.clang-format-ignore
+0-3clang/.clang-format-ignore
+12-33 files