LLVM/project 499acebflang/lib/Lower ConvertExpr.cpp, llvm/test/CodeGen/AMDGPU/GlobalISel legalize-load-global.mir legalize-load-local.mir

rebase

Created using spr 1.3.7
DeltaFile
+9,398-9,218llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-global.mir
+6,993-6,921llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-local.mir
+13,068-0llvm/test/CodeGen/RISCV/GlobalISel/atomicrmw-max-min-umax-umin.ll
+5,803-5,808llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-private.mir
+0-7,750flang/lib/Lower/ConvertExpr.cpp
+3,842-3,722llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-constant.mir
+39,104-33,4194,018 files not shown
+310,498-193,6574,024 files

LLVM/project ea0a8e0flang/lib/Lower ConvertExpr.cpp, llvm/test/CodeGen/AMDGPU/GlobalISel legalize-load-global.mir legalize-load-local.mir

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+9,398-9,218llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-global.mir
+6,993-6,921llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-local.mir
+13,068-0llvm/test/CodeGen/RISCV/GlobalISel/atomicrmw-max-min-umax-umin.ll
+5,803-5,808llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-private.mir
+0-7,750flang/lib/Lower/ConvertExpr.cpp
+3,842-3,722llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-constant.mir
+39,104-33,4194,018 files not shown
+310,498-193,6574,024 files

LLVM/project 45b3065llvm/lib/Target/X86 X86ISelLowering.cpp, llvm/test/CodeGen/X86/apx ccmp.ll

[X86][CCMP] Fix invalid CCMP emission (#211161)

This patch ports AArch64's negation-aware conjunction algorithm to fix
invalid CCMP emission when OR nested inside an AND.

Example: https://godbolt.org/z/ave7f61hK

Before the change, the above case returns 5 rather the 9 when CCMP
enabled.

Assisted-by: Claude Opus 4.8
DeltaFile
+140-59llvm/lib/Target/X86/X86ISelLowering.cpp
+60-18llvm/test/CodeGen/X86/apx/ccmp.ll
+200-772 files

LLVM/project c974ee9llvm/lib/Target/WebAssembly WebAssemblyExceptionInfo.cpp WebAssemblyExceptionInfo.h

[WebAssembly] Port WebAssemblyExceptionAnalysis

Similar to the LegacyPM version, but we need to add a move constructor
to WebAssemblyExceptionInfo and set up some invalidation for the NewPM
given we don't need to invalidate if the CFG doesn't change.

Reviewers: sbc100, aheejin, dschuff

Pull Request: https://github.com/llvm/llvm-project/pull/210246
DeltaFile
+51-8llvm/lib/Target/WebAssembly/WebAssemblyExceptionInfo.cpp
+19-0llvm/lib/Target/WebAssembly/WebAssemblyExceptionInfo.h
+6-0llvm/lib/Target/WebAssembly/WebAssemblyPassRegistry.def
+1-0llvm/lib/Target/WebAssembly/WebAssemblyCodeGenPassBuilder.cpp
+77-84 files

LLVM/project 9ae8152clang/docs UsersManual.md, flang/lib/Lower ConvertExpr.cpp

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+13,068-0llvm/test/CodeGen/RISCV/GlobalISel/atomicrmw-max-min-umax-umin.ll
+0-7,750flang/lib/Lower/ConvertExpr.cpp
+2,165-2,290clang/docs/UsersManual.md
+2,559-652llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.atomic.dim.a16.ll
+1,270-764llvm/test/CodeGen/AMDGPU/load-constant-i1.ll
+0-1,992llvm/test/CodeGen/X86/expand-false-deps.ll
+19,062-13,4482,145 files not shown
+95,006-48,2592,151 files

LLVM/project 8a7cedcllvm/lib/Target/RISCV RISCVTargetMachine.cpp, llvm/test/CodeGen/RISCV O3-pipeline.ll

Reapply "[RISCV] Run EarlyMachineLICM before VLOptimizer to hoist constant splats" (#210937) (#211452)

This reverts commit acfaabebcfd10d4dbabeb54cf0c60509648fb82f.

The miscompile with LIFETIME_START/END markers should be fixed now
after #211179
DeltaFile
+119-0llvm/test/CodeGen/RISCV/rvv/vl-opt-licm.ll
+16-16llvm/test/CodeGen/RISCV/rvv/vxrm-insert-out-of-loop.ll
+9-1llvm/lib/Target/RISCV/RISCVTargetMachine.cpp
+5-4llvm/test/CodeGen/RISCV/rvv/vsetvli-insert.ll
+4-0llvm/test/CodeGen/RISCV/O3-pipeline.ll
+153-215 files

LLVM/project 45ea33cllvm/lib/Target/WebAssembly WebAssemblyExceptionInfo.h WebAssemblyExceptionInfo.cpp

[WebAssembly] Refactor WebAssemblyExceptionInfo into Wrapper Pass

This is to match the standard style adopted by generic CodeGen analyses
like MachineBlockFrequencyInfo. This makes WebAssemblyExceptionInfo its
own class that we then get through the wrapper pass.

The primary aim of this patch is to add enough modularity such that we
can also provide this analysis through the NewPM in a follow up patch.

Reviewers: dschuff, sbc100, aheejin

Reviewed By: dschuff, aheejin

Pull Request: https://github.com/llvm/llvm-project/pull/210245
DeltaFile
+24-8llvm/lib/Target/WebAssembly/WebAssemblyExceptionInfo.h
+8-6llvm/lib/Target/WebAssembly/WebAssemblyExceptionInfo.cpp
+4-4llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp
+3-3llvm/lib/Target/WebAssembly/WebAssemblyCFGSort.cpp
+1-1llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
+1-1llvm/lib/Target/WebAssembly/WebAssembly.h
+41-236 files

LLVM/project 0f2b9a1llvm/lib/Target/WebAssembly WebAssemblyRegColoring.cpp WebAssembly.h

[WebAssembly] Port WebAssemblyRegColoringPass

Standard NewPM pass porting.

Reviewers: dschuff, aheejin, sbc100

Pull Request: https://github.com/llvm/llvm-project/pull/210225
DeltaFile
+45-19llvm/lib/Target/WebAssembly/WebAssemblyRegColoring.cpp
+10-2llvm/lib/Target/WebAssembly/WebAssembly.h
+2-2llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
+1-1llvm/lib/Target/WebAssembly/WebAssemblyCodeGenPassBuilder.cpp
+1-0llvm/lib/Target/WebAssembly/WebAssemblyPassRegistry.def
+59-245 files

LLVM/project 30a2e29clang/docs UsersManual.md, flang/lib/Lower ConvertExpr.cpp

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+13,068-0llvm/test/CodeGen/RISCV/GlobalISel/atomicrmw-max-min-umax-umin.ll
+0-7,750flang/lib/Lower/ConvertExpr.cpp
+2,165-2,290clang/docs/UsersManual.md
+2,559-652llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.atomic.dim.a16.ll
+1,270-764llvm/test/CodeGen/AMDGPU/load-constant-i1.ll
+0-1,992llvm/test/CodeGen/X86/expand-false-deps.ll
+19,062-13,4482,145 files not shown
+95,006-48,2592,151 files

LLVM/project 244d484llvm/lib/Target/WebAssembly WebAssemblyRegStackify.cpp WebAssembly.h

[WebAssembly] Port WebAssemblyRegStackifyPass

Standard NewPM pass porting.

Reviewers: aheejin, sbc100, dschuff

Pull Request: https://github.com/llvm/llvm-project/pull/210224
DeltaFile
+45-13llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp
+15-2llvm/lib/Target/WebAssembly/WebAssembly.h
+2-2llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
+1-1llvm/lib/Target/WebAssembly/WebAssemblyCodeGenPassBuilder.cpp
+1-0llvm/lib/Target/WebAssembly/WebAssemblyPassRegistry.def
+64-185 files

LLVM/project bc95a64flang/lib/Lower ConvertExpr.cpp, llvm/test/CodeGen/AMDGPU/GlobalISel legalize-load-global.mir legalize-load-local.mir

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+9,398-9,218llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-global.mir
+6,993-6,921llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-local.mir
+13,068-0llvm/test/CodeGen/RISCV/GlobalISel/atomicrmw-max-min-umax-umin.ll
+5,803-5,808llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-private.mir
+0-7,750flang/lib/Lower/ConvertExpr.cpp
+3,842-3,722llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-constant.mir
+39,104-33,4194,011 files not shown
+310,332-193,6244,017 files

LLVM/project 116dd2bllvm/lib/Target/WebAssembly WebAssemblyMemIntrinsicResults.cpp WebAssembly.h

[WebAssembly] Port WebAssemblyMemIntrinsicResultsPass

Standard NewPM pass porting.

Reviewers: dschuff, aheejin, sbc100

Pull Request: https://github.com/llvm/llvm-project/pull/209959
DeltaFile
+81-30llvm/lib/Target/WebAssembly/WebAssemblyMemIntrinsicResults.cpp
+10-2llvm/lib/Target/WebAssembly/WebAssembly.h
+2-2llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
+1-1llvm/lib/Target/WebAssembly/WebAssemblyCodeGenPassBuilder.cpp
+1-0llvm/lib/Target/WebAssembly/WebAssemblyPassRegistry.def
+95-355 files

LLVM/project 63b5d9c.github/workflows release-sources.yml

workflows/release-sources: Add missing checkout for composite action (#211079)

We need to explicitly checkout
.github/workflows/validate-release-version if we are going to use it.

(cherry picked from commit f2a284b4732b2b568315d5b8f2e36a96eed23f8a)
DeltaFile
+6-0.github/workflows/release-sources.yml
+6-01 files

LLVM/project 0f90a18llvm/test/CodeGen/AMDGPU/GlobalISel legalize-load-global.mir legalize-load-local.mir, llvm/test/CodeGen/RISCV/GlobalISel atomicrmw-max-min-umax-umin.ll

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+9,398-9,218llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-global.mir
+6,993-6,921llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-local.mir
+13,068-0llvm/test/CodeGen/RISCV/GlobalISel/atomicrmw-max-min-umax-umin.ll
+5,803-5,808llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-private.mir
+3,842-3,722llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-constant.mir
+2,196-5,244llvm/test/CodeGen/AMDGPU/GlobalISel/insertelement.i8.ll
+41,300-30,9133,977 files not shown
+309,468-184,0573,983 files

LLVM/project 192d880orc-rt/lib/executor Session.cpp

[orc-rt] Add comment to clarify intended control flow. NFC. (#211454)
DeltaFile
+1-0orc-rt/lib/executor/Session.cpp
+1-01 files

LLVM/project 2c8d11eflang/include/flang/Lower IterationSpace.h ConvertExpr.h, flang/include/flang/Optimizer/Builder Factory.h

[flang][NFC] Delete the legacy expression lowering (ConvertExpr.cpp) and its support files (#210873)

The legacy (non-HLFIR) lowering was removed in cc4922b27694 (#196205),
but ConvertExpr.cpp and its ComponentPath/IterationSpace support files
were left behind. Their last callers have since been migrated or removed
(#210385: OpenMP iterator subscripts via genExprValue; #210621: initial
values via ConvertConstant; #210639: unreachable FORALL/WHERE machinery
deleted from Bridge.cpp), so nothing outside these files references them
anymore.

- Delete ConvertExpr.{cpp,h}, ComponentPath.{cpp,h},
IterationSpace.{cpp,h}. (createArrayLoads/createArrayMergeStores are
declared in IterationSpace.h but were defined in ConvertExpr.cpp - they
die together; no external callers.)
- CMakeLists.txt: drop the three sources and the ConvertExpr.h /
IterationSpace.h PRECOMPILE_HEADERS entries.
- Remove stale includes (verified symbol-free): IO.cpp,
OpenMP/OpenMP.cpp, DirectivesCommon.h (ConvertExpr.h); Allocatable.cpp,
Support/Utils.cpp (IterationSpace.h).

    [17 lines not shown]
DeltaFile
+0-7,750flang/lib/Lower/ConvertExpr.cpp
+0-563flang/include/flang/Lower/IterationSpace.h
+0-377flang/lib/Lower/IterationSpace.cpp
+0-233flang/include/flang/Lower/ConvertExpr.h
+0-108flang/include/flang/Optimizer/Builder/Factory.h
+0-104flang/lib/Optimizer/Builder/FIRBuilder.cpp
+0-9,13517 files not shown
+0-9,42723 files

LLVM/project 1ededa8clang-tools-extra/clang-tidy add_new_check.py, clang-tools-extra/clang-tidy/tool check_alphabetical_order_test.py check_alphabetical_order.py

[clang-tidy][docs] Generate static analyzer check docs as Markdown

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 #{{rename-pr}} , 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. I paged through all the generated HTML looking for migration artifacts, and all of the differences I could find appear to be formatting error corrections. Please spot check my work and approve if it looks good. You can use the HTML links below to confirm it renders properly.

-----

Before/after validation links:
| Source file | Before HTML | After HTML |
| --- | --- | --- |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.BitwiseShift.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/core.BitwiseShift.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.BitwiseShift.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.CallAndMessage.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/core.CallAndMessage.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.CallAndMessage.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.DivideZero.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/core.DivideZero.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.DivideZero.html) |

    [95 lines not shown]
DeltaFile
+619-606clang-tools-extra/docs/clang-tidy/checks/list.md
+50-52clang-tools-extra/clang-tidy/add_new_check.py
+37-49clang-tools-extra/clang-tidy/tool/check_alphabetical_order_test.py
+38-22clang-tools-extra/docs/clang-tidy/checks/gen-static-analyzer-docs.py
+26-24clang-tools-extra/clang-tidy/tool/check_alphabetical_order.py
+7-16clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.SetgidSetuidOrder.md
+777-769119 files not shown
+1,689-1,275125 files

LLVM/project 446eb43clang/lib/CodeGen CGOpenMPRuntime.cpp, llvm/include/llvm/Frontend/OpenMP OMPIRBuilder.h

[llvm][OpenMP] Use vector for number of threads and teams
DeltaFile
+13-7llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
+11-8llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
+6-3clang/lib/CodeGen/CGOpenMPRuntime.cpp
+4-4llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
+4-4mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+38-265 files

LLVM/project 270e2abllvm/lib/Target/RISCV RISCVTargetMachine.cpp, llvm/test/CodeGen/RISCV O3-pipeline.ll

Revert "Revert "[RISCV] Run EarlyMachineLICM before VLOptimizer to hoist cons…"

This reverts commit acfaabebcfd10d4dbabeb54cf0c60509648fb82f.
DeltaFile
+119-0llvm/test/CodeGen/RISCV/rvv/vl-opt-licm.ll
+16-16llvm/test/CodeGen/RISCV/rvv/vxrm-insert-out-of-loop.ll
+9-1llvm/lib/Target/RISCV/RISCVTargetMachine.cpp
+5-4llvm/test/CodeGen/RISCV/rvv/vsetvli-insert.ll
+4-0llvm/test/CodeGen/RISCV/O3-pipeline.ll
+153-215 files

LLVM/project 0745688llvm/include/llvm/ProfileData SampleProfReader.h SampleProf.h, llvm/lib/ProfileData SampleProfWriter.cpp SampleProfReader.cpp

[SampleProfile] Support Eytzinger layout in SecNameTable (#211027)

This patch supports writing SecNameTable in Eytzinger layout for
ExtBinary MD5 sample profiles via a hidden command-line option,
-sample-profile-write-eytzinger-name-tables.

Specifically, this patch partitions function GUIDs in SecNameTable into
three mutually exclusive sets:

- CSKeys: Those GUIDs used as keys in context-sensitive SecLBRProfile.
- FlatKeys: Those GUIDs used as keys in flat SecLBRProfile.
- Inlinees: Those GUIDs mentioned in SecLBRProfile but not as keys.

Each set is constructed as an independent Eytzinger array using
llvm::EytzingerTable.  The section starts out with the three element
counts followed by the three successive spans.

A subsequent patch will add FuncOffsetTable as arrays parallel to
CSKeys and FlatKeys.  It will introduce binary search into the

    [5 lines not shown]
DeltaFile
+101-0llvm/lib/ProfileData/SampleProfWriter.cpp
+55-3llvm/lib/ProfileData/SampleProfReader.cpp
+22-1llvm/include/llvm/ProfileData/SampleProfReader.h
+14-0llvm/unittests/ProfileData/SampleProfTest.cpp
+6-1llvm/include/llvm/ProfileData/SampleProf.h
+2-0llvm/include/llvm/ProfileData/SampleProfWriter.h
+200-56 files

LLVM/project a812f33llvm/lib/Transforms/Scalar LoopVersioningLICM.cpp, llvm/test/Transforms/LoopVersioningLICM pseudoprobe.ll

[LoopVersioningLICM] Do not let llvm.pseudoprobe block loop versioning (#209684)

`LoopVersioningLICM::instructionSafeForVersioning()` rejects any call
that is
not proven to not access memory. `llvm.pseudoprobe` is declared
`IntrInaccessibleMemOnly` (so the optimizer will not delete or sink it),
so
`AA->doesNotAccessMemory()` returns false and the probe is treated as an
unsafe
call site. This disables loop-versioning LICM for essentially every hot
loop
in a sample-based / CSSPGO profile-guided build (in the presence of
`-fpseudo-probe-for-profiling`), since a pseudo probe is inserted on
every basic block.

Pseudo probes are pure profiling placeholders with no observable effect
on the
loop's memory accesses, so skip them in the call-safety check.

RFC:
https://discourse.llvm.org/t/csspgo-unblocking-pseudo-probe-safe-optimizations/90946
DeltaFile
+74-0llvm/test/Transforms/LoopVersioningLICM/pseudoprobe.ll
+11-1llvm/lib/Transforms/Scalar/LoopVersioningLICM.cpp
+85-12 files

LLVM/project 471a1fbclang-tools-extra/clang-tidy add_new_check.py, clang-tools-extra/clang-tidy/tool check_alphabetical_order_test.py check_alphabetical_order.py

[clang-tidy][docs] Generate static analyzer check docs as Markdown

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 #{{rename-pr}} , 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. I paged through all the generated HTML looking for migration artifacts, and all of the differences I could find appear to be formatting error corrections. Please spot check my work and approve if it looks good. You can use the HTML links below to confirm it renders properly.

-----

Before/after validation links:
| Source file | Before HTML | After HTML |
| --- | --- | --- |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.BitwiseShift.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/core.BitwiseShift.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.BitwiseShift.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.CallAndMessage.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/core.CallAndMessage.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.CallAndMessage.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.DivideZero.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/core.DivideZero.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.DivideZero.html) |

    [95 lines not shown]
DeltaFile
+619-606clang-tools-extra/docs/clang-tidy/checks/list.md
+48-47clang-tools-extra/clang-tidy/add_new_check.py
+29-33clang-tools-extra/clang-tidy/tool/check_alphabetical_order_test.py
+35-22clang-tools-extra/docs/clang-tidy/checks/gen-static-analyzer-docs.py
+26-24clang-tools-extra/clang-tidy/tool/check_alphabetical_order.py
+7-16clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.SetgidSetuidOrder.md
+764-748119 files not shown
+1,676-1,254125 files

LLVM/project 4620ec1clang-tools-extra/docs/clang-tidy/checks list.md list.rst, clang-tools-extra/docs/clang-tidy/checks/clang-analyzer security.SetgidSetuidOrder.rst security.SetgidSetuidOrder.md

[clang-tidy][docs] Rename static analyzer check docs to Markdown

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
+612-0clang-tools-extra/docs/clang-tidy/checks/list.md
+0-612clang-tools-extra/docs/clang-tidy/checks/list.rst
+0-19clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.SetgidSetuidOrder.rst
+19-0clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.SetgidSetuidOrder.md
+0-17clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.PutenvStackArray.rst
+17-0clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.PutenvStackArray.md
+648-648190 files not shown
+1,899-1,899196 files

LLVM/project 1259fa5clang-tools-extra/clang-tidy add_new_check.py, clang-tools-extra/clang-tidy/tool check_alphabetical_order_test.py check_alphabetical_order.py

[clang-tidy][docs] Generate static analyzer check docs as Markdown

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 #{{rename-pr}} , 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. I paged through all the generated HTML looking for migration artifacts, and all of the differences I could find appear to be formatting error corrections. Please spot check my work and approve if it looks good. You can use the HTML links below to confirm it renders properly.

-----

Before/after validation links:
| Source file | Before HTML | After HTML |
| --- | --- | --- |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.BitwiseShift.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/core.BitwiseShift.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.BitwiseShift.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.CallAndMessage.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/core.CallAndMessage.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.CallAndMessage.html) |
| `clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.DivideZero.md` | [before](https://llvm.org/docs/clang-tidy/checks/clang-analyzer/core.DivideZero.html) | [after](https://llvmdocs.staging.reidkleckner.dev/clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/core.DivideZero.html) |

    [95 lines not shown]
DeltaFile
+622-606clang-tools-extra/docs/clang-tidy/checks/list.md
+56-56clang-tools-extra/clang-tidy/add_new_check.py
+29-33clang-tools-extra/clang-tidy/tool/check_alphabetical_order_test.py
+35-22clang-tools-extra/docs/clang-tidy/checks/gen-static-analyzer-docs.py
+26-24clang-tools-extra/clang-tidy/tool/check_alphabetical_order.py
+7-16clang-tools-extra/docs/clang-tidy/checks/clang-analyzer/security.SetgidSetuidOrder.md
+775-757119 files not shown
+1,687-1,263125 files

LLVM/project 48f1a20llvm/docs/Frontend PerformanceTips.md, llvm/include/llvm/Support GenericLoopInfo.h GenericLoopInfoImpl.h

[LoopInfo] Derive Loop::contains(BlockT*) from the block-to-loop map (#207613)

Each Loop stored its blocks twice: the Blocks vector and a DenseBlockSet
used only for O(1) contains(BlockT *). Block lists are inclusive, so building
LoopInfo inserted every block into that set once per enclosing loop --
an O(blocks * depth) cost.

Drop DenseBlockSet and answer contains(BlockT *) from the innermost loop
in LoopInfoBase's block-number-indexed map. This removes the per-build
set maintenance and shrinks sizeof(Loop) from 160 to 72 bytes. Each Loop
keeps a back-pointer to its LoopInfo for the lookup; contains() stays
total for a block from another function (e.g. a global's use).

Note: A pass restructuring the loop nest must not rely on
`contains(BlockT *)` while the block lists and the map are transiently
out of sync, and should scan getBlocks() instead (as FixIrreducible and
LoopSimplifyCFG do). LoopInfoBase::verify() checks the block lists
rather than contains() for the same reason.

Aided by Claude Opus 4.8
DeltaFile
+52-29llvm/include/llvm/Support/GenericLoopInfo.h
+25-23llvm/include/llvm/Support/GenericLoopInfoImpl.h
+6-2llvm/lib/Transforms/Utils/FixIrreducible.cpp
+4-0llvm/docs/Frontend/PerformanceTips.md
+0-1llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp
+87-555 files

LLVM/project eb05d26offload/libomptarget interface.cpp

[Offload][OpenMP] Skip RPC callback registration when plugin has no devices (#211447)

`__tgt_register_rpc_callback` unconditionally called
`Plugin::getRPCServer()` which asserts if the RPC server pointer is
null. When a plugin is initialized but its RPC server has not been
created (e.g., `NumDevices == 0` in `GenericPluginTy::init()`), this
triggers a crash.

Rather than introducing a nullable accessor, guard the call by also
checking that the plugin has at least one device. A zero-device plugin
has no RPC server to register callbacks with, so the extra check is both
correct and sufficient.

Suggested by @jhuber6 in the review of the previous attempt (#210215).
DeltaFile
+1-1offload/libomptarget/interface.cpp
+1-11 files

LLVM/project 0ddaf31clang/docs ClangFormatStyleOptions.md ClangFormat.md, clang/docs/tools dump_format_style.py dump_format_help.py

[docs][clang-format] Migrate generated clang-format docs to markdown

The challenge here is that the documentation is generated from Doxygen
comments in headers, `Format.h` and `IncludeStyle.h`.

First, the generator was updated to generate markdown constructs, and
then the Doxygen comments were also modified to use markdown constructs.
Mostly this means using single backticks instead of double backticks,
which is the Doxygen-native way of expressing code font blocks anyway,
so that's good.

To validate, I built the Sphinx docs and the doxygen, and I confirmed
that the generator script is idempotent, meaning it doesn't change the
markdown output. When I add a new option to clang-format, it shows up in
the help text block, so it works.

Before/after validation links:
| Source file | Before HTML | After HTML |
| --- | --- | --- |

    [4 lines not shown]
DeltaFile
+5,572-5,811clang/docs/ClangFormatStyleOptions.md
+396-395clang/include/clang/Format/Format.h
+236-259clang/docs/ClangFormat.md
+87-27clang/docs/tools/dump_format_style.py
+34-33clang/include/clang/Tooling/Inclusions/IncludeStyle.h
+3-11clang/docs/tools/dump_format_help.py
+6,328-6,5366 files

LLVM/project 647a5fcllvm/include/llvm/CodeGen MachineInstr.h, llvm/lib/CodeGen MachineInstr.cpp

[CodeGen] Mark LIFETIME_START and LIFETIME_END as not safe to move (#211179)

PR #210028 added a run of EarlyMachineLICM before StackColoring removed
LIFETIME_START/LIFETIME_END markers, and it ended up hoisting them which
led to miscompiles. This marks them as not safe to move in
`MachineInstr::isSafeToMove`.

---------

Co-authored-by: Matt Arsenault <arsenm2 at gmail.com>
DeltaFile
+42-0llvm/test/CodeGen/RISCV/lifetime-licm.mir
+1-6llvm/lib/CodeGen/MachineInstr.cpp
+1-0llvm/include/llvm/CodeGen/MachineInstr.h
+44-63 files

LLVM/project 580604fllvm/lib/Target/X86 X86ISelDAGToDAG.cpp, llvm/test/CodeGen/X86 pr51707.ll lea-opt-cse4.ll

[X86] Reuse already-materialized values when forming LEAs (#210739)

For code like

``` cpp
int f(int &a, const int &b) {
    a += b + 17;
    return a + b;
}
```

the x86 backend emitted three LEAs, rematerializing `a+b` instead of
reusing the value it had just computed and stored:

``` asm
leal    (%rdi,%rsi), %eax        # a+b   (recomputed)
leal    17(%rdi,%rsi), %ecx      # a+b+17  (stored)
movl    %ecx, (%rdx)
leal    17(%rsi,%rax), %eax      # (a+b)+b+17

    [68 lines not shown]
DeltaFile
+251-0llvm/test/CodeGen/X86/pr51707.ll
+101-5llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
+22-31llvm/test/CodeGen/X86/lea-opt-cse4.ll
+12-18llvm/test/CodeGen/X86/lea-recursion.ll
+11-18llvm/test/CodeGen/X86/lea-opt-cse2.ll
+3-10llvm/test/CodeGen/X86/lea-opt-cse1.ll
+400-826 files

LLVM/project 5efe31fllvm/lib/Analysis BranchProbabilityInfo.cpp

[Analysis][NFC] Remove redundant include SCCIterator.h from BranchProbabilityInfo (#211259)

It becomes redundant after 35d69e3fe344.
DeltaFile
+0-1llvm/lib/Analysis/BranchProbabilityInfo.cpp
+0-11 files