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

LLVM/project ce47e25clang/lib/CIR/CodeGen CIRGenExprScalar.cpp, clang/test/CIR/CodeGen openmp_default_simd_align.c

[CIR] Implement OpenMPRequiredSimdAlign UnaryExpr (#184214)

Implement the OpenMPRequiredSimdAlign kind of UnaryExprOrTypeTraitExpr
DeltaFile
+28-0clang/test/CIR/CodeGen/openmp_default_simd_align.c
+6-6clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp
+34-62 files

LLVM/project 894408dlldb/test/API/python_api/run_locker TestRunLocker.py

Skip some tests on Windows.  They were already expected fail and
I needed to use "sleep" so now the test file won't compile.  So
switching to skip...
DeltaFile
+3-2lldb/test/API/python_api/run_locker/TestRunLocker.py
+3-21 files

LLVM/project 0af005bflang/lib/Lower/OpenMP Utils.cpp, flang/test/Lower/OpenMP task-affinity.f90

Handle non-default lower bounds in iterator
DeltaFile
+63-0flang/test/Lower/OpenMP/task-affinity.f90
+10-1flang/lib/Lower/OpenMP/Utils.cpp
+73-12 files

LLVM/project 8bb30f8flang/lib/Lower/OpenMP Utils.cpp ClauseProcessor.cpp, flang/test/Lower/OpenMP task-affinity.f90

Handle dynamic affinity object sizes and improve iterator coverage

Teach task affinity lowering to compute lengths for dynamic objects
instead of falling back to zero for whole-object cases such as
assumed-shape, allocatable, pointer, character, and polymorphic type.

Add more tests in task-affinity
    - assumed-shape, allocatable, pointer, and polymorphic objects
    - character objects with constant and runtime length
    - iterator character element affinity
    - reordered, expression, and section iterator subscripts
    - Extract iterator handling from processAffinity
DeltaFile
+196-37flang/test/Lower/OpenMP/task-affinity.f90
+116-73flang/lib/Lower/OpenMP/Utils.cpp
+37-36flang/lib/Lower/OpenMP/ClauseProcessor.cpp
+5-2flang/lib/Lower/OpenMP/Utils.h
+354-1484 files

LLVM/project 2f0659cflang/lib/Lower/OpenMP Utils.cpp, flang/test/Lower/OpenMP task-affinity.f90

Remove convert for iterator indices since array_coor accepts AnyCoordinateType
DeltaFile
+11-26flang/test/Lower/OpenMP/task-affinity.f90
+0-2flang/lib/Lower/OpenMP/Utils.cpp
+11-282 files

LLVM/project 4d17765flang/lib/Lower/OpenMP ClauseProcessor.cpp, flang/test/Lower/OpenMP task-affinity.f90

Rebase and replace omp.iterators with omp.iterator
DeltaFile
+4-4mlir/test/Dialect/OpenMP/ops.mlir
+2-2flang/test/Lower/OpenMP/task-affinity.f90
+1-1flang/lib/Lower/OpenMP/ClauseProcessor.cpp
+7-73 files

LLVM/project ce6c3f1flang/lib/Lower/OpenMP Utils.cpp ClauseProcessor.cpp, flang/test/Lower/OpenMP task-affinity.f90

Lower iterator affinity subscripts and sections correctly

Teach OpenMP affinity lowering to evaluate iterator-dependent subscripts
through the iterator symbol mapping and use them to build the element
coordinate directly.

This fixes cases such as:
- affinity(iterator(i,j): a(j,i))
- affinity(iterator(i,j): a(i+1,j))
- affinity(iterator(i,j): a(i:i+1,j+2))
- affinity(iterator(i,j): a(:i+1,j+2))
DeltaFile
+156-25flang/test/Lower/OpenMP/task-affinity.f90
+70-0flang/lib/Lower/OpenMP/Utils.cpp
+30-5flang/lib/Lower/OpenMP/ClauseProcessor.cpp
+5-0flang/lib/Lower/OpenMP/Utils.h
+261-304 files

LLVM/project e72070cflang/lib/Lower/OpenMP Utils.cpp ClauseProcessor.cpp, flang/test/Lower/OpenMP task-affinity.f90

Rewrite functions in affinity utility functions with hlfir apis
DeltaFile
+126-130flang/lib/Lower/OpenMP/Utils.cpp
+103-47flang/test/Lower/OpenMP/task-affinity.f90
+23-47flang/lib/Lower/OpenMP/ClauseProcessor.cpp
+6-3flang/lib/Lower/OpenMP/Utils.h
+3-2mlir/test/Dialect/OpenMP/ops.mlir
+261-2295 files

LLVM/project a67f2b1flang/lib/Lower/OpenMP ClauseProcessor.cpp Utils.cpp, flang/test/Lower/OpenMP task-affinity.f90

Support iterator modifier in affinity clause
DeltaFile
+143-20flang/lib/Lower/OpenMP/ClauseProcessor.cpp
+70-18mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
+53-35flang/test/Lower/OpenMP/task-affinity.f90
+83-0flang/lib/Lower/OpenMP/Utils.cpp
+53-0mlir/test/Dialect/OpenMP/ops.mlir
+16-0flang/lib/Lower/OpenMP/Utils.h
+418-733 files not shown
+428-899 files

LLVM/project 82091e4flang/lib/Lower/OpenMP Utils.cpp ClauseProcessor.cpp, flang/test/Lower/OpenMP task-affinity.f90

[Flang][mlir][OpenMP] Support affinity clause codegen in Flang

This patch translate flang ast to OpenMP dialect for affinity clause
including the iterator modifier.
DeltaFile
+103-0flang/lib/Lower/OpenMP/Utils.cpp
+52-14flang/test/Lower/OpenMP/task-affinity.f90
+64-2flang/lib/Lower/OpenMP/ClauseProcessor.cpp
+31-19mlir/test/Dialect/OpenMP/ops.mlir
+17-0mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
+9-0flang/lib/Lower/OpenMP/Utils.h
+276-352 files not shown
+285-368 files

LLVM/project 5778b3flibclc/opencl/lib/amdgcn SOURCES, libclc/opencl/lib/amdgcn/subgroup subgroup.cl

libclc: Add amdgpu subgroup functions
DeltaFile
+74-0libclc/opencl/lib/amdgcn/subgroup/subgroup.cl
+1-0libclc/opencl/lib/amdgcn/SOURCES
+75-02 files

LLVM/project 45d9675libclc/clc/include/clc/workitem clc_get_enqueued_local_size.h, libclc/clc/lib/amdgcn SOURCES

libclc: Implement get_enqueued_local_size
DeltaFile
+17-0libclc/clc/include/clc/workitem/clc_get_enqueued_local_size.h
+14-0libclc/clc/lib/amdgcn/workitem/clc_get_enqueued_local_size.cl
+14-0libclc/opencl/lib/generic/workitem/get_enqueued_local_size.cl
+1-0libclc/opencl/lib/generic/SOURCES
+1-0libclc/clc/lib/amdgcn/SOURCES
+47-05 files