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

LLVM/project 97af764clang/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,571-5,811clang/docs/ClangFormatStyleOptions.md
+389-389clang/include/clang/Format/Format.h
+236-259clang/docs/ClangFormat.md
+120-27clang/docs/tools/dump_format_style.py
+34-33clang/include/clang/Tooling/Inclusions/IncludeStyle.h
+3-11clang/docs/tools/dump_format_help.py
+6,353-6,5306 files

LLVM/project 4cd9820clang/docs ClangFormatStyleOptions.rst ClangFormatStyleOptions.md, clang/docs/tools dump_format_style.py

[docs][clang-format] Rename docs to Markdown

Rename ClangFormat and ClangFormatStyleOptions from reStructuredText to Markdown.

Update the clang-format documentation generator scripts and CMake custom targets to point at the renamed .md files so the generated documentation paths remain valid. Keep this changeset limited to rename/path updates; Markdown content cleanup is in the follow-up rewrite changeset.
DeltaFile
+0-8,004clang/docs/ClangFormatStyleOptions.rst
+8,004-0clang/docs/ClangFormatStyleOptions.md
+366-0clang/docs/ClangFormat.md
+0-366clang/docs/ClangFormat.rst
+2-2clang/docs/tools/dump_format_style.py
+2-2clang/test/Format/docs_updated.test
+8,374-8,3742 files not shown
+8,378-8,3788 files

LLVM/project 0b4104eclang-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,261125 files

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

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

LLVM/project 7023522.github/workflows compiler-rt-libc-builtins-tests.yml

[CI] Add precommit CIs to test compiler-rt + LLVM libc integration. (#200196)

Add Pre-commit CI to test compiler-rt builtins with libc to check it
works without issues

Split from #197950

Part of #197824

---------

Co-authored-by: Michael Jones <michaelrj at google.com>
DeltaFile
+54-0.github/workflows/compiler-rt-libc-builtins-tests.yml
+54-01 files

LLVM/project 8bd1cdallvm/lib/Target/WebAssembly WebAssemblyOptimizeLiveIntervals.cpp WebAssembly.h

[WebAssembly] Port WebAssemblyOptimizeLiveIntervalsPass

Standard NewPM pass porting.

Reviewers: dschuff, aheejin, sbc100

Pull Request: https://github.com/llvm/llvm-project/pull/209958
DeltaFile
+30-10llvm/lib/Target/WebAssembly/WebAssemblyOptimizeLiveIntervals.cpp
+10-2llvm/lib/Target/WebAssembly/WebAssembly.h
+2-2llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
+1-1llvm/lib/Target/WebAssembly/WebAssemblyCodeGenPassBuilder.cpp
+2-0llvm/lib/Target/WebAssembly/WebAssemblyPassRegistry.def
+45-155 files

LLVM/project fe1d453llvm/test/CodeGen/AMDGPU llvm.amdgcn.permlane.ll, 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
+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
+3,572-3,745llvm/test/CodeGen/AMDGPU/llvm.amdgcn.permlane.ll
+31,804-34,6582,094 files not shown
+216,567-146,6072,100 files

LLVM/project 21a3890offload/liboffload/API Device.td, offload/liboffload/src OffloadImpl.cpp

[Offload] Add numLanes device info to liboffload (#211380)

This adds `OL_DEVICE_INFO_NUM_LANES` to the Offload API device-info enum
and wires it through `olGetDeviceInfo`.
DeltaFile
+2-1offload/liboffload/src/OffloadImpl.cpp
+1-1offload/plugins-nextgen/cuda/src/rtl.cpp
+1-1offload/plugins-nextgen/amdgpu/src/rtl.cpp
+1-0offload/unittests/OffloadAPI/device/olGetDeviceInfoSize.cpp
+1-0offload/plugins-nextgen/host/src/rtl.cpp
+1-0offload/liboffload/API/Device.td
+7-31 files not shown
+8-37 files

LLVM/project 3b057c3mlir/include/mlir-c Rewrite.h, mlir/lib/Bindings/Python Rewrite.cpp

[mlir-c] Add 1:N TypeConverter conversion and materialization bindings (#208935)

Builds on the source/target materialization C bindings (#208934) to
expose the 1:N dialect-conversion functionality through the MLIR C API.
Continues the buildout of the dialect-conversion C bindings (follows
#206146 and #206161).

Assisted by: Claude
DeltaFile
+808-3mlir/test/CAPI/rewrite.c
+151-14mlir/lib/CAPI/Transforms/Rewrite.cpp
+91-5mlir/include/mlir-c/Rewrite.h
+3-1mlir/lib/Bindings/Python/Rewrite.cpp
+1,053-234 files

LLVM/project f66306allvm/lib/Transforms/Scalar LowerMatrixIntrinsics.cpp, llvm/test/Transforms/LowerMatrixIntrinsics no-tiling-remark.ll double-transpose-asserts-shape.ll

[Matrix] Introduce LoadInfo/StoreInfo to add tiling with remainder support
DeltaFile
+6,436-0llvm/test/Transforms/LowerMatrixIntrinsics/no-tiling-remark.ll
+859-88llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp
+163-0llvm/test/Transforms/LowerMatrixIntrinsics/double-transpose-asserts-shape.ll
+38-35llvm/test/Transforms/LowerMatrixIntrinsics/multiply-fused-loops.ll
+17-0llvm/test/Transforms/LowerMatrixIntrinsics/alias-check-remark.ll
+7,513-1235 files

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

[clang-tidy] Ignore standard tag dispatch types in readability-named-parameter (#208730)

Parameters whose type is a standard tag type (e.g. std::in_place_t,
std::nothrow_t,
iterator tags, lock tags) are used purely for overload resolution and
don't need
a name. This patch skips them.

Added an IgnoredTypes option so users can customize the list. Default
covers 24
standard tag types.

Fixes #208448.

AI Usage: This commit is AI-assisted, reviewed and verified by me.
DeltaFile
+58-0clang-tools-extra/test/clang-tidy/checkers/readability/named-parameter.cpp
+43-1clang-tools-extra/clang-tidy/readability/NamedParameterCheck.cpp
+38-0clang-tools-extra/docs/clang-tidy/checks/readability/named-parameter.rst
+24-0clang-tools-extra/test/clang-tidy/checkers/readability/named-parameter-ignored-types.cpp
+7-0clang-tools-extra/docs/ReleaseNotes.rst
+1-0clang-tools-extra/clang-tidy/readability/NamedParameterCheck.h
+171-16 files

LLVM/project 5fad72bclang/test/Analysis/Scalable/source-edit-generation/Plugins/TestTransformationPlugin TestTransformation.cpp

[SSAF] Fix a stage2 test failure with ASan-instrumented clang

ASan emits a symbol for a static global in
`Analysis/Scalable/source-edit-generation/Plugins/TestTransformationPlugin/TestTransformation.cpp`
that causes link issues in green dragon.

Added `__attribute__((no_sanitize("address")))` to that static global to fix
the test.

rdar://182623740
DeltaFile
+3-0clang/test/Analysis/Scalable/source-edit-generation/Plugins/TestTransformationPlugin/TestTransformation.cpp
+3-01 files

LLVM/project 8eca60bclang-tools-extra/clang-tidy add_new_check.py

[clang-tidy] Generate Markdown documentation for new checks (#210574)

Update `add_new_check.py` to generate MyST Markdown documentation for
new checks.

Part of https://github.com/llvm/llvm-project/issues/201242
DeltaFile
+34-26clang-tools-extra/clang-tidy/add_new_check.py
+34-261 files

LLVM/project e278418llvm/lib/Transforms/Scalar LowerMatrixIntrinsics.cpp, llvm/test/Transforms/LowerMatrixIntrinsics matrix-row-vector-transpose.ll transpose-opts-lifting.ll

[Matrix] Add/remove transposes to row vectors to see them as column vectors

In column-major, add or remove transposes to row vectors in order to see
them as column vector during the rest of the lowering.
DeltaFile
+143-0llvm/test/Transforms/LowerMatrixIntrinsics/matrix-row-vector-transpose.ll
+140-0llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp
+57-46llvm/test/Transforms/LowerMatrixIntrinsics/transpose-opts-lifting.ll
+5-26llvm/test/Transforms/LowerMatrixIntrinsics/dot-product-int-also-fusable-multiply.ll
+5-6llvm/test/Transforms/LowerMatrixIntrinsics/multiply-double.ll
+5-6llvm/test/Transforms/LowerMatrixIntrinsics/multiply-i32.ll
+355-841 files not shown
+360-907 files

LLVM/project f90fca7flang/docs/MeetingNotes/2026 2026-07-01.md

[flang] Add Flang Community Call Notes for July 1 (#207055)
DeltaFile
+76-0flang/docs/MeetingNotes/2026/2026-07-01.md
+76-01 files

LLVM/project 52a6c35llvm/include/llvm/Transforms/Utils MatrixUtils.h, llvm/lib/Transforms/Scalar LowerMatrixIntrinsics.cpp

[Matrix] Split TileSize into per-dimension fields; add remainder loop infrastructure

Split the single TileSize field in TileInfo into TileNumRows,
TileNumInner, and TileNumColumns to enable non-square tiles.

Add CreateTiledLoopsWithRemainder() which generates a full loop
nest covering remainder rows and columns that don't evenly divide
the tile size.

Expose asIndex()/indexType() helpers from MatrixUtils.cpp for use
by callers building the tiled loop bodies.

In LowerMatrixIntrinsics, replace the old TileSize/TileLoopsThreshold
cl::opts with per-dimension TileSizeRows/Inner/Columns and add
TileUseLoops (default false) as the explicit opt-in for loop-based
tiling. Add isTilingLoopProfitable() to gate when loops are
worthwhile vs. inlining the tile computation.
DeltaFile
+2,188-60llvm/test/Transforms/LowerMatrixIntrinsics/multiply-fused-loops-large-matrixes.ll
+37-201llvm/test/Transforms/LowerMatrixIntrinsics/multiply-fused-volatile.ll
+158-20llvm/lib/Transforms/Utils/MatrixUtils.cpp
+55-119llvm/test/Transforms/LowerMatrixIntrinsics/multiply-fused-loops.ll
+87-18llvm/include/llvm/Transforms/Utils/MatrixUtils.h
+69-28llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp
+2,594-4467 files not shown
+2,602-45413 files

LLVM/project 04f124f.github CODEOWNERS

[github] Move BOLT reviewers to team (#211422)

Use https://github.com/orgs/llvm/teams/reviewers-bolt in place of
reviewers list, similar to runtimes.
DeltaFile
+1-3.github/CODEOWNERS
+1-31 files

LLVM/project f5f64f8llvm/test/tools/llvm-profgen/X86 invalid-short-lbr.test, llvm/test/tools/llvm-profgen/X86/Inputs invalid-short-lbr.perfscript

[llvm-profgen] Fix isLBRSample check for 1-deep brstack (#211182)

`isLBRSample` in `checkPerfScriptType` currently don't differentiate the
LBR records in hybrid sample (LBR+Stack) or an LBR sample. It checks
"0x" and "/" for the second pair as a unified way to tell whether the
record is an LBR pair. However, this requires a minimal of 2 pairs of
hybrid LBR samples, otherwise, even a valid LBR record will fail the
`isLBRSample` check. This fix adds an initial check for "0x" and "/" for
the first LBR record so we can handle the case where only 1 pair of LBR
record exists in the hybrid sample.
DeltaFile
+5-4llvm/tools/llvm-profgen/PerfReader.cpp
+3-0llvm/test/tools/llvm-profgen/X86/Inputs/invalid-short-lbr.perfscript
+3-0llvm/test/tools/llvm-profgen/X86/invalid-short-lbr.test
+11-43 files