LLVM/project d1c5983mlir/lib/Dialect/OpenACC/Transforms ACCCGToGPU.cpp, mlir/test/Dialect/OpenACC acc-cg-to-gpu-reduction-array.mlir

[mlir][OpenACC] Support dynamic multi-rank array reductions (#211336)

Example:
```fortran
integer :: r(:,:)
!$acc parallel loop reduction(+:r)
```

In this code, the reduction accumulator has dynamic dimensions and rank
greater than one.

Fix: use runtime dimension sizes to delinearize flattened
array-reduction indices.
DeltaFile
+18-9mlir/test/Dialect/OpenACC/acc-cg-to-gpu-reduction-array.mlir
+6-10mlir/lib/Dialect/OpenACC/Transforms/ACCCGToGPU.cpp
+24-192 files

LLVM/project 9ad7769clang/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,406-5,647clang/docs/ClangFormatStyleOptions.md
+383-383clang/include/clang/Format/Format.h
+236-259clang/docs/ClangFormat.md
+93-27clang/docs/tools/dump_format_style.py
+28-28clang/include/clang/Tooling/Inclusions/IncludeStyle.h
+3-11clang/docs/tools/dump_format_help.py
+6,149-6,3556 files

LLVM/project c1cd7d1flang/lib/Semantics resolve-directives.cpp, flang/test/Semantics/OpenACC acc-routine-generic.f90

[flang][acc] Permit acc routine for specific name (#211386)

After https://github.com/llvm/llvm-project/pull/211269 a generic
interface name is rejected in acc routine. This PR relaxes this by
allowing it when the interface name and the specific are the same - and
attaches the information to the specific itself.
DeltaFile
+15-9flang/lib/Semantics/resolve-directives.cpp
+17-1flang/test/Semantics/OpenACC/acc-routine-generic.f90
+32-102 files

LLVM/project 8240753clang/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,406-5,647clang/docs/ClangFormatStyleOptions.md
+383-383clang/include/clang/Format/Format.h
+236-259clang/docs/ClangFormat.md
+93-27clang/docs/tools/dump_format_style.py
+28-28clang/include/clang/Tooling/Inclusions/IncludeStyle.h
+3-11clang/docs/tools/dump_format_help.py
+6,149-6,3556 files

LLVM/project 18f4280clang/docs ClangFormatStyleOptions.md ClangFormatStyleOptions.rst, clang/docs/tools dump_format_help.py 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
+8,004-0clang/docs/ClangFormatStyleOptions.md
+0-8,004clang/docs/ClangFormatStyleOptions.rst
+0-366clang/docs/ClangFormat.rst
+366-0clang/docs/ClangFormat.md
+2-2clang/docs/tools/dump_format_help.py
+2-2clang/docs/tools/dump_format_style.py
+8,374-8,3741 files not shown
+8,376-8,3767 files

LLVM/project d8d2500mlir/test/CAPI rewrite.c

[mlir-c] Destroy pattern sets in 1:N conversion tests

Same leak fix as the materialization tests on main: these tests freeze
their MlirRewritePatternSet but must still call mlirRewritePatternSetDestroy
on the (moved-from) container, otherwise LeakSanitizer flags it on the
aarch64 HWASan bootstrap bot.
DeltaFile
+8-0mlir/test/CAPI/rewrite.c
+8-01 files

LLVM/project 37879dcmlir/lib/Dialect/OpenACC/Transforms ACCCGToGPU.cpp, mlir/test/Dialect/OpenACC acc-cg-to-gpu-worker-reduction-combine.mlir acc-cg-to-gpu-worker-reduction-combine-mixed-scope.mlir

[mlir][OpenACC] Preserve worker rows when combining reductions (#210804)

Example:
```fortran
!$acc parallel loop gang worker reduction(+:sum)
do j = 1, n
  !$acc loop vector reduction(+:sum)
  do i = 1, n
    sum = sum + a(i, j)
  end do
end do
```

In this code, each worker has a private partial result, but combine
predication previously allowed only ThreadY row zero to contribute.

Fix: keep ThreadY active only for proven atomic worker combines, while
preserving legacy predication or reporting NYI for unsafe combinations.
DeltaFile
+169-23mlir/lib/Dialect/OpenACC/Transforms/ACCCGToGPU.cpp
+187-0mlir/test/Dialect/OpenACC/acc-cg-to-gpu-worker-reduction-combine.mlir
+121-0mlir/test/Dialect/OpenACC/acc-cg-to-gpu-worker-reduction-combine-mixed-scope.mlir
+477-233 files

LLVM/project 176f404mlir/include/mlir-c Rewrite.h, mlir/lib/CAPI/Transforms Rewrite.cpp

cleanup comments
DeltaFile
+2-18mlir/include/mlir-c/Rewrite.h
+0-12mlir/lib/CAPI/Transforms/Rewrite.cpp
+2-302 files

LLVM/project eb131dbmlir/test/CAPI rewrite.c

[mlir-c] Test the failure path of the 1:N type conversion callback

Adds a test that registers a 1:N conversion function returning
MlirTypeConverterConversionStatusFailure. Because it is tried before the
i32 -> (i16, i16) conversion, the failure must abort the whole conversion
(rather than falling back), leaving the IR unchanged -- the behavior that a
plain decline would not produce.
DeltaFile
+87-0mlir/test/CAPI/rewrite.c
+87-01 files

LLVM/project 3e566e7mlir/test/CAPI rewrite.c

[mlir-c] Fix -Wmissing-field-initializers in rewrite.c test

The new matchAndRewrite1ToN field left three existing
MlirConversionPatternCallbacks initializers under-initialized, which
fails the CI build under -Werror=-Wmissing-field-initializers.
DeltaFile
+4-3mlir/test/CAPI/rewrite.c
+4-31 files

LLVM/project 4d331efmlir/include/mlir-c Rewrite.h, mlir/lib/CAPI/Transforms Rewrite.cpp

[mlir-c] Add 1:N TypeConverter conversion and materialization bindings

Builds on the source/target materialization C bindings:

- Target materialization callbacks now receive `originalType` (split from the
  previously-shared source/target callback typedef), exposing a documented C++
  capability that was otherwise unreachable from C.
- 1:N type conversion: `mlirTypeConverterAdd1ToNConversion` plus an opaque
  results accumulator (`MlirTypeConverterConversionResults` /
  `mlirTypeConverterConversionResultsAppend`). A declining callback's appended
  types are rolled back so the driver's "try the next conversion" invariant
  holds.
- 1:N target materialization: `mlirTypeConverterAdd1ToNTargetMaterialization`,
  whose callback fills a caller-allocated `outputs` buffer. A success that
  leaves any output null is treated as a decline rather than handing the driver
  a null-containing result.
- `mlirConversionPatternRewriterReplaceOpWithMultiple` for 1:N value
  replacement, which can drive a source materialization with nInputs > 1.
- An optional `matchAndRewrite1ToN` callback on `MlirConversionPatternCallbacks`

    [9 lines not shown]
DeltaFile
+710-1mlir/test/CAPI/rewrite.c
+163-14mlir/lib/CAPI/Transforms/Rewrite.cpp
+107-5mlir/include/mlir-c/Rewrite.h
+980-203 files

LLVM/project f58638amlir/test/CAPI rewrite.c

pre-increment
DeltaFile
+5-5mlir/test/CAPI/rewrite.c
+5-51 files

LLVM/project 84f918emlir/lib/Bindings/Python Rewrite.cpp

[mlir-c] Value-initialize MlirConversionPatternCallbacks in Python bindings

The Python conversion-pattern binding left the struct default-initialized,
so the newly-added optional matchAndRewrite1ToN field held an indeterminate
pointer. The driver's null check then read garbage and jumped into it,
segfaulting mlir/test/python/rewrite.py. Value-initialize the struct so
optional callbacks default to null.
DeltaFile
+3-1mlir/lib/Bindings/Python/Rewrite.cpp
+3-11 files

LLVM/project 46a493bllvm/include/llvm/IR Instruction.h, llvm/lib/IR Instruction.cpp

[MemProf] Fix memprof metadata propagation issue (#211373)

Fixes a few places where optimizations were dropping memprof related
metadata when creating new calls. Adds a new facility that can be used
to propagate profile and debug metadata, and employs that in the passes
that were manually specifying just MD_prof and MD_dbg.
DeltaFile
+23-0llvm/test/Transforms/Attributor/call_memprof.ll
+21-0llvm/test/Transforms/ArgumentPromotion/call_memprof.ll
+20-0llvm/test/Transforms/DeadArgElim/call_memprof.ll
+16-0llvm/test/Transforms/ExpandVariadics/call_memprof.ll
+8-0llvm/lib/IR/Instruction.cpp
+5-0llvm/include/llvm/IR/Instruction.h
+93-04 files not shown
+98-510 files

LLVM/project 1ba2d93mlir/test/CAPI rewrite.c

[mlir-c] Fix pattern-set leak in rewrite.c materialization tests (#211358)

The `TypeConverter` materialization tests added in #208934 (`testTypeConverterSourceMaterialization` / `testTypeConverterTargetMaterialization`) freeze their `MlirRewritePatternSet` but never destroy it.

This was caught by LeakSanitizer on the aarch64 HWASan bootstrap bot ([builder 55, build
30763](https://lab.llvm.org/buildbot/#/builders/55/builds/30763)):

Fix: call `mlirRewritePatternSetDestroy(patterns)` after freezing in both tests, matching existing usage.

Assisted by: Claude
DeltaFile
+2-0mlir/test/CAPI/rewrite.c
+2-01 files

LLVM/project 888ba55llvm/unittests/Frontend EnumSetTest.cpp

Add preamble
DeltaFile
+8-0llvm/unittests/Frontend/EnumSetTest.cpp
+8-01 files

LLVM/project 952e967libc/src/__support freestore.h

[libc] add fastpath if linear portion are exact

TAG=agy
CONV=f78b1e3e-dbac-4be5-bc9f-d37a6264139e
DeltaFile
+8-9libc/src/__support/freestore.h
+8-91 files

LLVM/project 71add54llvm/unittests/Frontend EnumSetTest.cpp CMakeLists.txt

Add unit test
DeltaFile
+134-0llvm/unittests/Frontend/EnumSetTest.cpp
+1-0llvm/unittests/Frontend/CMakeLists.txt
+135-02 files

LLVM/project 39f85b4llvm/include/llvm/Frontend/OpenMP OMP.h

Add some static helper members
DeltaFile
+3-0llvm/include/llvm/Frontend/OpenMP/OMP.h
+3-01 files

LLVM/project 11542f5lldb/source/DataFormatters FormatterBytecode.cpp, lldb/unittests/DataFormatter FormatterBytecodeTest.cpp

[lldb][test] Reinforce formatter bytecode unit tests (#211042)

rdar://176903081

Assisted-by: claude
DeltaFile
+76-2lldb/unittests/DataFormatter/FormatterBytecodeTest.cpp
+4-3lldb/source/DataFormatters/FormatterBytecode.cpp
+80-52 files

LLVM/project 5f88e49llvm/lib/Analysis MemoryDependenceAnalysis.cpp, llvm/test/Transforms/GVN pre-no-hoist-across-lifetime.ll

[MemDep] Treat partial-overlap lifetime.start as a clobber (#211167)

When getSimplePointerDependencyFrom scans backward and reaches a
@llvm.lifetime.start, it only treated the marker as a barrier when the
query location MustAliased the lifetime's argument, and otherwise fell
through to `continue`. For a load through a GEP into part of an alloca
the alias result is PartialAlias, so the scan walked past lifetime.start
as if it weren't there, and GVN Load PRE would hoist the load above it.

Inspect the full alias result instead of just isMustAlias: MustAlias
still returns Def and NoAlias still continues, but any partial/may
overlap now returns a Clobber so lifetime.start acts as a barrier and
the access cannot be moved above it.

Fixes #194940
DeltaFile
+92-0llvm/test/Transforms/GVN/pre-no-hoist-across-lifetime.ll
+6-2llvm/lib/Analysis/MemoryDependenceAnalysis.cpp
+98-22 files

LLVM/project a822836bolt/docs NewBackend.md index.md

[BOLT][docs] New backend guide (#211382)

Add a brief doc with BOLT-specific guidance for adding a new backend.
DeltaFile
+34-0bolt/docs/NewBackend.md
+1-1bolt/docs/index.md
+35-12 files

LLVM/project d754453clang/docs UsersManual.md

[clang][docs] Fix markdown migration defects in the user manual (#210785)

First, replace all the `{eval-rst}` blocks for option documentation with
`:::{option}` fences. This means authors won't have to bounce between
markup languages within one file, and removes more semantic indentation,
which has been a recurring problem.

Second, remove blockquotes that seem unintentional. None of these are
real quotes, and they seem like artifacts of unintended indentation
before the Markdown migration (#208310).

---------

Co-authored-by: Andy Kaylor <akaylor at nvidia.com>
DeltaFile
+2,162-2,303clang/docs/UsersManual.md
+2,162-2,3031 files

LLVM/project 17a4260utils/bazel MODULE.bazel.lock linux_uapi.bzl

[libc][bazel] Add an option to build linux UAPI headers from source
DeltaFile
+424-5utils/bazel/MODULE.bazel.lock
+68-17utils/bazel/linux_uapi.bzl
+8-1utils/bazel/MODULE.bazel
+0-2utils/bazel/extensions.bzl
+500-254 files

LLVM/project 30d892eclang-tools-extra/docs/clang-tidy/checks/altera id-dependent-backward-branch.md, clang-tools-extra/docs/clang-tidy/checks/bugprone spuriously-wake-up-functions.md

[clang-tidy][docs] Rewrite short check docs to Markdown (#210467)

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 #210466 , which will be a standalone
commit that
renames *.rst -> *.md before this PR lands for history preservation
purposes.

I chose to do 211 files at once in this large batch because they were
all short, i.e. less than 30 lines, so they all have very uncomplicated
reST, which doesn't require much review, or fancy rewriting.

This was prepared with rst2myst plus LLM-assisted cleanup, and the
changes are broken into two commits, mechanical, and LLM cleanup.
DeltaFile
+20-20clang-tools-extra/docs/clang-tidy/checks/modernize/use-bool-literals.md
+19-20clang-tools-extra/docs/clang-tidy/checks/altera/id-dependent-backward-branch.md
+19-19clang-tools-extra/docs/clang-tidy/checks/llvmlibc/callee-namespace.md
+18-19clang-tools-extra/docs/clang-tidy/checks/llvm/prefer-register-over-unsigned.md
+17-19clang-tools-extra/docs/clang-tidy/checks/bugprone/spuriously-wake-up-functions.md
+18-18clang-tools-extra/docs/clang-tidy/checks/misc/misplaced-const.md
+111-115205 files not shown
+1,822-1,920211 files

LLVM/project 2662e2eclang-tools-extra/docs/clang-tidy/checks/abseil duration-factory-float.md, clang-tools-extra/docs/clang-tidy/checks/bugprone dynamic-static-initializers.md inaccurate-erase.md

[clang-tidy][docs] Rename short check docs to Markdown (#210466)

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
+29-0clang-tools-extra/docs/clang-tidy/checks/bugprone/dynamic-static-initializers.md
+29-0clang-tools-extra/docs/clang-tidy/checks/abseil/duration-factory-float.md
+0-29clang-tools-extra/docs/clang-tidy/checks/readability/use-std-min-max.rst
+29-0clang-tools-extra/docs/clang-tidy/checks/bugprone/inaccurate-erase.md
+29-0clang-tools-extra/docs/clang-tidy/checks/bugprone/spuriously-wake-up-functions.md
+0-29clang-tools-extra/docs/clang-tidy/checks/performance/inefficient-algorithm.rst
+116-58416 files not shown
+3,481-3,481422 files

LLVM/project bc47b05libc/src/__support freestore.h

codegen message
DeltaFile
+7-7libc/src/__support/freestore.h
+7-71 files

LLVM/project 05ba93aclang/include/clang/DependencyScanning DependencyScannerImpl.h DependencyScanningWorker.h, clang/lib/DependencyScanning DependencyScannerImpl.cpp DependencyScanningWorker.cpp

Move implementation details to DependencyScanningWorker.cpp and dissolve DependencyScannerImpl.h/cpp.
DeltaFile
+0-678clang/lib/DependencyScanning/DependencyScannerImpl.cpp
+671-1clang/lib/DependencyScanning/DependencyScanningWorker.cpp
+0-122clang/include/clang/DependencyScanning/DependencyScannerImpl.h
+12-2clang/include/clang/DependencyScanning/DependencyScanningWorker.h
+0-1clang/lib/Tooling/DependencyScanningTool.cpp
+0-1clang/lib/DependencyScanning/CMakeLists.txt
+683-8053 files not shown
+684-8079 files

LLVM/project c20c4e1utils/bazel MODULE.bazel.lock linux_uapi.bzl

[libc][bazel] Add an option to build linux UAPI headers from source
DeltaFile
+424-5utils/bazel/MODULE.bazel.lock
+67-17utils/bazel/linux_uapi.bzl
+8-1utils/bazel/MODULE.bazel
+0-2utils/bazel/extensions.bzl
+499-254 files

LLVM/project 29741d3utils/bazel linux_uapi.bzl MODULE.bazel.lock

[libc][bazel] Add a repo with linux kernel UAPI headers

This will be used to support libc's -DFULL_BUILD option, which uses `-nostdlibinc` and thus requires a copy of linux kernel headers.
DeltaFile
+55-0utils/bazel/linux_uapi.bzl
+5-1utils/bazel/MODULE.bazel.lock
+2-0utils/bazel/extensions.bzl
+1-0utils/bazel/MODULE.bazel
+63-14 files