LLVM/project 0a76568llvm/lib/Target/WebAssembly WebAssemblyFixIrreducibleControlFlow.cpp WebAssemblyTargetMachine.cpp, llvm/test/CodeGen/WebAssembly pr184441.ll

[WebAssembly] Reapply "[WebAssembly] Incorporate SCCs into WebAssemblyFixIrreducibleControlFlow" (#181755) (#184441)

Re-application of #181755.

Includes fixes to issues found after the original's merge.
DeltaFile
+153-136llvm/lib/Target/WebAssembly/WebAssemblyFixIrreducibleControlFlow.cpp
+21-0llvm/test/CodeGen/WebAssembly/pr184441.ll
+4-0llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
+178-1363 files

LLVM/project 9145a74lldb/examples/python formatter_bytecode.py

[lldb] Use "assemble" instead of "compile" in formatter_bytecode.py (#184714)

Replace "compile" with "assemble" in formatter_bytecode. This is in
preparation for the addition of a Python to formatter bytecode compiler.
It will be more clear to have one meaning for "compile".
DeltaFile
+34-34lldb/examples/python/formatter_bytecode.py
+34-341 files

LLVM/project fea8a69clang/test/OpenMP loop_collapse_codegen.cpp, llvm/test/CodeGen/AArch64 clmul-fixed.ll

Rebase, update newly added test with PGO info

Created using spr 1.3.7
DeltaFile
+6,520-0llvm/test/CodeGen/X86/bit-manip-i512.ll
+3,707-46llvm/test/CodeGen/AArch64/clmul-fixed.ll
+3,441-0llvm/test/MC/AMDGPU/gfx13_asm_vflat.s
+3,257-0llvm/test/CodeGen/X86/bit-manip-i256.ll
+857-0clang/test/OpenMP/loop_collapse_codegen.cpp
+706-0llvm/test/Transforms/LoopVectorize/float-induction.ll
+18,488-46650 files not shown
+32,830-5,669656 files

LLVM/project 0e1bef8llvm/lib/Target/Hexagon Hexagon.td, llvm/test/CodeGen/Hexagon v81-early-arch-features.ll

[Hexagon] Add missing early architecture features to V81 processor (#183499)

V81 was missing ArchV5, ArchV55, ArchV60, and ArchV62 in its feature
list, causing instructions requiring these architecture versions to fail
during compilation.

(cherry picked from commit 6f736e2cd9933aed1c8b72f2fe370f7d60bd3709)
DeltaFile
+16-0llvm/test/CodeGen/Hexagon/v81-early-arch-features.ll
+2-2llvm/lib/Target/Hexagon/Hexagon.td
+18-22 files

LLVM/project 0bca18dclang/lib/CIR/CodeGen CIRGenExprConstant.cpp

[CIR][NFC] Add 'matrix' type to CIRGenExprConstant.cpp switch (#184852)

This just adds this as an NYI, but this will suppress the Wswitch
warning.
DeltaFile
+3-0clang/lib/CIR/CodeGen/CIRGenExprConstant.cpp
+3-01 files

LLVM/project 7ddc1bblld/ELF/Arch Hexagon.cpp, lld/test/ELF hexagon-duplex-relocs.s

[lld][Hexagon] Fix findMaskR8 missing duplex support (#183936)

findMaskR8() lacked an isDuplex() check, unlike findMaskR6(),
findMaskR11(), and findMaskR16() which all handle duplex instructions.

When the assembler generates R_HEX_8_X on a duplex SA1_addi instruction
(e.g. `{ r0 = add(r0, ##target); memw(r1+#0) = r2 }`), the wrong mask
0x00001fe0 placed relocation bits at [12:5] instead of [25:20],
corrupting the low sub-instruction (e.g. memw became memb).

Add the isDuplex() check returning 0x03f00000, and add a comprehensive
test covering all duplex instruction x relocation type combinations
across findMaskR6, findMaskR8, findMaskR11, and findMaskR16.

(cherry picked from commit 9105d9c24949d8cf9b740cb874027351e7230e70)
DeltaFile
+40-0lld/test/ELF/hexagon-duplex-relocs.s
+2-0lld/ELF/Arch/Hexagon.cpp
+42-02 files

LLVM/project 3ed12ebllvm/lib/Target/RISCV RISCVISelLowering.cpp, llvm/test/CodeGen/RISCV rvp-ext-rv64.ll rvp-ext-rv32.ll

[RISCV][P-ext] Fix cannot select error for shlsat with i8 vector argument. (#184839)

We don't have instructions for an i8 sshlat.
DeltaFile
+35-7llvm/test/CodeGen/RISCV/rvp-ext-rv64.ll
+23-4llvm/test/CodeGen/RISCV/rvp-ext-rv32.ll
+4-2llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+62-133 files

LLVM/project f7560e1llvm/test/Transforms/LoopVectorize multiple-argmin-argmax.ll

[LV] Add tests with loops with multiple argmin/argmax.

Add additional tests with multiple argmin/argmax reductions for
https://github.com/llvm/llvm-project/issues/184729.
DeltaFile
+595-0llvm/test/Transforms/LoopVectorize/multiple-argmin-argmax.ll
+595-01 files

LLVM/project b7ed29dllvm/test/Transforms/SLPVectorizer/X86 expected-prof-consecutive-access.ll

[SLP][NFC]Add a test with a loop with profiling info, NFC
DeltaFile
+66-0llvm/test/Transforms/SLPVectorizer/X86/expected-prof-consecutive-access.ll
+66-01 files

LLVM/project 6811a83clang/include/clang/Basic DiagnosticSemaKinds.td, clang/lib/AST ASTContext.cpp

[Clang] Ensure child classes export inherited constructors from base classes (#182706)

Inherited constructors in `dllexport` classes are now exported for ABI-compatible cases, 
matching MSVC behavior. Constructors with variadic arguments or callee-cleanup 
parameters are not yet supported and produce a warning.

This aims to partially resolve https://github.com/llvm/llvm-project/issues/162640.

Assisted by : Cursor // Claude Opus 4.6
DeltaFile
+243-0clang/test/CodeGenCXX/dllexport-inherited-ctor.cpp
+61-4clang/lib/Sema/SemaDeclCXX.cpp
+25-0clang/test/SemaCXX/dllexport.cpp
+13-4clang/lib/AST/ASTContext.cpp
+15-0clang/lib/CodeGen/ModuleBuilder.cpp
+5-0clang/include/clang/Basic/DiagnosticSemaKinds.td
+362-81 files not shown
+365-87 files

LLVM/project da5f60cflang/lib/Semantics check-omp-structure.cpp

format
DeltaFile
+5-4flang/lib/Semantics/check-omp-structure.cpp
+5-41 files

LLVM/project b989713lldb/source/Host/windows PseudoConsole.cpp

[lldb][windows] remove sleep before closing ConPTY (#183539)

DeltaFile
+0-4lldb/source/Host/windows/PseudoConsole.cpp
+0-41 files

LLVM/project 6807b61lldb/test/API/commands/watchpoints/watchpoint_commands/command watchpoint_command.py

Fix a bug in the watchpoint callback - in one case we weren't
returning anything from the callback.  Fixing this on the off
chance that is what is causing the linux-only failure in this test
after PR:

https://github.com/llvm/llvm-project/pull/184272
DeltaFile
+1-0lldb/test/API/commands/watchpoints/watchpoint_commands/command/watchpoint_command.py
+1-01 files

LLVM/project e408392clang/lib/Sema SemaLambda.cpp, clang/test/Modules pr178893.cppm

[clang] Don't use `VarDecl` of local variables as `ManglingContextDecl` for lambdas (#179035)

Currently, in a C++20 modules context, a `VarDecl` of a local variable
can wrongly end up as a `ManglingContextDecl` for a lambda.

Fix this by removing `ContextKind::NonInlineInModulePurview` in
`Sema::getCurrentMangleNumberContext` and add
`IsExternallyVisibleInModulePurview` checks in the appropriate places:

- For externally visible functions defined in a module purview, add a
check to `isInInlineFunction`, renaming it to
`IsInFunctionThatRequiresMangling`
- For externally visible variables defined in a module purview, add a
new `ContextKind::ExternallyVisibleVariableInModulePurview` and an
appropriate check to the `VarDecl` case

Fixes #178893

---------

    [4 lines not shown]
DeltaFile
+46-33clang/lib/Sema/SemaLambda.cpp
+29-0clang/test/Modules/pr178893.cppm
+75-332 files

LLVM/project 9d1b5d8clang/lib/Sema SemaLambda.cpp, clang/test/Modules pr177385.cppm

[C++20] [Modules] Set ManglingContextDecl when we need to mangle a lambda but it's nullptr (#177899)

Close https://github.com/llvm/llvm-project/issues/177385

The root cause of the problem is, when we decide to mangle a lamdba in a
module interface while the ManglingContextDecl is nullptr, we didn't
update ManglingContextDecl. So that the following use of
ManglingContextDecl is an invalid value.

(cherry picked from commit 772b15b3be153b1d2df910057af17926ea227243)
DeltaFile
+165-0clang/test/Modules/pr177385.cppm
+12-11clang/lib/Sema/SemaLambda.cpp
+177-112 files

LLVM/project 571e578clang-tools-extra/clang-doc MDParser.cpp MDParser.h, clang-tools-extra/unittests/clang-doc MDParserTest.cpp CMakeLists.txt

[clang-doc] markdown parser
DeltaFile
+255-0clang-tools-extra/clang-doc/MDParser.cpp
+224-0clang-tools-extra/unittests/clang-doc/MDParserTest.cpp
+191-0clang-tools-extra/clang-doc/MDParser.h
+1-0clang-tools-extra/clang-doc/CMakeLists.txt
+1-0clang-tools-extra/clang-doc/Representation.h
+1-0clang-tools-extra/unittests/clang-doc/CMakeLists.txt
+673-06 files

LLVM/project dde5e79flang/include/flang/Parser openmp-utils.h, flang/lib/Lower/OpenMP OpenMP.cpp

[flang][OpenMP] Utilities to get uppercase directive/clause names

It is a convention to use uppercase names of directives and clauses in
diagnostic messages, but getting such names is somewhat cumbersome:
```
parser::ToUpperCaseLetters(llvm::omp::getOpenMPDirectiveName(dirId));
parser::ToUpperCaseLetters(llvm::omp::getOpenMPClauseName(clauseId));
```

Implement `GetUpperName` (overloaded for clauses and directives) to
shorten it to
```
GetUpperName(dirId, version);
GetUpperName(clauseId, version);
```

This patch replaces existing instances of this pattern, adding the
use of OpenMP version where it was previously missing.
DeltaFile
+76-76flang/lib/Semantics/check-omp-structure.cpp
+8-14flang/lib/Semantics/resolve-directives.cpp
+12-0flang/lib/Parser/openmp-utils.cpp
+5-3flang/lib/Lower/OpenMP/OpenMP.cpp
+2-3flang/lib/Semantics/check-omp-loop.cpp
+3-0flang/include/flang/Parser/openmp-utils.h
+106-966 files

LLVM/project 1ef472fflang/lib/Lower/OpenMP DataSharingProcessor.cpp, flang/test/Lower/OpenMP composite_simd_linear.f90 distribute-parallel-do-simd.f90

Revert "[flang][OpenMP] Fix lowering of LINEAR iteration variables" (#184843)

Reverts llvm/llvm-project#183794

It broke a couple of tests from Fujitsu testsuite.
DeltaFile
+6-9flang/lib/Lower/OpenMP/DataSharingProcessor.cpp
+7-8flang/test/Lower/OpenMP/composite_simd_linear.f90
+7-6flang/test/Lower/OpenMP/distribute-parallel-do-simd.f90
+5-5flang/test/Lower/OpenMP/loop-pointer-variable.f90
+5-5flang/test/Lower/OpenMP/wsloop-simd.f90
+3-3flang/test/Lower/OpenMP/distribute-simd.f90
+33-362 files not shown
+36-428 files

LLVM/project 64d6187llvm/lib/Target/SPIRV SPIRVInstructionSelector.cpp

[SPIRV] Replace `removeFromParent` with `eraseFromParent` for `ASSING_TYPE` (#184793)

The `ASSIGN_TYPE` instruction should not be referenced anymore at this
point. So we can free its memory.

Follow up of https://github.com/llvm/llvm-project/pull/182330
DeltaFile
+1-1llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
+1-11 files

LLVM/project ea65e85compiler-rt/lib/scudo/standalone mem_map_linux.cpp linux.cpp, compiler-rt/lib/scudo/standalone/tests common_test.cpp

[scudo] Move getResidentPages function (#183138)

Moving getResidentPages out of linux.cpp and adding it to MemMapBase
DeltaFile
+32-0compiler-rt/lib/scudo/standalone/mem_map_linux.cpp
+0-32compiler-rt/lib/scudo/standalone/linux.cpp
+14-10compiler-rt/lib/scudo/standalone/tests/common_test.cpp
+15-0compiler-rt/lib/scudo/standalone/mem_map_base.h
+7-7compiler-rt/lib/scudo/standalone/secondary.h
+4-5compiler-rt/lib/scudo/standalone/primary64.h
+72-549 files not shown
+91-6515 files

LLVM/project cdea748.ci/green-dragon clang-stage1-RA.groovy

[green dragon] skip trigger on release branch stage1 RA jobs (#184653)

* This will allow us to setup clang-stage1-RA jobs as multi branch
pipelines for release branches without setting up all the downstream
jobs.

I will need to cherry-pick the jenkinsfile to the release/22.x branch
which I will do after this lands
DeltaFile
+2-1.ci/green-dragon/clang-stage1-RA.groovy
+2-11 files

LLVM/project b009173clang/lib/AST/ByteCode Compiler.cpp Pointer.cpp, clang/test/SemaHLSL/Types/BuiltinMatrix MatrixConstantExpr.hlsl

[clang][bytecode][HLSL][Matrix] Support `ConstantMatrixType` and more HLSL casts in the new constant interpreter for basic matrix constexpr evaluation in HLSL (#184840)

Forgot to change the target branch before merging. This PR is a
cherry-pick of the squashed-and-merged PR commit
b16aa4b7ec665911c74300cd7442659b70973d13 from 183424

This PR fixes #182963
This PR is an extension of #178762 which has already been merged.

This PR adds support for `ConstantMatrixType` and the HLSL casts
`CK_HLSLArrayRValue`, `CK_HLSLMatrixTruncation`,
`CK_HLSLAggregateSplatCast`, and `CK_HLSLElementwiseCast` to the
bytecode constexpr evaluator.

The implementations of CK_HLSLAggregateSplatCast and
CK_HLSLElementwiseCast are incomplete, as they still need to support
struct and array types to enable use of the experimental new constant
interpreter on other existing HLSL constexpr tests. The completion of
the implementations of these casts will be tracked in a separate issue

    [2 lines not shown]
DeltaFile
+226-0clang/lib/AST/ByteCode/Compiler.cpp
+18-0clang/lib/AST/ByteCode/Pointer.cpp
+10-0clang/lib/AST/ByteCode/Program.cpp
+5-0clang/lib/AST/ByteCode/Compiler.h
+4-0clang/test/SemaHLSL/Types/BuiltinMatrix/MatrixConstantExpr.hlsl
+263-05 files

LLVM/project 454863bclang/lib/Headers gpuintrin.h

[Clang] Fix 'gpuintrin.h' implementation of 'match_all'

Summary:
This implementation only worked if the lane mask passed in was uniform,
but this is against the expected usage where the user may be wishing to
check if a value is uniform *within* a mask subset. Also remove
redundant sync_lanes, the ballots and shuffles already have
synchronizing behavior.
DeltaFile
+14-12clang/lib/Headers/gpuintrin.h
+14-121 files

LLVM/project 10ade36libc/src/__support/GPU fixedstack.h fixedbuffer.h, libc/test/integration/src/__support/GPU fixedbuffer_test.cpp fixedstack_test.cpp

[libc] Rework slab cache data structure for GPU allocator

Summary:
This was previously a Trieber stack, which is a perfectly fine generic
and lock-free data structure. However, this used some expensive CAS
operations and had issues with ABA. Because the only user of this was
the slab cache mechanism, we can pretty safely specialize it. Instead,
we simply search a fixed size buffer for some sentinal values and CAS
into it.

For allocations that only ever hit the cache, this improves performance
from ~9000 cycles to ~6000 cycles and similar improvements for workloads
that feel the pain of small thread counts hitting the cache.
DeltaFile
+0-111libc/src/__support/GPU/fixedstack.h
+51-0libc/src/__support/GPU/fixedbuffer.h
+46-0libc/test/integration/src/__support/GPU/fixedbuffer_test.cpp
+0-44libc/test/integration/src/__support/GPU/fixedstack_test.cpp
+3-3libc/src/__support/GPU/CMakeLists.txt
+3-3libc/test/integration/src/__support/GPU/CMakeLists.txt
+103-1611 files not shown
+105-1637 files

LLVM/project 2714689llvm/include/llvm/Frontend/OpenMP OMPIRBuilder.h, llvm/lib/Frontend/OpenMP OMPIRBuilder.cpp

Refactor and support multiple affinity register for a task

- Support multiple affinity register for a task
- Move iterator loop generate logic to OMPIRBuilder
- Extract iterator loop body convertion logic
- Refactor buildAffinityData by hoisting the creation of affinity_list
- IteratorsOp -> IteratorOp
- Add mlir to llvmir test
DeltaFile
+143-123mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+226-0mlir/test/Target/LLVMIR/openmp-iterator.mlir
+68-16llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
+34-1llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
+33-0mlir/test/Target/LLVMIR/openmp-llvm.mlir
+504-1405 files

LLVM/project 4c17f40llvm/include/llvm/Frontend/OpenMP OMPIRBuilder.h, llvm/lib/Frontend/OpenMP OMPIRBuilder.cpp

Use createLoopSkeleton intead of manually building nested loop

Create flattened 1-dimension canonical loop for omp.iterator
DeltaFile
+92-52mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+0-82llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
+0-27llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
+92-1613 files

LLVM/project 166492allvm/include/llvm/Frontend/OpenMP OMPIRBuilder.h, llvm/lib/Frontend/OpenMP OMPIRBuilder.cpp

Implement lowering for omp.iterator in affinity

Create IteratorLoopNestScope for building nested loop for iterator.
Take advantage of RAII so that we can have correct exit for each
level of the loop.
DeltaFile
+158-22mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+82-0llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
+27-0llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
+1-0mlir/lib/Conversion/OpenMPToLLVM/OpenMPToLLVM.cpp
+268-224 files

LLVM/project b67c565llvm/include/llvm/Frontend/OpenMP OMPIRBuilder.h, llvm/lib/Frontend/OpenMP OMPIRBuilder.cpp

[mlir][llvmir][OpenMP] Translate affinity clause in task construct to llvmir

Translate affinity entries to LLVMIR by passing affinity information to
createTask (__kmpc_omp_reg_task_with_affinity is created inside PostOutlineCB).
DeltaFile
+92-0llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
+59-13mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+19-3llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
+12-6llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
+0-12mlir/test/Target/LLVMIR/openmp-todo.mlir
+2-0mlir/lib/Conversion/OpenMPToLLVM/OpenMPToLLVM.cpp
+184-346 files

LLVM/project 5b064a2clang/include/clang/DependencyScanning DependencyScannerImpl.h DependencyScanningWorker.h, clang/include/clang/Tooling DependencyScanningTool.h

[clang][deps] Simplify by-module-name scan API (#184376)

The by-module-name scanning APIs are fairly spread out. There's the main
`CompilerInstanceWithContext` class that provides a constructor,
`initialize()` and `computeDependencies()`. Then there's the
`DependencyScanningWorker` that optionally owns
`CompilerInstanceWithContext` and re-exposes two `initialize()` and one
`computeDependencies()` functions. Lastly, there's
`DependencyScanningTool` that again re-exposes two variants of
`initialize()` and one `computeDependencies()`.

The current setup makes it unnecessarily difficult to make changes to
these APIs (as observed in
https://github.com/swiftlang/llvm-project/pull/12453).

This PR makes `CompilerInstanceWithContext` standalone, and hides the
construct + initialize pattern behind a static factory function. This
makes it harder to misuse the API (forgetting to call `initialize()`,
calling it twice, etc.) and means changes now need to only touch single
class instead of three classes spread over multiple files.
DeltaFile
+196-28clang/lib/Tooling/DependencyScanningTool.cpp
+9-162clang/lib/DependencyScanning/DependencyScannerImpl.cpp
+92-50clang/include/clang/Tooling/DependencyScanningTool.h
+13-40clang/include/clang/DependencyScanning/DependencyScannerImpl.h
+5-42clang/include/clang/DependencyScanning/DependencyScanningWorker.h
+0-28clang/lib/DependencyScanning/DependencyScanningWorker.cpp
+315-3501 files not shown
+319-3547 files

LLVM/project c54bc30llvm/lib/Target/SPIRV SPIRVInstructionSelector.cpp

[NFC][SPIRV] Remove `MachineInstr` from `DeadMIs` set after erasing it (#184795)

DeltaFile
+1-0llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
+1-01 files