LLVM/project 563af41llvm/test/tools/llvm-cov exclude-markers.test, llvm/test/tools/llvm-cov/Inputs/exclude-markers-custom-region report-custom-region.cpp

[llvm-cov] Add inline exclusion marker support for coverage reporting

Add --exclude-line-regex, --exclude-region-start-regex, and
--exclude-region-stop-regex options to llvm-cov. These allow excluding
lines from coverage totals based on inline source comments.

Defaults: LCOV_EXCL_LINE (single line), LCOV_EXCL_START/LCOV_EXCL_STOP
(region). This brings parity with lcov/gcov exclusion markers and
kcov --exclude-line regex support.

The implementation scans source files for markers when loaded, builds a
per-file set of excluded line numbers, and subtracts them from the line
coverage totals in prepareFileReports().

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply at anthropic.com>
DeltaFile
+181-0llvm/test/tools/llvm-cov/exclude-markers.test
+62-1llvm/tools/llvm-cov/CodeCoverage.cpp
+58-0llvm/tools/llvm-cov/CoverageViewOptions.h
+18-0llvm/test/tools/llvm-cov/Inputs/exclude-markers-custom-region/report-custom-region.cpp
+18-0llvm/test/tools/llvm-cov/Inputs/exclude-markers-region/report-region.cpp
+16-0llvm/tools/llvm-cov/CoverageReport.cpp
+353-111 files not shown
+394-117 files

LLVM/project f7b6749llvm/lib/Transforms/Vectorize VPlan.h, llvm/test/Transforms/LoopVectorize reduction-inloop.ll

[LV] Allow AddChainWithSubs in ExtNegatedMulAccReduction. (#203720)

For chained reductions identified as RecurKind::AddChainWithSubs, VPlan
construction rewrites each sub link as 0 - X so that the in-loop
reduction can treat the chain uniformly as a sum. The
ExtNegatedMulAccReduction VPExpressionRecipe matches that 0 - mul form,
but its constructor only allowed RecurKind::Add and asserted otherwise,
crashing with -prefer-inloop-reductions on the added tests.

AddChainWithSubs maps to Instruction::Add via
RecurrenceDescriptor::getOpcode, so the rest of the recipe (cost
computation, codegen) already handles it. Relax the constructor assert
to also accept AddChainWithSubs.
DeltaFile
+253-0llvm/test/Transforms/LoopVectorize/reduction-inloop.ll
+6-4llvm/lib/Transforms/Vectorize/VPlan.h
+259-42 files

LLVM/project 2f72a7cllvm/test/tools/llvm-cov exclude-markers.test, llvm/test/tools/llvm-cov/Inputs/exclude-markers-custom-region report-custom-region.cpp

[llvm-cov] Add inline exclusion marker support for coverage reporting

Add --exclude-line-regex, --exclude-region-start-regex, and
--exclude-region-stop-regex options to llvm-cov. These allow excluding
lines from coverage totals based on inline source comments.

Defaults: LCOV_EXCL_LINE (single line), LCOV_EXCL_START/LCOV_EXCL_STOP
(region). This brings parity with lcov/gcov exclusion markers and
kcov --exclude-line regex support.

The implementation scans source files for markers when loaded, builds a
per-file set of excluded line numbers, and subtracts them from the line
coverage totals in prepareFileReports().

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply at anthropic.com>
DeltaFile
+181-0llvm/test/tools/llvm-cov/exclude-markers.test
+60-1llvm/tools/llvm-cov/CoverageViewOptions.h
+43-1llvm/tools/llvm-cov/CodeCoverage.cpp
+18-0llvm/test/tools/llvm-cov/Inputs/exclude-markers-custom-region/report-custom-region.cpp
+18-0llvm/test/tools/llvm-cov/Inputs/exclude-markers-region/report-region.cpp
+16-0llvm/tools/llvm-cov/CoverageReport.cpp
+336-211 files not shown
+377-217 files

LLVM/project 18d574dllvm/test/tools/llvm-cov exclude-markers.test, llvm/test/tools/llvm-cov/Inputs/exclude-markers-custom report-custom.cpp

[llvm-cov] Add inline exclusion marker support for coverage reporting

Add --exclude-line-regex, --exclude-region-start-regex, and
--exclude-region-stop-regex options to llvm-cov. These allow excluding
lines from coverage totals based on inline source comments.

Defaults: LCOV_EXCL_LINE (single line), LCOV_EXCL_START/LCOV_EXCL_STOP
(region). This brings parity with lcov/gcov exclusion markers and
kcov --exclude-line regex support.

The implementation scans source files for markers when loaded, builds a
per-file set of excluded line numbers, and subtracts them from the line
coverage totals in prepareFileReports().

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply at anthropic.com>
DeltaFile
+181-0llvm/test/tools/llvm-cov/exclude-markers.test
+60-1llvm/tools/llvm-cov/CoverageViewOptions.h
+43-1llvm/tools/llvm-cov/CodeCoverage.cpp
+18-0llvm/test/tools/llvm-cov/Inputs/exclude-markers-custom-region/report-custom-region.cpp
+18-0llvm/test/tools/llvm-cov/Inputs/exclude-markers-region/report-region.cpp
+16-0llvm/test/tools/llvm-cov/Inputs/exclude-markers-custom/report-custom.cpp
+336-211 files not shown
+377-217 files

LLVM/project 8ba6fb1clang/test/AST/HLSL StructPassing-AST.hlsl, clang/test/CodeGenHLSL this-assignment-overload.hlsl this-assignment.hlsl

[HLSL] Disable implicit constructors for user-defined structs/classes (#194989)

Disables implicit constructors and assignment operators on user-defined
structs/classes in HLSL.

When a struct is copied or passed as an argument to a function, instead
of using copy constructor the compiler inserts an implicit
_lvalue_-to-_rvalue_ cast where necessary to copy the value. In C++
these implicit casts are not allowed. Sema initialization and
overloading code has been adjusted to enable this code path for HLSL.

For struct in a constant buffer, the implicit cast changes the constant
address space to the default one. Codegen recognized this pattern and
instead of translating the copy as `memcpy`, it copies the struct
element-by-element (because the constant address space struct can have a
different layout).

To efficiently recognize whether a `CXXRecordDecl` is a user-defined
struct/class or if it is an HLSL built-in struct/class, a new bit

    [5 lines not shown]
DeltaFile
+227-26clang/test/CodeGenHLSL/resources/cbuffer_struct_passing.hlsl
+120-38clang/test/CodeGenHLSL/BasicFeatures/InitLists.hlsl
+122-0clang/test/AST/HLSL/StructPassing-AST.hlsl
+119-0clang/test/CodeGenHLSL/BasicFeatures/StructPassing.hlsl
+28-28clang/test/CodeGenHLSL/this-assignment-overload.hlsl
+31-20clang/test/CodeGenHLSL/this-assignment.hlsl
+647-11242 files not shown
+888-19848 files

LLVM/project e61071dllvm/test/Transforms/LoopVectorize/AArch64 sve-interleaved-accesses.ll partial-reduce-dot-product.ll, llvm/test/Transforms/LoopVectorize/RISCV fminimumnum.ll

[VPlan] Run final removeBranchOnConst after late simplifyRecipes. (#193069)

simplifyRecipes may expose additional known branches. Move final
removeBranchOnConst after the late simplifyRecipes run.

Removing branches like the vector loop backedge leads to additional
simplifications, like removing trivial phis etc. Return true if any phis
have incoming values have been removed by removeBranchOnConst. If so, we
need another simplifyRecipes run.

Depends on https://github.com/llvm/llvm-project/pull/193067 for
functional changes.

PR: https://github.com/llvm/llvm-project/pull/193069
DeltaFile
+51-40llvm/test/Transforms/LoopVectorize/AArch64/sve-interleaved-accesses.ll
+30-18llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-dot-product.ll
+27-21llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-sub.ll
+16-16llvm/test/Transforms/LoopVectorize/RISCV/fminimumnum.ll
+1-23llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-sub-epilogue-vec.ll
+3-17llvm/test/Transforms/LoopVectorize/AArch64/simple_early_exit.ll
+128-13513 files not shown
+172-19919 files

LLVM/project d0e87f9llvm/lib/Target/X86 X86SchedSandyBridge.td, llvm/test/tools/llvm-mca/X86/Barcelona resources-sse1.s

[X86] Fix Sandy Bridge's WriteLDMXCSR (#203585)

Using information from uops.info, I corrected some numbers.
DeltaFile
+3-3llvm/test/tools/llvm-mca/X86/Barcelona/resources-sse1.s
+3-3llvm/test/tools/llvm-mca/X86/Generic/resources-avx1.s
+3-3llvm/test/tools/llvm-mca/X86/SandyBridge/resources-sse1.s
+3-3llvm/test/tools/llvm-mca/X86/Generic/resources-sse1.s
+3-3llvm/test/tools/llvm-mca/X86/SandyBridge/resources-avx1.s
+1-2llvm/lib/Target/X86/X86SchedSandyBridge.td
+16-176 files

LLVM/project 81435fcmlir/test/mlir-tblgen gen-dialect-doc.td

add another test
DeltaFile
+27-0mlir/test/mlir-tblgen/gen-dialect-doc.td
+27-01 files

LLVM/project a815e6fllvm/test/Transforms/LoopStrengthReduce funclet.ll, llvm/test/Transforms/LoopStrengthReduce/X86 reuse-existing-phi.ll

[Test] Fix LSR tests to prevent trivial simplification of icmp (#203705)

Replace undef operands in funclet.ll with function parameters and adjust
the loop bound in reuse-existing-phi.ll so the new simplification pass
does not fold away the comparisons these tests are meant to exercise.
DeltaFile
+24-24llvm/test/Transforms/LoopStrengthReduce/funclet.ll
+3-3llvm/test/Transforms/LoopStrengthReduce/X86/reuse-existing-phi.ll
+27-272 files

LLVM/project cf68760mlir/test/mlir-tblgen gen-dialect-doc.td

add another test
DeltaFile
+27-0mlir/test/mlir-tblgen/gen-dialect-doc.td
+27-01 files

LLVM/project 65bab0amlir/include/mlir/IR EnumAttr.td

remove unncessary comment
DeltaFile
+0-2mlir/include/mlir/IR/EnumAttr.td
+0-21 files

LLVM/project 47001d7mlir/tools/mlir-tblgen OpDocGen.cpp

address comment
DeltaFile
+3-5mlir/tools/mlir-tblgen/OpDocGen.cpp
+3-51 files

LLVM/project 7f6577cllvm/lib/Target/AMDGPU GCNHazardRecognizer.cpp, llvm/test/CodeGen/AMDGPU buffer-store-dwordx4-vpk-mul-war-hazard-gfx942.mir

Revert "[AMDGPU] Widen MUBUF/MTBUF source-vgpr WAR hazard on gfx940-family to…"

This reverts commit 62b7cf9623fc310525f39ed69aaecc318a909731.
DeltaFile
+0-122llvm/test/CodeGen/AMDGPU/buffer-store-dwordx4-vpk-mul-war-hazard-gfx942.mir
+21-58llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
+21-1802 files

LLVM/project eb23fddllvm/lib/Transforms/Vectorize SLPVectorizer.cpp

[SLP][NFC] Replace std::initializer_list SupportedOp with a C array

Fixes a static_assert constant-expression build failure on older clang
(temporary initializer_list backing array).
Fixes #203184

Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/203707
DeltaFile
+1-1llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+1-11 files

LLVM/project 5b3a9acclang/lib/AST/ByteCode Context.h

[clang][bytecode] Handle more types in `canClassify()` (#203669)

Avoid having to go through the normal `classify()` path.
DeltaFile
+5-0clang/lib/AST/ByteCode/Context.h
+5-01 files

LLVM/project f29b6c0mlir/tools/mlir-tblgen OpDocGen.cpp

Update mlir/tools/mlir-tblgen/OpDocGen.cpp

Co-authored-by: Federico Bruzzone <federico.bruzzone.i at gmail.com>
DeltaFile
+1-1mlir/tools/mlir-tblgen/OpDocGen.cpp
+1-11 files

LLVM/project cf004c9libcxx/test/std/utilities/format/format.range/format.range.fmtstr parse.pass.cpp format.pass.cpp, libcxx/test/std/utilities/format/format.range/format.range.formatter format.functions.vformat.pass.cpp format.functions.format.pass.cpp

[libcxx] Do not mark mkstemp tests xfail for libc (#203681)

mkstemp was recently implemented in
c9b25a6437fd97fdb1e55ab6661c0cccce98913e, so these tests now pass.
DeltaFile
+0-3libcxx/test/std/utilities/format/format.range/format.range.formatter/format.functions.vformat.pass.cpp
+0-3libcxx/test/std/utilities/format/format.range/format.range.formatter/format.functions.format.pass.cpp
+0-3libcxx/test/std/utilities/format/format.range/format.range.fmtstr/parse.pass.cpp
+0-3libcxx/test/std/utilities/format/format.range/format.range.fmtstr/format.pass.cpp
+0-3libcxx/test/std/utilities/format/format.range/format.range.fmtstr/format.functions.vformat.pass.cpp
+0-3libcxx/test/std/utilities/format/format.range/format.range.fmtstr/format.functions.format.pass.cpp
+0-186 files not shown
+0-3612 files

LLVM/project 94b46a0llvm/include/llvm/Passes MachinePassRegistry.def

[Passes] Remove redundant IR pass registries in MachinePassRegistry.def (#203659)

IR pass registries are redundant, remove them.
DeltaFile
+0-42llvm/include/llvm/Passes/MachinePassRegistry.def
+0-421 files

LLVM/project 76aed38clang-tools-extra/clang-tidy/readability NonConstParameterCheck.cpp, clang-tools-extra/docs ReleaseNotes.rst

[clang-tidy] Avoid non-const-parameter fix-it conflicts with overloads (#202490)

`readability-non-const-parameter` can suggest changing `T *` to `const T
*` when that would conflict with an existing overload. Suppress the
diagnostic in that case by comparing the post-fix parameter list against
other declarations with the same name.

Closes https://github.com/llvm/llvm-project/issues/202478
DeltaFile
+75-0clang-tools-extra/test/clang-tidy/checkers/readability/non-const-parameter.cpp
+31-0clang-tools-extra/clang-tidy/readability/NonConstParameterCheck.cpp
+3-0clang-tools-extra/docs/ReleaseNotes.rst
+109-03 files

LLVM/project e5cfc1ellvm/lib/Target/Xtensa XtensaInstrInfo.td, llvm/lib/Target/Xtensa/Disassembler XtensaDisassembler.cpp

[Xtensa] Implement support of the ESP32S2 target. (#200130)
DeltaFile
+34-0llvm/lib/Target/Xtensa/XtensaInstrInfo.td
+21-0llvm/test/MC/Xtensa/xtensa-esp32s2-valid.s
+16-0llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp
+12-2llvm/lib/Target/Xtensa/MCTargetDesc/XtensaInstPrinter.cpp
+9-0llvm/test/CodeGen/Xtensa/cpus.ll
+8-0llvm/lib/Target/Xtensa/Disassembler/XtensaDisassembler.cpp
+100-210 files not shown
+141-416 files

LLVM/project b48dd92clang/lib/Parse ParseOpenACC.cpp, clang/test/ParserOpenACC directive-scope-setup.cpp gh197858.cpp

[OpenACC] Fix scope setup for OpenACC directives without scope. (#203687)

When implementing these, I intended to have the 'empty' parse scopes for
most of the directives introduced for simplicity. However some
assertions show that this is not a valid use of this, as it doesn't
tolerate 'empty' parse scopes. This patch stops introducing one.

Fixes: #203679
DeltaFile
+12-0clang/test/ParserOpenACC/directive-scope-setup.cpp
+0-10clang/test/ParserOpenACC/gh197858.cpp
+3-1clang/lib/Parse/ParseOpenACC.cpp
+15-113 files

LLVM/project 7fc7e0dllvm/test/CodeGen/RISCV clmul.ll clmulr.ll, llvm/test/CodeGen/RISCV/rvv clmulh-sdnode.ll clmul-sdnode.ll

Merge branch 'main' into users/jofrn/x86-remove-shouldcastatomicloadinir-v2
DeltaFile
+38,494-84,026llvm/test/CodeGen/RISCV/rvv/clmulh-sdnode.ll
+22,388-22,086llvm/test/CodeGen/RISCV/rvv/clmul-sdnode.ll
+19,087-24,391llvm/test/CodeGen/RISCV/clmul.ll
+10,473-12,572llvm/test/CodeGen/RISCV/clmulr.ll
+10,281-12,374llvm/test/CodeGen/RISCV/clmulh.ll
+8,361-8,920llvm/test/CodeGen/RISCV/rvv/expandload.ll
+109,084-164,3696,726 files not shown
+643,033-442,5026,732 files

LLVM/project 34802b9llvm/test/Transforms/AtomicExpand/X86 expand-atomic-non-integer.ll

[AtomicExpand][test] Add CHECK32 and CHECK64 via whole-file regen (#201303)

Add CHECK32 and CHECK64 via whole-file regen for the
`@load_v2i64_cmpxchg`, `@load_v4i32_cmpxchg`, `@load_v16i8_cmpxchg`
tests of https://github.com/llvm/llvm-project/pull/199310.

Stacked below https://github.com/llvm/llvm-project/pull/199520.
DeltaFile
+195-1llvm/test/Transforms/AtomicExpand/X86/expand-atomic-non-integer.ll
+195-11 files

LLVM/project 57109bellvm/utils/lit/lit/formats shtest.py, llvm/utils/lit/tests/Inputs/per-test-coverage lit.cfg

Reapply "[lit] Deprecate execute_external=True in ShTest" (#203316) (#203689)

This reverts commit 6713634507b21efe6c895dd40e85ba72fe0ce269.

The fuzzer tests now use the internal shell by default, so we should be
good to go ahead and enable this.
DeltaFile
+12-1llvm/utils/lit/lit/formats/shtest.py
+4-2llvm/utils/lit/tests/Inputs/per-test-coverage-by-lit-cfg/lit.cfg
+4-2llvm/utils/lit/tests/Inputs/per-test-coverage/lit.cfg
+2-1llvm/utils/lit/tests/Inputs/shtest-external-shell-kill/lit.cfg
+2-1llvm/utils/lit/tests/Inputs/shtest-timeout/lit.cfg
+2-1llvm/utils/lit/tests/Inputs/shtest-run-at-line/external-shell/lit.local.cfg
+26-82 files not shown
+30-108 files

LLVM/project cbf3f87llvm/test/Analysis/CostModel/AMDGPU minimumnum.ll maximumnum.ll, llvm/test/Transforms/SLPVectorizer/AMDGPU slp-v2f64.ll

[AMDGPU] gfx1251 cost model (#203682)
DeltaFile
+407-35llvm/test/Analysis/CostModel/AMDGPU/minimumnum.ll
+364-56llvm/test/Analysis/CostModel/AMDGPU/maximumnum.ll
+192-16llvm/test/Analysis/CostModel/AMDGPU/fadd.ll
+145-9llvm/test/Analysis/CostModel/AMDGPU/fma.ll
+135-0llvm/test/Analysis/CostModel/AMDGPU/fmul.ll
+107-0llvm/test/Transforms/SLPVectorizer/AMDGPU/slp-v2f64.ll
+1,350-1164 files not shown
+1,526-13410 files

LLVM/project 9a3e91dllvm/lib/Target/SPIRV SPIRVEmitIntrinsics.cpp, llvm/test/CodeGen/SPIRV/pointers type-deduce-ptr-to-ptr-arg-alloca-store.ll

[SPIR-V] Preserve pointer-to-pointer element type for T*& parameters (#203113)

SPIR-V backend was collapsing T*& reference parameters down to T*,
dropping a level of indirection during element-type deduction. This
patch keeps the pointer-to-pointer level intact, fixing it both within a
function (a T** reloaded from its alloca) and across calls via
cross-function parameter propagation.

Fixes HeCBench/topk on HIP.
DeltaFile
+38-3llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
+27-0llvm/test/CodeGen/SPIRV/pointers/type-deduce-ptr-to-ptr-arg-alloca-store.ll
+65-32 files

LLVM/project 76e120eclang/www cxx_status.html

[Clang][NFC] Add the list C++ papers approved in Brno by WG21 (#203685)
DeltaFile
+110-0clang/www/cxx_status.html
+110-01 files

LLVM/project 6ed37edllvm/test/Analysis/CostModel/AMDGPU minimumnum.ll maximumnum.ll, llvm/test/Transforms/SLPVectorizer/AMDGPU slp-v2f64.ll

[AMDGPU] gfx1251 cost model
DeltaFile
+407-35llvm/test/Analysis/CostModel/AMDGPU/minimumnum.ll
+364-56llvm/test/Analysis/CostModel/AMDGPU/maximumnum.ll
+192-16llvm/test/Analysis/CostModel/AMDGPU/fadd.ll
+145-9llvm/test/Analysis/CostModel/AMDGPU/fma.ll
+135-0llvm/test/Analysis/CostModel/AMDGPU/fmul.ll
+107-0llvm/test/Transforms/SLPVectorizer/AMDGPU/slp-v2f64.ll
+1,350-1164 files not shown
+1,526-13410 files

LLVM/project b2bc66bcmake/Modules NormalizeTriple.cmake, llvm/cmake/modules LLVMExternalProjectUtils.cmake

Use clang to canonicalize the triple
DeltaFile
+33-22llvm/cmake/modules/LLVMExternalProjectUtils.cmake
+36-0cmake/Modules/NormalizeTriple.cmake
+2-16runtimes/CMakeLists.txt
+71-383 files

LLVM/project ea2c207cmake/Modules NormalizeTriple.cmake, llvm/cmake/modules LLVMExternalProjectUtils.cmake

Use clang to canonicalize the triple
DeltaFile
+34-0cmake/Modules/NormalizeTriple.cmake
+21-10llvm/cmake/modules/LLVMExternalProjectUtils.cmake
+2-16runtimes/CMakeLists.txt
+57-263 files