LLVM/project b35a935llvm/include/llvm/ADT RadixTree.h

Add RadixTree lookup and lexicographic iteration
DeltaFile
+96-1llvm/include/llvm/ADT/RadixTree.h
+96-11 files

LLVM/project 3018776llvm/lib/Target/AMDGPU AMDGPULowerIntrinsics.cpp, llvm/lib/Target/AMDGPU/AsmParser AMDGPUAsmParser.cpp

[AMDGPU] Validate barrier ID in S_BARRIER_SIGNAL_ISFIRST

Value user_cluster_barrier_id is not supported.
DeltaFile
+3-36llvm/test/CodeGen/AMDGPU/lower-intrinsics-cluster-barrier.ll
+23-0llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
+9-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.barrier.signal.isfirst.invalid_barrier.ll
+5-0llvm/lib/Target/AMDGPU/AMDGPULowerIntrinsics.cpp
+5-0llvm/test/MC/AMDGPU/gfx13_err.s
+3-0llvm/test/MC/AMDGPU/gfx12_err.s
+48-361 files not shown
+49-367 files

LLVM/project b31f87dllvm/test/MC/AMDGPU gfx12_err.s

[AMDGPU] Regenerate gfx12_err.s. NFC

Wrong tool was recorded in the test header.
DeltaFile
+221-222llvm/test/MC/AMDGPU/gfx12_err.s
+221-2221 files

LLVM/project 8d6a88ellvm/lib/Target/NVPTX NVPTXInstrInfo.td NVPTXISelDAGToDAG.cpp, llvm/test/CodeGen/NVPTX fmax3.ll

[NVPTX] Fuse abs into min/max/redux

Emit PTX instructions for the fused form when possible.
DeltaFile
+142-0llvm/test/CodeGen/NVPTX/fmax3.ll
+32-1llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp
+32-0llvm/test/Transforms/InstCombine/NVPTX/nvvm-intrins.ll
+16-0llvm/lib/Target/NVPTX/NVPTXInstrInfo.td
+16-0llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp
+238-15 files

LLVM/project ef285ecllvm/lib/Target/AMDGPU AMDGPULowerIntrinsics.cpp, llvm/lib/Target/AMDGPU/AsmParser AMDGPUAsmParser.cpp

[AMDGPU] Validate barrier ID in S_BARRIER_SIGNAL_ISFIRST

Value user_cluster_barrier_id is not supported.
DeltaFile
+224-222llvm/test/MC/AMDGPU/gfx12_err.s
+3-36llvm/test/CodeGen/AMDGPU/lower-intrinsics-cluster-barrier.ll
+23-0llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
+9-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.barrier.signal.isfirst.invalid_barrier.ll
+5-0llvm/lib/Target/AMDGPU/AMDGPULowerIntrinsics.cpp
+5-0llvm/test/MC/AMDGPU/gfx13_err.s
+269-2581 files not shown
+270-2587 files

LLVM/project e2a87e1llvm/lib/Target/AMDGPU AMDGPU.td AMDGPULowerIntrinsics.cpp, llvm/lib/Target/AMDGPU/AsmParser AMDGPUAsmParser.cpp

[AMDGPU] s_monitor_sleep shall not use sleep_forever on gfx1250 (#220366)

Fixes: SWDEV-542848
DeltaFile
+32-31llvm/test/MC/AMDGPU/gfx1250_asm_sopp.s
+23-0llvm/lib/Target/AMDGPU/AMDGPULowerIntrinsics.cpp
+21-0llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
+6-3llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.monitor.sleep.ll
+7-0llvm/lib/Target/AMDGPU/AMDGPU.td
+3-0llvm/test/MC/AMDGPU/gfx1250_asm_sopp_err.s
+92-346 files

LLVM/project 0543153lldb/source/Plugins/Platform/MacOSX PlatformDarwinKernel.h PlatformDarwinKernel.cpp, lldb/test/API/macosx/load-kext TestLoadKext.py

[lldb] Untangle PlatformDarwinKernel's kext and kernel index lookups (#220318)

PlatformDarwinKernel searches an index of the local filesystem for kexts
and kernels, but each search was interleaved with creating the Module,
updating the Target and falling back to PlatformDarwin, so nothing else
could reuse it. Pull the two searches out so a follow-up can answer
Platform::FindModuleFiles with them.

This change is NFC except GetSharedModuleKernel assigned module_sp
before testing whether the candidate matched and never cleared it, so a
failed search would still return the last *non-matching* module.
DeltaFile
+111-102lldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.cpp
+56-0lldb/test/API/macosx/load-kext/TestLoadKext.py
+20-11lldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.h
+187-1133 files

LLVM/project 88e822amlir/lib/Conversion/SCFToControlFlow SCFToControlFlow.cpp, mlir/test/Conversion/SCFToControlFlow convert-to-cfg.mlir

[mlir][SCFToControlFlow] Carry LLVM attributes through scf.parallel lowering (#219218)

`ParallelLowering` builds its `scf.for` nest without copying anything from the
`scf.parallel`, so an `llvm.loop_annotation` placed on a parallel loop is
silently dropped before `ForLowering` can move it onto the latch branch.

`scf.for` and `scf.while` already propagate LLVM-dialect attributes via
`propagateLoopAttrs`, so do the same for `scf.parallel`. A multi-dimensional
`scf.parallel` carries a single attribute dictionary but becomes several loops,
so the attributes go to the innermost one, whose latch is where `ForLowering`
attaches the loop metadata.

Tests cover the 1-D case and a 2-D nest, where the outer latch is checked to
stay unannotated. Verified that the new tests fail without the fix and pass with
it, and that the pre-existing expectations in `convert-to-cfg.mlir` are
unchanged.
DeltaFile
+39-0mlir/test/Conversion/SCFToControlFlow/convert-to-cfg.mlir
+17-6mlir/lib/Conversion/SCFToControlFlow/SCFToControlFlow.cpp
+56-62 files

LLVM/project 6964d51bolt/include/bolt/Core BinaryContext.h, bolt/lib/Core BinaryContext.cpp

[BOLT] Fix data race on the shared .dwp DWARF context (#220119)

As noted by labrinea, 775dc9b8bf58 ("[BOLT] Create and release .dwo
DWARF contexts incrementally") releases every DWO context at the end of
readDebugInfo, leaving the bucket threads of the DWARF rewrite to
re-open them on demand. With a .dwp package that moved the first touch
of a shared context into the parallel phase, and multiple threads
compete for it, in a race for the abbrev table, causing intermittent
failures in dwarf5-ftypes-dwp-input-dwo-output.test.

Open the split CUs of a package up front, from a single thread, and
resolve the abbreviation table of every unit in it. This is not relevant
for the non-dwp case, which is unaffected.
DeltaFile
+18-0bolt/lib/Core/BinaryContext.cpp
+8-1bolt/include/bolt/Core/BinaryContext.h
+5-0bolt/lib/Rewrite/DWARFRewriter.cpp
+31-13 files

LLVM/project 9c6654ellvm/lib/Target/AMDGPU AMDGPUTargetMachine.cpp, llvm/test/CodeGen/MIR/AMDGPU machine-function-info-user-sgpr-count.mir

[AMDGPU] Fix user SGPR accounting when parsing MIR

Count privateSegmentSize and LDSKernelId as user SGPRs to preserve the kernel
descriptor count across MIR round trips.

Fixes LCOMPILER-2700.
DeltaFile
+47-0llvm/test/CodeGen/MIR/AMDGPU/machine-function-info-user-sgpr-count.mir
+9-9llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
+56-92 files

LLVM/project 0a1e832llvm/include/llvm/ADT DenseMap.h

[ADT] Exit doFind on an empty map, not just an unallocated one (#220294)

`doFind` exits early only when no buckets were ever allocated. A map that
had entries and lost them keeps its bucket array. `NumBuckets` is then not
zero, so every lookup hashes the key and probes.

For a `SmallDenseMap` in small mode, `NumBuckets` is the template parameter
`InlineBuckets`, a nonzero constant. The existing check can never fire for
those maps. An empty one hashes and probes on every lookup.

`getNumEntries() == 0` covers both cases. It also subsumes the old check.
There are no entries without buckets, so `Mask = NumBuckets - 1` is still
safe. It is one test either way, so non-empty lookups are unchanged. The
check goes before `getRep()`. Keeping it after costs 0.158% on clang, so
those loads are not sunk past the branch.

| workload | instructions:u |
|---|---:|
| clang compiling 600 LLVM/Clang/MLIR translation units | **-0.028%** |

    [8 lines not shown]
DeltaFile
+2-2llvm/include/llvm/ADT/DenseMap.h
+2-21 files

LLVM/project 5da4b60llvm/include/llvm/ProfileData SampleProf.h, llvm/unittests/ProfileData SampleProfTest.cpp

[SampleProf] Strict handling suffixes without trailing "." (#220320)

Trailing "." is followed by variable part of the suffix.
As is, for non dot terminated suffix, getCanonicalFnName pass
with "Dit == It" and cuts any suffix with starts with `Suffix`.

E.g. ".cfi" suffix will match will consume "foo.cfi_something" else,
I believe this is unintentional in general and undesired for ".cfi",
which can match ".cfi_jt".
DeltaFile
+12-7llvm/unittests/ProfileData/SampleProfTest.cpp
+5-1llvm/include/llvm/ProfileData/SampleProf.h
+17-82 files

LLVM/project a7c1ae0llvm/lib/Target/NVPTX NVPTXIntrinsics.td NVPTXInstrInfo.td, llvm/test/CodeGen/NVPTX redux-sync-f32.ll fmax3.ll

[NVPTX] Fuse abs into min/max/redux

Emit PTX instructions for the fused form when possible.
DeltaFile
+605-0llvm/test/CodeGen/NVPTX/bf16x2-instructions.s
+161-0llvm/test/CodeGen/NVPTX/fmax3.ll
+67-0llvm/test/CodeGen/NVPTX/redux-sync-f32.ll
+13-3llvm/lib/Target/NVPTX/NVPTXIntrinsics.td
+16-0llvm/lib/Target/NVPTX/NVPTXInstrInfo.td
+16-0llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp
+878-36 files

LLVM/project c0a2ac7llvm/lib/Target/DirectX DXILResourceAccess.cpp

[NFC][DirectX] Fix a memory leak in resource access (#220350)

This code was leaking memory when `HasGetPtr` was false. We would reset
`GetPtrPhi` to `nullptr` but we would never delete the `PHINode` we
created preemptively.

Fix this by consolidating the logic to handle the case where we don't
need a PHI for the getpointer, and simplify by avoiding insertion of the
instruction at all if we aren't going to use it.

Leak reported by ASAN:
  https://lab.llvm.org/buildbot/#/builders/24/builds/23635
DeltaFile
+26-28llvm/lib/Target/DirectX/DXILResourceAccess.cpp
+26-281 files

LLVM/project fab96ballvm/utils/gn/secondary/llvm/unittests BUILD.gn, llvm/utils/gn/secondary/llvm/unittests/MC/LoongArch BUILD.gn

[gn] port 6ca17fd8ed37 (LoongArchMCTests) (#220425)
DeltaFile
+14-0llvm/utils/gn/secondary/llvm/unittests/MC/LoongArch/BUILD.gn
+4-1llvm/utils/gn/secondary/llvm/unittests/BUILD.gn
+18-12 files

LLVM/project b68c85bbolt/lib/Core BinaryContext.cpp

Add DWARF4 equivalent loop
DeltaFile
+3-0bolt/lib/Core/BinaryContext.cpp
+3-01 files

LLVM/project 8ee754bllvm/utils/gn/secondary/libcxx/include BUILD.gn

[gn build] Port 678058af7da6 (#220423)
DeltaFile
+1-0llvm/utils/gn/secondary/libcxx/include/BUILD.gn
+1-01 files

LLVM/project 0b02fbdllvm/utils/gn/secondary/llvm/unittests/CodeGen BUILD.gn

[gn build] Port 5cc76ecb867c (#220422)
DeltaFile
+1-0llvm/utils/gn/secondary/llvm/unittests/CodeGen/BUILD.gn
+1-01 files

LLVM/project cb3d76fllvm/utils/gn/secondary/compiler-rt/lib/sanitizer_common BUILD.gn

[gn] port 4bb34ea0473c (#220421)
DeltaFile
+1-0llvm/utils/gn/secondary/compiler-rt/lib/sanitizer_common/BUILD.gn
+1-01 files

LLVM/project 9e7d9damlir/include/mlir/Dialect/OpenACC OpenACCUtilsLoop.h, mlir/lib/Dialect/OpenACC/Utils OpenACCUtilsLoop.cpp

[nfc][acc] Make two loop utilities non-static and add tests (#220417)

Updates OpenACCUtilsLoop so that two of the internal helpers are
externally callable. Adds unit tests for them.
DeltaFile
+110-0mlir/unittests/Dialect/OpenACC/OpenACCUtilsLoopTest.cpp
+5-8mlir/lib/Dialect/OpenACC/Utils/OpenACCUtilsLoop.cpp
+11-0mlir/include/mlir/Dialect/OpenACC/OpenACCUtilsLoop.h
+126-83 files

LLVM/project 86481afflang/lib/Optimizer/CodeGen CodeGen.cpp, mlir/lib/Conversion/MathToLLVM MathToLLVM.cpp

[mlir] Migrate aggregate builders to explicit properties

Pass typed property structs and discardable attributes separately at ODS
aggregate builder call sites.

Assisted-by: Codex
DeltaFile
+45-70mlir/unittests/Dialect/OpenACC/OpenACCUtilsTest.cpp
+83-26flang/lib/Optimizer/CodeGen/CodeGen.cpp
+71-35mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
+71-23mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp
+33-42mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
+38-25mlir/lib/Conversion/MathToLLVM/MathToLLVM.cpp
+341-22165 files not shown
+910-42471 files

LLVM/project 42f2cd0llvm/lib/Transforms/IPO LowerTypeTests.cpp ThinLTOBitcodeWriter.cpp, llvm/test/Transforms/LowerTypeTests promoted-internal.ll

Revert "[CFI] Create an external linkage alias instead of promoting i… (#220339)

…nternals (#203171)"

This reverts commit 2b321e2f293a8486ce8a351aaa5a85ba1596b9ca. Causes
crashes and breaks linking on Windows, see comments on
https://github.com/llvm/llvm-project/pull/203171
DeltaFile
+29-17llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
+0-35llvm/lib/Transforms/IPO/LowerTypeTests.cpp
+0-29llvm/test/Transforms/LowerTypeTests/promoted-internal.ll
+7-10llvm/test/Transforms/ThinLTOBitcodeWriter/comdat.ll
+2-4llvm/test/Transforms/ThinLTOBitcodeWriter/split-vfunc-internal.ll
+2-3llvm/test/Transforms/ThinLTOBitcodeWriter/split-internal2.ll
+40-982 files not shown
+44-1028 files

LLVM/project 470c5d2llvm/lib/Target/AArch64 AArch64ISelLowering.cpp, llvm/test/CodeGen/AArch64 sme-za-tailcall-fpdiff-align.ll

Revert "[llvm][AArch64] Ensure stack alignment in non-sibcall tail calls with FPDiff" (#220419)

Reverts llvm/llvm-project#217156

I noticed an issue with it right after it landed, and to simplify
cherry-picking, I'm going to revert and re-land. See:
https://github.com/llvm/llvm-project/pull/220406 for the re-land.
DeltaFile
+0-79llvm/test/CodeGen/AArch64/sme-za-tailcall-fpdiff-align.ll
+10-18llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+10-972 files

LLVM/project 4307456clang/docs index.md MatrixTypes.md, clang/docs/CommandGuide clang.md

[docs] Finish MyST migration for remaining Clang docs (#220381)

This migrates all remaining clang/docs/**rst files to markdown. There
are still 2-3 remaining generated rst files, and I'm working on that
next. The pixel diff shows 0.4045% pixel differences after
longest-common-subsequence vertical alignment, and they all looked
intentional to me. I don't have a good process for serving that HTML, or
I'd share it.

Tracking issue: #201242
See the [migration guide] for more information. 

[migration guide]:
https://llvm.org/docs/SphinxQuickstartTemplate.html#markdown-migration-guidelines
This is a stacked PR based on #220380, which will be a standalone commit
that
renames *.rst -> *.md before this PR lands for history preservation
purposes.

This was prepared with rst2myst plus LLM-assisted cleanup.
DeltaFile
+644-643clang/docs/CommandGuide/clang.md
+324-347clang/docs/ObjectiveCLiterals.md
+316-307clang/docs/OffloadingDesign.md
+237-238clang/docs/PCHInternals.md
+120-137clang/docs/MatrixTypes.md
+122-120clang/docs/index.md
+1,763-1,7924 files not shown
+1,897-1,95710 files

LLVM/project c39fa41clang/docs PCHInternals.rst PCHInternals.md, clang/docs/CommandGuide clang.rst clang.md

[docs] Rename remaining Clang docs for MyST migration (#220380)

Tracking issue: #201242
See the [migration guide] for more information. 

[migration guide]:
https://llvm.org/docs/SphinxQuickstartTemplate.html#markdown-migration-guidelines

This is the initial straight rename commit. It will probably break the
docs build, but it has to be a separate PR for blame preservation
purposes.
DeltaFile
+0-800clang/docs/CommandGuide/clang.rst
+800-0clang/docs/CommandGuide/clang.md
+0-606clang/docs/ObjectiveCLiterals.rst
+606-0clang/docs/ObjectiveCLiterals.md
+0-571clang/docs/PCHInternals.rst
+571-0clang/docs/PCHInternals.md
+1,977-1,97711 files not shown
+3,224-3,22417 files

LLVM/project 63f2d96clang/include/clang/Analysis/Analyses/LifetimeSafety LifetimeSafety.h, clang/include/clang/Basic DiagnosticSemaKinds.td DiagnosticGroups.td

[LifetimeSafety] Suppress global-escape warnings in `main` to reduce false positives (#218765)
DeltaFile
+10-5clang/lib/Sema/SemaLifetimeSafety.h
+12-2clang/test/Sema/LifetimeSafety/dangling-global.cpp
+6-3clang/lib/Analysis/LifetimeSafety/Checker.cpp
+7-0clang/include/clang/Basic/DiagnosticGroups.td
+4-0clang/include/clang/Basic/DiagnosticSemaKinds.td
+2-1clang/include/clang/Analysis/Analyses/LifetimeSafety/LifetimeSafety.h
+41-116 files

LLVM/project 56e03d6llvm/lib/Target/AMDGPU SIInsertWaitcnts.cpp

clang-format
DeltaFile
+8-8llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
+8-81 files

LLVM/project 64d45fallvm/lib/Target/AMDGPU SIInsertWaitcnts.cpp, llvm/test/CodeGen/AMDGPU buffer-fat-pointer-atomicrmw-fmin.ll buffer-fat-pointer-atomicrmw-fmax.ll

[AMDGPU][SIInsertWaitcnts] Fix soft wait removal with loop-carried deps

The code that checked if a soft waitcnt (such as the one insterted by
a release fence on LDS) was redundant didn't correctly account for the
fact that that, for example, the previous iteration of a loop could
have introduced memory traffic that needs to be waited on. This bug
appeared to be fairly rare in practice (probably due to the
instruction scheduler shuffling around code in t bad form) but it can
happen.

The fix is that, instad of immediately erasing "redundant" waits, we
add them to a set of waits to be erased, and then remove them from the
set if they prove to be truly redundant.

This has the side effect of fixing a correctness issue around the CAS
loops we emit on gfx1250 - the global_inv we emit after the
`s_loadcnt 0x0` is itself a `loadcnt`-able event, and so needs to be
forced to completion before the next iteration of the CAS loop.


    [5 lines not shown]
DeltaFile
+43-11llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
+41-0llvm/test/CodeGen/AMDGPU/local-atomicrmw-fsub.ll
+31-0llvm/test/CodeGen/AMDGPU/local-atomicrmw-fmin.ll
+31-0llvm/test/CodeGen/AMDGPU/local-atomicrmw-fmax.ll
+20-8llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fmin.ll
+20-8llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fmax.ll
+186-278 files not shown
+229-3114 files

LLVM/project 73bc434llvm/test/CodeGen/AMDGPU waitcnt-loop-carried-fence-drain.mir waitcnt-loop-carried-fence-drain-gfx12.mir

[AMDGPU] Pre-commit tests for loop-carried memory waits (#220356)

SIInsertWaitcnts is currently dropping waits in a
(fence; read; write; branch) loop in some cases. Pre-commit tests to
show the problem.

AI disclosure: test generated by AI, but I poked them into not being
terrible.

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply at anthropic.com>
DeltaFile
+57-0llvm/test/CodeGen/AMDGPU/waitcnt-loop-carried-fence-drain-gfx12.mir
+53-0llvm/test/CodeGen/AMDGPU/waitcnt-loop-carried-fence-drain.mir
+110-02 files

LLVM/project faafb30llvm/docs/CommandGuide llvm-objcopy.md llvm-objcopy.rst

rebase

Created using spr 1.3.7
DeltaFile
+0-1,208llvm/docs/CommandGuide/llvm-mca.rst
+1,200-0llvm/docs/CommandGuide/llvm-mca.md
+0-751llvm/docs/CommandGuide/tblgen.rst
+739-0llvm/docs/CommandGuide/tblgen.md
+0-668llvm/docs/CommandGuide/llvm-objcopy.rst
+656-0llvm/docs/CommandGuide/llvm-objcopy.md
+2,595-2,627253 files not shown
+11,619-10,531259 files