LLVM/project bfd04a8llvm/docs/CommandGuide index.rst, llvm/docs/GlobalISel index.rst Pipeline.rst

[docs] Enforce unambiguous toctree in llvm/docs

It seems like using a non-`hidden` `toctree` for page navigation is a
bit of a trap, in that every doc must have a single unique path through
the global toctree to the root doc, and it is very easy to end up with
multiple.

This patch tries to address the warnings (actually infos, hence why it
does not fail the build) in llvm/docs/, namely:

  $ sphinx-build -b html -jauto llvm/docs/ /tmp/sphinx-out
  checking consistency...
  llvm/docs/AMDGPUDwarfExtensionAllowLocationDescriptionOnTheDwarfExpressionStack/AMDGPUDwarfExtensionAllowLocationDescriptionOnTheDwarfExpressionStack.md: document is referenced in multiple toctrees: ['UserGuides', 'AMDGPUUsage'], selecting: UserGuides <- AMDGPUDwarfExtensionAllowLocationDescriptionOnTheDwarfExpressionStack/AMDGPUDwarfExtensionAllowLocationDescriptionOnTheDwarfExpressionStack
  llvm/docs/AMDGPUDwarfExtensionsForHeterogeneousDebugging.rst: document is referenced in multiple toctrees: ['UserGuides', 'AMDGPUUsage'], selecting: UserGuides <- AMDGPUDwarfExtensionsForHeterogeneousDebugging
  llvm/docs/CommandGuide/llvm-reduce.rst: document is referenced in multiple toctrees: ['CommandGuide/index', 'CommandGuide/index', 'Reference'], selecting: Reference <- CommandGuide/llvm-reduce
  llvm/docs/GitHub.rst: document is referenced in multiple toctrees: ['GettingInvolved', 'UserGuides'], selecting: UserGuides <- GitHub
  llvm/docs/GlobalISel/IRTranslator.rst: document is referenced in multiple toctrees: ['GlobalISel/index', 'GlobalISel/Pipeline'], selecting: GlobalISel/index <- GlobalISel/IRTranslator
  llvm/docs/GlobalISel/InstructionSelect.rst: document is referenced in multiple toctrees: ['GlobalISel/index', 'GlobalISel/Pipeline'], selecting: GlobalISel/index <- GlobalISel/InstructionSelect
  llvm/docs/GlobalISel/Legalizer.rst: document is referenced in multiple toctrees: ['GlobalISel/index', 'GlobalISel/Pipeline'], selecting: GlobalISel/index <- GlobalISel/Legalizer

    [35 lines not shown]
DeltaFile
+88-39llvm/docs/CommandGuide/index.rst
+30-21llvm/docs/GlobalISel/index.rst
+50-0utils/docs/llvm_sphinx/ext/checks.py
+21-21llvm/tools/llvm-debuginfo-analyzer/README.md
+0-14llvm/docs/tutorial/MyFirstLanguageFrontend/index.rst
+0-8llvm/docs/GlobalISel/Pipeline.rst
+189-1035 files not shown
+191-11211 files

LLVM/project e52c3b8llvm CMakeLists.txt

Bump minimum required sphinx Python to 3.8

There seems to be de-facto use of at least 3.6 in docs, namely:

* Use of pathlib (3.4) in various places
* Format f-strings (3.6) and used in clang/docs/ghlinks.py

I don't see a strong reason to maintain the divide in minimum version
between test/docs, especially considering the "FIXME" indicating
the 3.0 lower bound was just a guess to begin with.

Change-Id: I11e00295ae0a13ec0f1c5cefbb2fdd2db272b152
DeltaFile
+1-1llvm/CMakeLists.txt
+1-11 files

LLVM/project 9992db9

[docs] Add BOLTAArch64OptimizationStatus to toctree

Building docs-bolt-html fails with:

  Warning, treated as error:
  /home/slinder1/llvm-project/scratch/bolt/docs/BOLTAArch64OptimizationStatus.rst:document isn't included in any toctree

Just add the orphan document to the toctree in the index to silence
this. If there is a better parent it can be moved somewhere else in the
tree.

Change-Id: I1d26d96d5485d97d29231da89f8c8408b375c41f
DeltaFile
+0-00 files

LLVM/project 4758752clang/docs ghlinks.py conf.py, lldb/docs conf.py

[docs] Create utils/docs

llvm-project is home to many sphinx documentation sites, each with
configuration quirks and bespoke extentions.

The sphinx config model makes sharing code somewhat difficult. There
are options like sphinx-multiproject, but some of our docs builds are
out of the source tree while some are done out of the binary tree, so
the multiproject configuration itself would need to be generated. It
also would impose more uniformity around extensions than required.

This change instead creates a python package at utils/docs/llvm_sphinx
and makes it available to all sphinx-build processes via PYTHONPATH.
Each conf.py does not modify its own sys.path because not all builds are
out of the source tree, so there isn't a stable relative path to use to
refer to the utils/docs/ directory.

Type checking via pyright in new package is pinned to being python 3.8
compatible.

    [29 lines not shown]
DeltaFile
+0-273clang/docs/ghlinks.py
+151-0utils/docs/llvm_sphinx/ext/ghlinks/__init__.py
+72-0utils/docs/llvm_sphinx/__init__.py
+6-38lldb/docs/conf.py
+5-38llvm/docs/conf.py
+10-30clang/docs/conf.py
+244-37922 files not shown
+416-64028 files

LLVM/project a193765bolt/docs index.rst

[docs] Add BOLTAArch64OptimizationStatus to toctree (#203964)

Building docs-bolt-html fails with:

  Warning, treated as error:

  /home/slinder1/llvm-project/scratch/bolt/docs/BOLTAArch64OptimizationStatus.rst:document
isn't included in any toctree

Just add the orphan document to the toctree in the index to silence
this. If there is a better parent it can be moved somewhere else in the
tree.

Change-Id: I1d26d96d5485d97d29231da89f8c8408b375c41f
DeltaFile
+5-0bolt/docs/index.rst
+5-01 files

LLVM/project 1e9b073llvm/lib/CodeGen BranchFolding.cpp

update

Created using spr 1.3.7
DeltaFile
+5-4llvm/lib/CodeGen/BranchFolding.cpp
+5-41 files

LLVM/project 0b5fd07llvm/lib/Target/AMDGPU GCNVOPDUtils.cpp, llvm/test/CodeGen/AMDGPU load-constant-i1.ll vector_shuffle.packed.ll

[AMDGPU][VOPD] Limit VOPDPairing from reaching over load dependencies (#201930)

This patch adds a test to prohibit VOPDPairing from attempting to fuse
two instructions which may force the serialisation of loads which would
otherwise overlap.

The current VOPD pairing algorithm greedily iterates over all fusible
pairs of instructions, regardless of how distant they may be in the
tentative schedule.

The clustering edges introduced by the mutation may disrupt scheduling
decisions informed by stalls and latency made earlier, as demonstrated
by the lit test introduced in #201943: VOPD pairing may fuse part of an
address computation for a subsequent load with a use of an earlier load,
forcing the earlier load to complete and get consumed before dispatching
the subsequent load, rather than pipelining the loads.
DeltaFile
+166-147llvm/test/CodeGen/AMDGPU/load-constant-i1.ll
+96-94llvm/test/CodeGen/AMDGPU/vector_shuffle.packed.ll
+47-42llvm/test/CodeGen/AMDGPU/fabs.bf16.ll
+42-46llvm/test/CodeGen/AMDGPU/GlobalISel/load-uniform-in-vgpr.ll
+83-0llvm/lib/Target/AMDGPU/GCNVOPDUtils.cpp
+30-34llvm/test/CodeGen/AMDGPU/packed-fp64.ll
+464-36323 files not shown
+685-59329 files

LLVM/project 074023dclang/include/clang/Basic DiagnosticSemaKinds.td, clang/lib/Sema SemaOpenMP.cpp

[OpenMP] Fix crash with extern reference and diagnose loop variable reuse in collapsed loops. (#203252)

Fixes a null pointer dereference when analyzing `OpenMP` collapsed loops
where the loop bound is an extern reference type and adds a diagnostic
to detect when an inner loop reuses the outer loop's induction variable
in a collapsed loop nest.
 
See crash here: https://godbolt.org/z/4f5rM1Kf8.
DeltaFile
+136-0clang/test/OpenMP/collapse_extern_ref_crash.cpp
+70-24clang/lib/Sema/SemaOpenMP.cpp
+2-0clang/include/clang/Basic/DiagnosticSemaKinds.td
+208-243 files

LLVM/project cbbb07fclang/lib/CIR/Dialect/Transforms/TargetLowering CIRABIRewriteContext.cpp, clang/test/CIR/Transforms/abi-lowering expand-struct-arg.cir

[CIR] Handle DCE'd spill in Expand arg lowering

The Expand argument lowering assumed the struct block argument always has
exactly one use, the CIRGen parameter spill.  DCE running before the
calling-convention pass can eliminate that spill and leave the block
argument unused, so the hasOneUse() assert would fire.  Tolerate the
zero-use case: still flatten the signature into scalar field arguments,
but emit no field stores when there is no spill, and therefore no
destination alloca.

Also erase the original whole-struct spill before retyping the block
argument so the store is never left feeding a type-mismatched value, and
fold the block-argument insertion into the field-store loop.
DeltaFile
+39-20clang/lib/CIR/Dialect/Transforms/TargetLowering/CIRABIRewriteContext.cpp
+14-0clang/test/CIR/Transforms/abi-lowering/expand-struct-arg.cir
+53-202 files

LLVM/project d161ab0llvm/docs AMDGPUUsage.rst

One more stray reference
DeltaFile
+1-1llvm/docs/AMDGPUUsage.rst
+1-11 files

LLVM/project fd549e0llvm/test/CodeGen/AArch64 misched-fusion-arith-cbz.mir misched-fusion-arith-bcc.mir

[AArch64] Split misched-fusion.ll per feature(NFC) (#203576)

This patch splits misched-fusion.ll into 2 tests one for each feature:
arith+bcc and arith+cbz. As part of the refactor, it increases coverage
by introducing test cases for each possible pair as well as negative
test cases for positive shift operands. The patch also introduces a new
structured dual testing strategy - one .ll and one .mir test for each
feature, to provide codegen and misched coverage for asserts-off and
asserts-on builds.

Plus apple-m5 runlines.
DeltaFile
+1,569-0llvm/test/CodeGen/AArch64/misched-fusion-arith-cbz.mir
+695-0llvm/test/CodeGen/AArch64/misched-fusion-arith-bcc.mir
+689-0llvm/test/CodeGen/AArch64/misched-fusion-arith-cbz.ll
+243-0llvm/test/CodeGen/AArch64/misched-fusion-arith-bcc.ll
+0-48llvm/test/CodeGen/AArch64/misched-fusion.ll
+3,196-485 files

LLVM/project 47287bdflang/lib/Semantics check-omp-structure.h

[flang][OpenMP] Remove unused variable 'noWaitClauseNotAllowedSet', NFC
DeltaFile
+0-11flang/lib/Semantics/check-omp-structure.h
+0-111 files

LLVM/project a76b875llvm/lib/Target/AMDGPU SIInstructions.td SIModeRegister.cpp, llvm/test/CodeGen/AMDGPU llvm.fptrunc.round.ll

AMDGPU: Add SALU support for llvm.fptrunc.round f32 to f16 (#203406)
DeltaFile
+697-1llvm/test/CodeGen/AMDGPU/llvm.fptrunc.round.ll
+12-0llvm/lib/Target/AMDGPU/SIInstructions.td
+8-1llvm/lib/Target/AMDGPU/SIModeRegister.cpp
+717-23 files

LLVM/project 47bf896llvm/docs/CommandGuide index.rst, llvm/docs/GlobalISel index.rst Pipeline.rst

[docs] Enforce unambiguous toctree in llvm/docs

It seems like using a non-`hidden` `toctree` for page navigation is a
bit of a trap, in that every doc must have a single unique path through
the global toctree to the root doc, and it is very easy to end up with
multiple.

This patch tries to address the warnings (actually infos, hence why it
does not fail the build) in llvm/docs/, namely:

  $ sphinx-build -b html -jauto llvm/docs/ /tmp/sphinx-out
  checking consistency...
  llvm/docs/AMDGPUDwarfExtensionAllowLocationDescriptionOnTheDwarfExpressionStack/AMDGPUDwarfExtensionAllowLocationDescriptionOnTheDwarfExpressionStack.md: document is referenced in multiple toctrees: ['UserGuides', 'AMDGPUUsage'], selecting: UserGuides <- AMDGPUDwarfExtensionAllowLocationDescriptionOnTheDwarfExpressionStack/AMDGPUDwarfExtensionAllowLocationDescriptionOnTheDwarfExpressionStack
  llvm/docs/AMDGPUDwarfExtensionsForHeterogeneousDebugging.rst: document is referenced in multiple toctrees: ['UserGuides', 'AMDGPUUsage'], selecting: UserGuides <- AMDGPUDwarfExtensionsForHeterogeneousDebugging
  llvm/docs/CommandGuide/llvm-reduce.rst: document is referenced in multiple toctrees: ['CommandGuide/index', 'CommandGuide/index', 'Reference'], selecting: Reference <- CommandGuide/llvm-reduce
  llvm/docs/GitHub.rst: document is referenced in multiple toctrees: ['GettingInvolved', 'UserGuides'], selecting: UserGuides <- GitHub
  llvm/docs/GlobalISel/IRTranslator.rst: document is referenced in multiple toctrees: ['GlobalISel/index', 'GlobalISel/Pipeline'], selecting: GlobalISel/index <- GlobalISel/IRTranslator
  llvm/docs/GlobalISel/InstructionSelect.rst: document is referenced in multiple toctrees: ['GlobalISel/index', 'GlobalISel/Pipeline'], selecting: GlobalISel/index <- GlobalISel/InstructionSelect
  llvm/docs/GlobalISel/Legalizer.rst: document is referenced in multiple toctrees: ['GlobalISel/index', 'GlobalISel/Pipeline'], selecting: GlobalISel/index <- GlobalISel/Legalizer

    [35 lines not shown]
DeltaFile
+88-39llvm/docs/CommandGuide/index.rst
+30-21llvm/docs/GlobalISel/index.rst
+50-0utils/docs/llvm_sphinx/ext/checks.py
+21-21llvm/tools/llvm-debuginfo-analyzer/README.md
+0-14llvm/docs/tutorial/MyFirstLanguageFrontend/index.rst
+0-8llvm/docs/GlobalISel/Pipeline.rst
+189-1035 files not shown
+191-11211 files

LLVM/project 2adf7ecclang/docs ghlinks.py conf.py, lldb/docs conf.py

[docs] Create utils/docs

llvm-project is home to many sphinx documentation sites, each with
configuration quirks and bespoke extentions.

The sphinx config model makes sharing code somewhat difficult. There
are options like sphinx-multiproject, but some of our docs builds are
out of the source tree while some are done out of the binary tree, so
the multiproject configuration itself would need to be generated. It
also would impose more uniformity around extensions than required.

This change instead creates a python package at utils/docs/llvm_sphinx
and makes it available to all sphinx-build processes via PYTHONPATH.
Each conf.py does not modify its own sys.path because not all builds are
out of the source tree, so there isn't a stable relative path to use to
refer to the utils/docs/ directory.

Type checking via pyright in new package is pinned to being python 3.8
compatible.

    [29 lines not shown]
DeltaFile
+0-273clang/docs/ghlinks.py
+151-0utils/docs/llvm_sphinx/ext/ghlinks/__init__.py
+72-0utils/docs/llvm_sphinx/__init__.py
+6-39lldb/docs/conf.py
+5-38llvm/docs/conf.py
+10-30clang/docs/conf.py
+244-38022 files not shown
+416-64128 files

LLVM/project e1c14c7clang/lib/CIR/CodeGen CIRGenBuilder.cpp, clang/test/CIR/CodeGen constexpr-ptr-offset.cpp

[CIR] Handle scalar-type element GEP in GlobalView offset computation

computeGlobalViewIndicesFromFlatOffset navigated into array and record
types to convert a flat byte offset into structured GEP indices, but hit
llvm_unreachable("unexpected type") when the pointee was a scalar integer
(e.g. !s8i for const char *).

This happens when a constexpr struct has a pointer field initialized to a
global string-literal address plus a non-zero byte offset.  Classic
CodeGen emits getelementptr i8, ptr @str, i64 N; CIR represents it as a
GlobalViewAttr with index [N].  getAddrOfConstantStringFromLiteral builds
the GlobalViewAttr with a ptr-to-char pointee (not ptr-to-array), so
applyOffset hands a char type to the offset navigator.

Add a cir::IntType case that computes offset / sizeof(element) as the flat
GEP index, mirroring the array-element logic, in both
computeGlobalViewIndicesFromFlatOffset and
computeOffsetFromGlobalViewIndices.  llvm_unreachable is kept for
genuinely unexpected types.
DeltaFile
+24-0clang/test/CIR/CodeGen/constexpr-ptr-offset.cpp
+18-4clang/lib/CIR/CodeGen/CIRGenBuilder.cpp
+42-42 files

LLVM/project 11054d2clang/lib/CIR/Lowering LoweringHelpers.cpp, clang/test/CIR/CodeGen const-array-floating-point.c

[CIR] Fix const-array lowering for long double (#203617)

A global array constant of `long double` crashes CIR's lowering to LLVM.
`getZeroInitFromType<APFloat>` in LoweringHelpers seeds a zero-filled vector
for the const-array path but only handled `SingleType`/`DoubleType`, asserting
"only float and double supported" on every other CIR floating-point type.  The
const-array dispatch already routes any `cir::FPTypeInterface` element type into
`getZeroInitFromType<APFloat>`, so `long double` (`x86_fp80`) hit the assert even
though classic codegen lowers it fine.  The SingleSource ieee-copysign2 test
exercises exactly this.

The fix derives the zero from the element type's APFloat semantics via
`cir::FPTypeInterface::getFloatSemantics()`, the same construction `FPAttr::getZero`
uses, which covers float, double, long double, FP128, half, and bfloat.  The test
pins all of those against classic codegen output.
DeltaFile
+30-0clang/test/CIR/CodeGen/const-array-floating-point.c
+2-10clang/lib/CIR/Lowering/LoweringHelpers.cpp
+32-102 files

LLVM/project bca375bllvm/docs AMDGPUUsage.rst

Fix references maybe?
DeltaFile
+2-2llvm/docs/AMDGPUUsage.rst
+2-21 files

LLVM/project 1c07fe8clang/lib/CIR/Dialect/IR CIRDialect.cpp, clang/lib/CIR/Interfaces CIRLoopOpInterface.cpp

[CIR][NFC] Sync ClangIR with MLIR RegionSuccessor changes (#203950)

Sync ClangIR with MLIR RegionSuccessor changes that were introduced in
#203552
DeltaFile
+27-27clang/lib/CIR/Dialect/IR/CIRDialect.cpp
+2-2clang/lib/CIR/Interfaces/CIRLoopOpInterface.cpp
+2-2clang/unittests/CIR/ControlFlowTest.cpp
+31-313 files

LLVM/project c3c915fllvm/include/llvm/Support CommandLine.h, llvm/lib/Support CommandLine.cpp

[Support] Move the command-line Option constructor out of line (#202847)

Move the shared `Option` base constructor from `CommandLine.h` to
`CommandLine.cpp`. Typed `opt`, `list`, and `bits` constructors remain
unchanged; option construction gains one direct non-virtual call and
parsing behavior is unaffected.

A native AArch64 Release `opt` shrinks by 358,576 bytes, with `__text`
down 229,796 bytes and dyld fixups unchanged.

Work towards #202616

AI tool disclosure: Co-authored with OpenAI Codex.
DeltaFile
+2-7llvm/include/llvm/Support/CommandLine.h
+7-0llvm/lib/Support/CommandLine.cpp
+9-72 files

LLVM/project 3fff3e6llvm/docs/CommandGuide index.rst, llvm/docs/GlobalISel index.rst Pipeline.rst

[docs] Enforce unambiguous toctree in llvm/docs

It seems like using a non-`hidden` `toctree` for page navigation is a
bit of a trap, in that every doc must have a single unique path through
the global toctree to the root doc, and it is very easy to end up with
multiple.

This patch tries to address the warnings (actually infos, hence why it
does not fail the build) in llvm/docs/, namely:

  $ sphinx-build -b html -jauto llvm/docs/ /tmp/sphinx-out
  checking consistency...
  llvm/docs/AMDGPUDwarfExtensionAllowLocationDescriptionOnTheDwarfExpressionStack/AMDGPUDwarfExtensionAllowLocationDescriptionOnTheDwarfExpressionStack.md: document is referenced in multiple toctrees: ['UserGuides', 'AMDGPUUsage'], selecting: UserGuides <- AMDGPUDwarfExtensionAllowLocationDescriptionOnTheDwarfExpressionStack/AMDGPUDwarfExtensionAllowLocationDescriptionOnTheDwarfExpressionStack
  llvm/docs/AMDGPUDwarfExtensionsForHeterogeneousDebugging.rst: document is referenced in multiple toctrees: ['UserGuides', 'AMDGPUUsage'], selecting: UserGuides <- AMDGPUDwarfExtensionsForHeterogeneousDebugging
  llvm/docs/CommandGuide/llvm-reduce.rst: document is referenced in multiple toctrees: ['CommandGuide/index', 'CommandGuide/index', 'Reference'], selecting: Reference <- CommandGuide/llvm-reduce
  llvm/docs/GitHub.rst: document is referenced in multiple toctrees: ['GettingInvolved', 'UserGuides'], selecting: UserGuides <- GitHub
  llvm/docs/GlobalISel/IRTranslator.rst: document is referenced in multiple toctrees: ['GlobalISel/index', 'GlobalISel/Pipeline'], selecting: GlobalISel/index <- GlobalISel/IRTranslator
  llvm/docs/GlobalISel/InstructionSelect.rst: document is referenced in multiple toctrees: ['GlobalISel/index', 'GlobalISel/Pipeline'], selecting: GlobalISel/index <- GlobalISel/InstructionSelect
  llvm/docs/GlobalISel/Legalizer.rst: document is referenced in multiple toctrees: ['GlobalISel/index', 'GlobalISel/Pipeline'], selecting: GlobalISel/index <- GlobalISel/Legalizer

    [35 lines not shown]
DeltaFile
+88-39llvm/docs/CommandGuide/index.rst
+30-21llvm/docs/GlobalISel/index.rst
+50-0utils/docs/llvm_sphinx/ext/checks.py
+21-21llvm/tools/llvm-debuginfo-analyzer/README.md
+0-14llvm/docs/tutorial/MyFirstLanguageFrontend/index.rst
+0-8llvm/docs/GlobalISel/Pipeline.rst
+189-1035 files not shown
+191-11211 files

LLVM/project ee24192clang/docs ghlinks.py conf.py, lldb/docs conf.py

[docs] Create utils/docs

llvm-project is home to many sphinx documentation sites, each with
configuration quirks and bespoke extentions.

The sphinx config model makes sharing code somewhat difficult. There
are options like sphinx-multiproject, but some of our docs builds are
out of the source tree while some are done out of the binary tree, so
the multiproject configuration itself would need to be generated. It
also would impose more uniformity around extensions than required.

This change instead creates a python package at utils/docs/llvm_sphinx
and makes it available to all sphinx-build processes via PYTHONPATH.
Each conf.py does not modify its own sys.path because not all builds are
out of the source tree, so there isn't a stable relative path to use to
refer to the utils/docs/ directory.

Type checking via pyright in new package is pinned to being python 3.8
compatible.

    [29 lines not shown]
DeltaFile
+0-273clang/docs/ghlinks.py
+151-0utils/docs/llvm_sphinx/ext/ghlinks/__init__.py
+72-0utils/docs/llvm_sphinx/__init__.py
+6-39lldb/docs/conf.py
+5-38llvm/docs/conf.py
+10-30clang/docs/conf.py
+244-38022 files not shown
+416-64128 files

LLVM/project ad6c8a5llvm CMakeLists.txt

Bump minimum required sphinx Python to 3.8

There seems to be de-facto use of at least 3.6 in docs, namely:

* Use of pathlib (3.4) in various places
* Format f-strings (3.6) and used in clang/docs/ghlinks.py

I don't see a strong reason to maintain the divide in minimum version
between test/docs, especially considering the "FIXME" indicating
the 3.0 lower bound was just a guess to begin with.

Change-Id: I11e00295ae0a13ec0f1c5cefbb2fdd2db272b152
DeltaFile
+1-1llvm/CMakeLists.txt
+1-11 files

LLVM/project df2ccb6bolt/docs index.rst

[docs] Add BOLTAArch64OptimizationStatus to toctree

Building docs-bolt-html fails with:

  Warning, treated as error:
  /home/slinder1/llvm-project/scratch/bolt/docs/BOLTAArch64OptimizationStatus.rst:document isn't included in any toctree

Just add the orphan document to the toctree in the index to silence
this. If there is a better parent it can be moved somewhere else in the
tree.

Change-Id: I1d26d96d5485d97d29231da89f8c8408b375c41f
DeltaFile
+5-0bolt/docs/index.rst
+5-01 files

LLVM/project 96adb80llvm/lib/Target/AArch64 AArch64PerfectShuffle.cpp AArch64PerfectShuffle.h, llvm/utils/PerfectShuffle PerfectShuffle.cpp

[AArch64] Move the perfect-shuffle table out of line (#202617)

Move the generated `PerfectShuffleTable` from `AArch64PerfectShuffle.h`
to one hidden definition in `AArch64PerfectShuffle.cpp`. The three
consumers retain direct indexed access.

On Darwin arm64 Release, `__TEXT,__const` decreases by 26,240 bytes and
stripped AArch64-only `llc` decreases from 48,207,312 to 48,190,816
bytes (-16,496 bytes).

Work towards #202616

AI tool disclosure: Co-authored with OpenAI Codex.
DeltaFile
+6,583-0llvm/lib/Target/AArch64/AArch64PerfectShuffle.cpp
+3-6,571llvm/lib/Target/AArch64/AArch64PerfectShuffle.h
+1-1llvm/utils/PerfectShuffle/PerfectShuffle.cpp
+1-0llvm/utils/gn/secondary/llvm/lib/Target/AArch64/BUILD.gn
+1-0llvm/lib/Target/AArch64/CMakeLists.txt
+6,589-6,5725 files

LLVM/project df0c6bdllvm/lib/Target/X86 X86InstrFragmentsSIMD.td X86InstrSSE.td

[X86] Replace alignedstore/alignedload custom predicates with MinAlignment. NFC (#201980)

These custom alignment predicates predate PatFrag's dedicated
MinAlignment field. Replace them with per-size fragments
(alignedstore128/256/512, alignedload128/256/512) so both SelectionDAG
and GlobalISel get the alignment check without hand-written predicate
code.

Stacked above https://github.com/llvm/llvm-project/pull/197860; stacked
below https://github.com/llvm/llvm-project/pull/197861.
DeltaFile
+38-41llvm/lib/Target/X86/X86InstrFragmentsSIMD.td
+25-25llvm/lib/Target/X86/X86InstrSSE.td
+18-18llvm/lib/Target/X86/X86InstrAVX512.td
+3-3llvm/lib/Target/X86/X86InstrVecCompiler.td
+84-874 files

LLVM/project 89a0869clang-tools-extra/clangd Preamble.h

[clangd] Keep ModuleCache alive for captured preamble AST (#203952)

Since #164889 made ModuleManager's ModuleCache reference non-owning, the
preamble's CompilerInstance solely owns the module buffers so retain the
shared_ptr<ModuleCache> in CapturedASTCtx.

Fixes #203799
DeltaFile
+4-1clang-tools-extra/clangd/Preamble.h
+4-11 files

LLVM/project 671d1e6llvm/include/llvm/IR IntrinsicsAMDGPU.td, llvm/lib/Target/AMDGPU AMDGPUInstructionSelector.cpp SIISelLowering.cpp

[AMDGPU] Guard more intrinsics with target features
DeltaFile
+1-51llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
+0-42llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+0-24llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
+14-0llvm/include/llvm/IR/IntrinsicsAMDGPU.td
+4-4llvm/test/CodeGen/AMDGPU/unsupported-av-store.ll
+4-4llvm/test/CodeGen/AMDGPU/unsupported-av-load.ll
+23-12512 files not shown
+44-14118 files

LLVM/project e407a5bclang/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 5a4af44clang/test/OpenMP target_codegen.cpp target_simd_codegen.cpp, llvm/include/llvm/Frontend/Offloading Utility.h

[OpenMP] Use ext linkage for kernels handles and globals handles keep linkage

Host handles are now emmitted with external linkage to clash if two
kernels with the same name are registered. This could have happen right
now and silently corrupt the program, but it can happen more easily once
we allow users to name their kernels.

In the same patch we make global variable handles retain the linkage of
the global variable, forcing clashes for external ones and continue to
support weak use cases.
DeltaFile
+11-11clang/test/OpenMP/target_codegen.cpp
+8-8clang/test/OpenMP/target_simd_codegen.cpp
+8-8mlir/test/Target/LLVMIR/omptarget-declare-target-llvm-host.mlir
+7-6llvm/lib/Frontend/Offloading/Utility.cpp
+4-4clang/test/OpenMP/target_indirect_codegen.cpp
+4-4llvm/include/llvm/Frontend/Offloading/Utility.h
+42-4114 files not shown
+70-6820 files