LLVM/project cbedaa8lldb/source/DataFormatters ValueObjectPrinter.cpp, lldb/source/Plugins/TypeSystem/Clang TypeSystemClang.cpp

[lldb] Upstream arm64e support in ValueObject (#186906)

In #186001, I said the last large chunk of downstream PtrAuth code in
LLDB was the expression evaluator support. However, that wasn't
accurate, as we also have changes to thread this through ValueObject.
DeltaFile
+69-0lldb/test/API/lang/c/ptrauth/main.c
+11-0lldb/source/ValueObject/ValueObject.cpp
+7-0lldb/source/Symbol/CompilerType.cpp
+7-0lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
+6-0lldb/test/API/lang/c/ptrauth/Makefile
+4-0lldb/source/DataFormatters/ValueObjectPrinter.cpp
+104-05 files not shown
+119-011 files

LLVM/project 07542afflang/lib/Lower/Support PrivateReductionUtils.cpp, flang/test/Lower/OpenMP delayed-privatization-cuda-device-array.cuf

[flang][OpenMP][CUDA] Place privatized device allocatable descriptors in managed memory (#187114)

When an OpenMP private clause privatizes a CUDA Fortran allocatable
device array, the Fortran descriptor for the private copy must be
accessible from both the host and the GPU. Without this change, the
descriptor lives on the host stack (via the OpenMP runtime's
CreateAlloca), which a CUF kernel running on the GPU cannot
dereference—resulting in cudaErrorIllegalAddress.

This patch modifies the omp.private init/dealloc region generation in
PrivateReductionUtils.cpp with three changes:

1. Allocate the descriptor in managed memory
2. Set allocator_idx = 2 on the null fir.embox
3. Free the managed descriptor

Source example:
```
real(8), device, allocatable :: adev(:)

    [47 lines not shown]
DeltaFile
+28-0flang/lib/Lower/Support/PrivateReductionUtils.cpp
+13-5flang/test/Lower/OpenMP/delayed-privatization-cuda-device-array.cuf
+41-52 files

LLVM/project 53b2294llvm/test/Transforms/LoopVectorize predicator.ll

[NFC] Update `LoopVectorize/predicator.ll` test

Align it with the style of `LoopVectorize/VPlan/predicator.ll`:

* Move ascii-graphs close to IR to avoid scrolling through CHECKs when
  comparing the pictuare and actual IR
* Rename `%cN` to ensure that `bbN` branches on `%cN`
DeltaFile
+42-45llvm/test/Transforms/LoopVectorize/predicator.ll
+42-451 files

LLVM/project 5706070llvm/test/CodeGen/AMDGPU/GlobalISel regbankselect-usube.mir regbankselect-uadde.mir

[AMDGPU][GlobalISel] Switch tests to new reg-bank-select and refresh checks (#186506)

Update AMDGPU GlobalISel tests to use -new-reg-bank-select. These tests
can be updated due to the existing implementation of legalization rules
for G_TRUNC.
DeltaFile
+54-110llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-usube.mir
+53-110llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-uadde.mir
+49-21llvm/test/CodeGen/AMDGPU/GlobalISel/add.v2i16.ll
+44-20llvm/test/CodeGen/AMDGPU/GlobalISel/sub.v2i16.ll
+22-3llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-salu-float.mir
+6-5llvm/test/CodeGen/AMDGPU/GlobalISel/localizer.ll
+228-2694 files not shown
+238-28110 files

LLVM/project e7e45cd.github CODEOWNERS

[spirv][mlir] Add myself to CODEOWNERS (#187115)
DeltaFile
+4-4.github/CODEOWNERS
+4-41 files

LLVM/project 6ca213cflang/lib/Lower/OpenMP ClauseProcessor.cpp, flang/test/Lower/OpenMP declare-simd.f90

[flang][mlir][OpenMP] Implement lowering for linear modifier (ref, uval, val)
DeltaFile
+99-23mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
+71-0mlir/test/Dialect/OpenMP/ops.mlir
+56-6flang/lib/Lower/OpenMP/ClauseProcessor.cpp
+43-2flang/test/Lower/OpenMP/declare-simd.f90
+42-0mlir/test/Dialect/OpenMP/invalid.mlir
+16-0mlir/include/mlir/Dialect/OpenMP/OpenMPEnums.td
+327-318 files not shown
+371-5914 files

LLVM/project dd4f5c6clang/include/clang/CIR/Dialect/IR CIROps.td

[CIR] Fix missing RegionBranchTerminatorOpInterface declarations (#187112)

After https://github.com/llvm/llvm-project/pull/186832 operations with
RegionBranchTerminatorOpInterface needs to declare
`getMutableSuccessorOperands`.
DeltaFile
+5-2clang/include/clang/CIR/Dialect/IR/CIROps.td
+5-21 files

LLVM/project 99b93b5llvm/lib/Target/AMDGPU AMDGPUInstCombineIntrinsic.cpp, llvm/test/Transforms/InstCombine/AMDGPU llvm.amdgcn.implicitarg.ptr.ll

[AMDGPU] fold a call to implictarg.ptr to a poison with no-implicitarg-ptr (#186925)

When a caller function with `amdgpu-no-implicitarg-ptr` calls
`llvm.amdgcn.implicitarg.ptr`, a poison value is returned.
DeltaFile
+41-0llvm/test/Transforms/InstCombine/AMDGPU/llvm.amdgcn.implicitarg.ptr.ll
+2-0llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp
+43-02 files

LLVM/project abb7288llvm/lib/Target/AMDGPU AMDGPURegBankLegalizeRules.cpp, llvm/test/CodeGen/AMDGPU/GlobalISel fshr.ll cvt_f32_ubyte.ll

AMDGPU/GlobalISel: RegBankLegalize rules for bswap, cvt_ubyte, rcp (#187093)
DeltaFile
+1,412-1,169llvm/test/CodeGen/AMDGPU/GlobalISel/fshr.ll
+32-28llvm/test/CodeGen/AMDGPU/GlobalISel/cvt_f32_ubyte.ll
+11-11llvm/test/CodeGen/AMDGPU/GlobalISel/bswap.ll
+15-0llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
+1,470-1,2084 files

LLVM/project 29f6bdbllvm/lib/Target/AMDGPU AMDGPURegBankLegalizeHelper.cpp AMDGPURegBankLegalizeRules.h, llvm/test/CodeGen/AMDGPU llvm.amdgcn.reduce.umin.ll llvm.amdgcn.reduce.umax.ll

AMDGPU/GlobalISel: RegBankLegalize rules for wave_reduce_umax/umin (#186528)
DeltaFile
+90-65llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.umin.ll
+90-65llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.umax.ll
+12-0llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeHelper.cpp
+6-0llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.h
+6-0llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
+204-1305 files

LLVM/project e808327flang/lib/Lower/OpenMP ClauseProcessor.cpp, flang/test/Lower/OpenMP declare-simd.f90 simd-linear.f90

[flang][mlir][OpenMP] Implement lowering for linear modifier (ref, uval, val)
DeltaFile
+99-23mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
+61-10flang/lib/Lower/OpenMP/ClauseProcessor.cpp
+43-2flang/test/Lower/OpenMP/declare-simd.f90
+42-0mlir/test/Dialect/OpenMP/invalid.mlir
+16-0mlir/include/mlir/Dialect/OpenMP/OpenMPEnums.td
+8-8flang/test/Lower/OpenMP/simd-linear.f90
+269-438 files not shown
+314-6314 files

LLVM/project 015601bclang/lib/Driver/ToolChains SPIRV.cpp, clang/test/Driver spirv-llvm-link.c

[clang][Driver][SPIRV] Fix assertion when using -emit-llvm (#186824)

In the failing case we are in the link phase with `-emit-llvm` passed,
which means we are going to call `llvm-link` so all inputs are expected
to be `.bc` files, and linker options aren't supported as we aren't
calling a real linker.

I can't imagine anyone wants to pass arguments to `llvm-link`. Just drop
them and warn instead of asserting.

Closes: https://github.com/llvm/llvm-project/issues/186598

Signed-off-by: Nick Sarnie <nick.sarnie at intel.com>
DeltaFile
+16-2clang/lib/Driver/ToolChains/SPIRV.cpp
+3-0clang/test/Driver/spirv-llvm-link.c
+19-22 files

LLVM/project 5293760mlir/lib/Dialect/LLVMIR/Transforms DIScopeForLLVMFuncOp.cpp, mlir/test/Dialect/LLVMIR add-debuginfo-func-scope.mlir

[mlir][llvmir] Fix crash when a CallSiteLoc has a UnknownLoc callee (#186860)

Avoids reading a null StringAttr when no file name is present by
manufacturing a default instead.
DeltaFile
+14-2mlir/test/Dialect/LLVMIR/add-debuginfo-func-scope.mlir
+9-4mlir/lib/Dialect/LLVMIR/Transforms/DIScopeForLLVMFuncOp.cpp
+23-62 files

LLVM/project a74605bllvm/lib/CodeGen/SelectionDAG FastISel.cpp, llvm/test/CodeGen/X86 fake-use-fastisel.ll

[FastISel] generate FAKE_USE for llvm.fake.use
DeltaFile
+20-0llvm/test/CodeGen/X86/fake-use-fastisel.ll
+7-2llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
+27-22 files

LLVM/project 673002futils/bazel/llvm-project-overlay/libc BUILD.bazel

[libc][math] Fix bazel build for fmaf16 (#187111)
DeltaFile
+1-1utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+1-11 files

LLVM/project 74c7fb9clang/include/clang/CIR/Dialect/IR CIROps.td

[CIR] Fix missing RegionBranchTerminatorOpInterface declarations

After https://github.com/llvm/llvm-project/pull/186832 operations with RegionBranchTerminatorOpInterface needs to declare `getMutableSuccessorOperands`.
DeltaFile
+5-2clang/include/clang/CIR/Dialect/IR/CIROps.td
+5-21 files

LLVM/project 6b2e347libc/include wctype.yaml, libc/src/wctype iswpunct.h iswpunct.cpp

[libc]: implement 'iswpunct' entrypoint (#186968)

Added entrypoints:
- baremetal/arm
- baremetal/aarch64
- baremetal/riscv
- darwin/aarch64
- linux/aarch64
- linux/arm
- linux/riscv
- linux/x86_64
- windows

Also added the unit test for iswpunct.

Part of the issue: #185136
DeltaFile
+63-0libc/test/src/wctype/iswpunct_test.cpp
+21-0libc/src/wctype/iswpunct.h
+19-0libc/src/wctype/iswpunct.cpp
+12-0libc/src/wctype/CMakeLists.txt
+10-0libc/test/src/wctype/CMakeLists.txt
+6-0libc/include/wctype.yaml
+131-09 files not shown
+142-015 files

LLVM/project 96d873cflang/include/flang/Semantics openmp-utils.h, flang/lib/Semantics openmp-utils.cpp check-omp-loop.cpp

[flang][OpenMP] Use OmpDirectiveSpecification for range/depth queries, NFC

That makes them usable for a potential future implementation of APPLY.
DeltaFile
+18-20flang/lib/Semantics/openmp-utils.cpp
+2-2flang/include/flang/Semantics/openmp-utils.h
+2-2flang/lib/Semantics/check-omp-loop.cpp
+22-243 files

LLVM/project d4afb1bflang/include/flang/Semantics openmp-utils.h

[flang][OpenMP] Remove unused function declaration, NFC (#187101)

The function `GetNumGeneratedNestsFrom` has been removed, but repeated
local rebases stubbornly inserted the declaration back in.
DeltaFile
+0-4flang/include/flang/Semantics/openmp-utils.h
+0-41 files

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

[libc][math] Fix fma bazel build (#187107)
DeltaFile
+1-1utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+1-11 files

LLVM/project 2ef41ccclang/lib/Format FormatTokenLexer.cpp FormatTokenLexer.h, clang/unittests/Format FormatTest.cpp

[clang-format] Fix Macros configuration not working with try/catch expansions (#184891)

This is a superseding followup to my previous PR,
https://github.com/llvm/llvm-project/pull/183352.

In my previous PR, I proposed adding TryMacros and CatchMacros
configuration options, similar in spirit to IfMacros and ForEachMacros.
I did so because I noticed that configuration like
`Macros=["TRY_MACRO=try", "CATCH_MACRO(e)=catch(e)]` did not format
configured macro(s) as try/catch blocks. @owenca confirmed in my
previous PR that this observed behavior is undesired, and we should
prefer to fix it rather than introduce new features.

This PR proposes a fix, described in detail in the commit message below
the break. In general terms, it deletes a heuristic from the lexing
phase, where it interacted poorly with the Macros option, and moves its
functionality to the parsing phase instead.

I describe a possibly cleaner fix in [a comment

    [34 lines not shown]
DeltaFile
+0-22clang/lib/Format/FormatTokenLexer.cpp
+6-4clang/unittests/Format/FormatTest.cpp
+0-1clang/lib/Format/FormatTokenLexer.h
+6-273 files

LLVM/project 4a8b61fllvm/lib/Target/AMDGPU AMDGPUCoExecSchedStrategy.cpp GCNSchedStrategy.cpp, llvm/test/CodeGen/AMDGPU coexec-sched-effective-stall.mir

[AMDGPU] Add structural stall heuristic to scheduling strategies

Implements a structural stall heuristic that considers both resource
hazards and latency constraints when selecting instructions. In coexec,
this changes the pending queue from a binary “not ready to issue”
distinction into part of a unified candidate comparison. Pending
instructions still identify structural stalls in the current cycle, but
they are now evaluated directly against available instructions by stall
cost, making the heuristics both more intuitive and more expressive.

- Add getStructuralStallCycles() to GCNSchedStrategy that computes the
number of cycles an instruction must wait due to:
  - Resource conflicts on unbuffered resources (from the SchedModel)
  - Sequence-dependent hazards (from GCNHazardRecognizer)

- Add getHazardWaitStates() to GCNHazardRecognizer that returns the number
of wait states until all hazards for an instruction are resolved,
providing cycle-accurate hazard information for scheduling heuristics.
DeltaFile
+38-3llvm/lib/Target/AMDGPU/AMDGPUCoExecSchedStrategy.cpp
+35-0llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp
+7-2llvm/lib/Target/AMDGPU/GCNSchedStrategy.h
+6-0llvm/lib/Target/AMDGPU/GCNHazardRecognizer.h
+2-4llvm/test/CodeGen/AMDGPU/coexec-sched-effective-stall.mir
+4-0llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
+92-91 files not shown
+94-97 files

LLVM/project c064b5allvm/lib/Target/AMDGPU AMDGPUCoExecSchedStrategy.cpp GCNSchedStrategy.h, llvm/test/CodeGen/AMDGPU coexec-sched-effective-stall.mir

Address comments.
DeltaFile
+26-23llvm/lib/Target/AMDGPU/AMDGPUCoExecSchedStrategy.cpp
+2-3llvm/lib/Target/AMDGPU/GCNSchedStrategy.h
+1-0llvm/test/CodeGen/AMDGPU/coexec-sched-effective-stall.mir
+29-263 files

LLVM/project 202b7c6llvm/lib/CodeGen/SelectionDAG FastISel.cpp, llvm/test/CodeGen/X86 fake-use-fastisel.ll

[FastISel] generate FAKE_USE for llvm.fake.use
DeltaFile
+20-0llvm/test/CodeGen/X86/fake-use-fastisel.ll
+8-2llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
+28-22 files

LLVM/project af67e30llvm/lib/Transforms/Vectorize SLPVectorizer.cpp

[SLP][NFC] Refactor BinOpSameOpcodeHelper BIT enum (#187067)

More readable syntax and increase type width to avoid silent errors if
we reach 17 members.
DeltaFile
+10-10llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+10-101 files

LLVM/project bed5e7dlibc/shared/math fmaf16.h, libc/src/__support/math fmaf16.h CMakeLists.txt

[libc][math] Refactor fmaf16 implementation to header-only in src/__support/math folder. (#163977)
DeltaFile
+33-0libc/src/__support/math/fmaf16.h
+29-0libc/shared/math/fmaf16.h
+11-1utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+10-0libc/src/__support/math/CMakeLists.txt
+2-4libc/src/math/generic/fmaf16.cpp
+1-2libc/src/math/generic/CMakeLists.txt
+86-73 files not shown
+90-79 files

LLVM/project e6f0ec8libc/shared/math fmaf.h, libc/src/__support/math fmaf.h CMakeLists.txt

[libc][math] Refactor fmaf implementation to header-only in src/__support/math folder. (#163970)

Part of #147386

in preparation for:
https://discourse.llvm.org/t/rfc-make-clang-builtin-math-functions-constexpr-with-llvm-libc-to-support-c-23-constexpr-math-functions/86450
DeltaFile
+27-0libc/src/__support/math/fmaf.h
+23-0libc/shared/math/fmaf.h
+11-1utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+9-0libc/src/__support/math/CMakeLists.txt
+2-5libc/src/math/generic/fmaf.cpp
+1-1libc/src/math/generic/CMakeLists.txt
+73-73 files not shown
+76-79 files

LLVM/project f5d83fbmlir/lib/Dialect/GPU/Transforms SubgroupIdRewriter.cpp, mlir/test/Dialect/GPU subgroupId-rewrite.mlir

[mlir][GPU] Set nsw/nuw when expanding out subgroup ID (#187099)

There's no world where the subgroup ID (or the intermediate values
needed to compute it) will be negative or will have signed overflow.
This commit adds flags accordingly, which is helpful as this is a rather
low-level rewrite that might run after the analyses that would
ordinarily add these flags.
DeltaFile
+8-8mlir/test/Dialect/GPU/subgroupId-rewrite.mlir
+10-5mlir/lib/Dialect/GPU/Transforms/SubgroupIdRewriter.cpp
+18-132 files

LLVM/project 8859866flang/include/flang/Semantics openmp-utils.h

[flang][OpenMP] Remove unused function declaration, NFC

The function `GetNumGeneratedNestsFrom` has been removed, but repeated
local rebases stubbornly inserted the declaration back in.
DeltaFile
+0-4flang/include/flang/Semantics/openmp-utils.h
+0-41 files

LLVM/project d0d1f0blibc/shared/math fma.h, libc/src/__support/math fma.h CMakeLists.txt

[libc][math] Refactor fma implementation to header-only in src/__support/math folder. (#163968)

Part of #147386

in preparation for:
https://discourse.llvm.org/t/rfc-make-clang-builtin-math-functions-constexpr-with-llvm-libc-to-support-c-23-constexpr-math-functions/86450
DeltaFile
+27-0libc/src/__support/math/fma.h
+23-0libc/shared/math/fma.h
+9-1utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+9-0libc/src/__support/math/CMakeLists.txt
+2-5libc/src/math/generic/fma.cpp
+1-1libc/src/math/generic/CMakeLists.txt
+71-73 files not shown
+74-79 files