LLVM/project a92fea7 — libc/src/__support/OSUtil/linux/syscall_wrappers CMakeLists.txt sendfile.h, libc/src/sys/sendfile/linux CMakeLists.txt sendfile.cpp

[libc] Use a syscall wrapper for sendfile

This PR move sendfile behind the centralized syscall wrappers, following libc/docs/dev/syscall_wrapper_refactor.md.
DeltaFile
+46-0libc/src/__support/OSUtil/linux/syscall_wrappers/sendfile.h
+40-0utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+5-17libc/src/sys/sendfile/linux/sendfile.cpp
+15-0libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
+4-2libc/src/sys/sendfile/linux/CMakeLists.txt
+110-195 files

LLVM/project 7c7d8f6 — libc/src/__support/OSUtil/linux/syscall_wrappers CMakeLists.txt uname.h, libc/src/sys/utsname/linux CMakeLists.txt uname.cpp

[libc] Use a syscall wrapper for uname

This PR move uname behind the centralized syscall wrappers, following libc/docs/dev/syscall_wrapper_refactor.md.
DeltaFile
+50-0utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+35-0libc/src/__support/OSUtil/linux/syscall_wrappers/uname.h
+7-8libc/src/sys/utsname/linux/uname.cpp
+13-0libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
+4-2libc/src/sys/utsname/linux/CMakeLists.txt
+109-105 files

LLVM/project 9bfa2c2 — clang/lib/AST/ByteCode Compiler.cpp, clang/test/AST/ByteCode virtual-bases.cpp

[clang][bytecode] Add a variable scope for virtual base initializers (#237933)

Otherwise we have no scope to attach temporary variables created as part
of the virtual base initializer to.
DeltaFile
+9-0clang/test/AST/ByteCode/virtual-bases.cpp
+1-0clang/lib/AST/ByteCode/Compiler.cpp
+10-02 files

LLVM/project d6b0250 — clang/include/clang/CIR/Dialect CMakeLists.txt, llvm/cmake/modules TableGen.cmake

rename `tablegen` to `tablegen_internal` and replace remaining non-impl callers
DeltaFile
+7-7offload/liboffload/API/CMakeLists.txt
+9-4mlir/cmake/modules/AddMLIR.cmake
+8-4llvm/cmake/modules/TableGen.cmake
+3-3mlir/lib/Dialect/LLVMIR/CMakeLists.txt
+3-3clang/include/clang/CIR/Dialect/CMakeLists.txt
+6-0offload/CMakeLists.txt
+36-218 files not shown
+50-3014 files

LLVM/project 259f23b — mlir/include/mlir/Target/LLVMIR ModuleTranslation.h, mlir/lib/Dialect/LLVMIR CMakeLists.txt

Revert "[mlir][LLVMIR] Decouple ModuleTranslation from the OpenMP dialect" (#237944)

Reverts llvm/llvm-project#236777

Doing so while investigating the build failure
DeltaFile
+146-247mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+50-35mlir/include/mlir/Target/LLVMIR/ModuleTranslation.h
+0-47mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPCommon.cpp
+47-0mlir/lib/Target/LLVMIR/Dialect/OpenMPCommon.cpp
+32-10mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
+2-0mlir/lib/Dialect/LLVMIR/CMakeLists.txt
+277-3395 files not shown
+280-34311 files

LLVM/project 9cdef9f — mlir/lib/Dialect/XeGPU/Transforms XeGPULayoutImpl.cpp, mlir/test/Dialect/XeGPU propagate-layout-inst-data.mlir

[MLIR][XeGPU][LayoutPropagation] Only use 'transformed' load when uArch allows it (#233485)

The PR fixes behavior where 'transformed' load could have been picked
for `dataShape` that doesn't support it.

Before performing 'mxfp-fallback' to the 'transform-load' we now query
`uArch` for [supported
`dataShape`s](https://github.com/llvm/llvm-project/blob/cbbb5acd6db3c9ccf3bae60b7ffbe56ab213f110/mlir/include/mlir/Dialect/XeGPU/uArch/uArchBase.h#L337-L356)
via `get2DBlockIOInstDataLayout`. If transform-load is not possible we
proceed with the regular load and let the `xegpu.convert_layout` handle
the conflict.

Signed-off-by: Dmitry Chigarev <dmitry.chigarev at intel.com>
DeltaFile
+20-0mlir/test/Dialect/XeGPU/propagate-layout-inst-data.mlir
+7-1mlir/lib/Dialect/XeGPU/Transforms/XeGPULayoutImpl.cpp
+27-12 files

LLVM/project c750212 — mlir/include/mlir/Target/LLVMIR ModuleTranslation.h, mlir/lib/Dialect/LLVMIR CMakeLists.txt

[mlir][LLVMIR] Decouple ModuleTranslation from the OpenMP dialect (#236777)

`ModuleTranslation.h` included `OpenMPDialect.h` and owned
OpenMP-specific state. Every consumer of the LLVM IR export, and every
dialect whose header includes `ModuleTranslation.h` (NVVM, XeVM),
therefore depended on the OpenMP dialect, and `MLIRNVVMDialect`,
`MLIRXeVMDialect` and `MLIRLLVMIRTransforms` linked `MLIROpenMPDialect`
for that reason only.

This PR decouples this by adding a TypeID-keyed
`ModuleTranslation::Extension` mechanism (similar to ones seen in
bufferization or the transform dialect) for state that lives as long as
the translation and move the OpenMP state into an extension owned by the
OpenMP translation.
DeltaFile
+247-146mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+35-50mlir/include/mlir/Target/LLVMIR/ModuleTranslation.h
+0-47mlir/lib/Target/LLVMIR/Dialect/OpenMPCommon.cpp
+47-0mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPCommon.cpp
+10-32mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
+0-2mlir/lib/Dialect/LLVMIR/CMakeLists.txt
+339-2775 files not shown
+343-28011 files

LLVM/project 68055d7 — libc/src/__support/OSUtil/linux/syscall_wrappers CMakeLists.txt writev.h, libc/src/sys/uio/linux CMakeLists.txt writev.cpp

[libc] Use a syscall wrapper for writev (#237182)

This PR move writev behind the centralized syscall wrappers, following
libc/docs/dev/syscall_wrapper_refactor.md.

---

<sub>Stack created with <a
href="https://github.com/github/gh-stack">GitHub Stacks CLI</a> • <a
href="https://gh.io/stacks-feedback">Give Feedback 💬</a></sub>
DeltaFile
+36-0utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+36-0libc/src/__support/OSUtil/linux/syscall_wrappers/writev.h
+6-8libc/src/sys/uio/linux/writev.cpp
+14-0libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
+3-2libc/src/sys/uio/linux/CMakeLists.txt
+95-105 files

LLVM/project ea8e3b0 — libc/src/__support/OSUtil/linux/syscall_wrappers CMakeLists.txt readv.h, libc/src/sys/uio/linux readv.cpp CMakeLists.txt

[libc] Use a syscall wrapper for readv (#237181)

This PR move readv behind the centralized syscall wrappers, following
libc/docs/dev/syscall_wrapper_refactor.md.

---

<sub>Stack created with <a
href="https://github.com/github/gh-stack">GitHub Stacks CLI</a> • <a
href="https://gh.io/stacks-feedback">Give Feedback 💬</a></sub>
DeltaFile
+38-0utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+36-0libc/src/__support/OSUtil/linux/syscall_wrappers/readv.h
+16-15libc/src/sys/uio/linux/CMakeLists.txt
+6-8libc/src/sys/uio/linux/readv.cpp
+14-0libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
+110-235 files

LLVM/project 2095fb9 — llvm/test/CodeGen/AMDGPU memory-legalizer-global-system.ll memory-legalizer-global-agent.ll

Rebase, improvements

Created using spr 1.3.7
DeltaFile
+7,612-3,853llvm/test/CodeGen/AMDGPU/memory-legalizer-private-agent.ll
+7,188-3,637llvm/test/CodeGen/AMDGPU/memory-legalizer-private-system.ll
+4,446-2,271llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-system.ll
+4,446-2,271llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-agent.ll
+4,386-2,240llvm/test/CodeGen/AMDGPU/memory-legalizer-global-agent.ll
+4,138-2,112llvm/test/CodeGen/AMDGPU/memory-legalizer-global-system.ll
+32,216-16,3842,138 files not shown
+103,257-47,8462,144 files

LLVM/project f0e16d6 — llvm/lib/Target/SPIRV SPIRVNonSemanticDebugHandler.h SPIRVNonSemanticDebugHandler.cpp, llvm/test/CodeGen/SPIRV/debug-info debug-scope-lexical-block-file.ll debug-lexical-block-discriminator.ll

[SPIRV] Emit DebugLexicalBlockDiscriminator for a DILexicalBlockFile.

A location scoped at a DILexicalBlockFile was emitted as a DebugScope of the compilation unit, so the discriminator did not round-trip.
Use the discriminator as the DebugScope operand, matching SPIRV-LLVM-Translator.
DeltaFile
+40-27llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.cpp
+67-0llvm/test/CodeGen/SPIRV/debug-info/debug-lexical-block-discriminator.ll
+17-6llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.h
+7-5llvm/test/CodeGen/SPIRV/debug-info/debug-scope-lexical-block-file.ll
+131-384 files

LLVM/project f3915dc — llvm/test/CodeGen/SPIRV/debug-info debug-composite-parent-debuginfonone.ll

Fix test that required a specific emission order.
DeltaFile
+22-20llvm/test/CodeGen/SPIRV/debug-info/debug-composite-parent-debuginfonone.ll
+22-201 files

LLVM/project 9af3adb — llvm/test/CodeGen/SPIRV/debug-info debug-lexical-block-discriminator.ll debug-scope-lexical-block-file.ll

[SPIRV] Drop --verify-machineinstrs from new lexical-block RUN lines.

The machine verifier already runs on the buildbots.

Co-authored-by: Cursor <cursoragent at cursor.com>
DeltaFile
+2-2llvm/test/CodeGen/SPIRV/debug-info/debug-scope-lexical-block-file.ll
+1-1llvm/test/CodeGen/SPIRV/debug-info/debug-lexical-block-discriminator.ll
+3-32 files

LLVM/project e80fc71 — llvm/test/CodeGen/SPIRV/debug-info debug-typedef-cycle-unsupported-forward-ref.ll debug-typedef-base-debuginfonone.ll

[SPIRV] Drop --verify-machineinstrs from new forward-ref tests.

The machine verifier already runs on the buildbots.

Co-authored-by: Cursor <cursoragent at cursor.com>
DeltaFile
+6-6llvm/test/CodeGen/SPIRV/debug-info/debug-composite-parent-debuginfonone.ll
+4-4llvm/test/CodeGen/SPIRV/debug-info/debug-typedef-cycle-unsupported-forward-ref.ll
+4-4llvm/test/CodeGen/SPIRV/debug-info/debug-typedef-base-debuginfonone.ll
+4-4llvm/test/CodeGen/SPIRV/debug-info/debug-type-composite-self-pointer-forward-refs.ll
+18-184 files

LLVM/project 740685b — llvm/lib/Target/SPIRV SPIRVNonSemanticDebugHandler.h SPIRVNonSemanticDebugHandler.cpp, llvm/test/CodeGen/SPIRV/debug-info debug-typedef-cycle-unsupported-forward-ref.ll debug-type-composite-self-pointer-forward-refs.ll

[SPIRV] Gate debug-scope forward references behind a flag.

-spirv-debug-scope-forward-refs defaults to off.
DeltaFile
+15-7llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.cpp
+4-10llvm/test/CodeGen/SPIRV/debug-info/debug-typedef-base-debuginfonone.ll
+6-4llvm/test/CodeGen/SPIRV/debug-info/debug-composite-parent-debuginfonone.ll
+4-3llvm/test/CodeGen/SPIRV/debug-info/debug-typedef-cycle-unsupported-forward-ref.ll
+4-3llvm/test/CodeGen/SPIRV/debug-info/debug-type-composite-self-pointer-forward-refs.ll
+2-1llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.h
+35-286 files

LLVM/project 4382be8 — llvm/lib/Target/SPIRV SPIRVNonSemanticDebugHandler.h SPIRVNonSemanticDebugHandler.cpp, llvm/test/CodeGen/SPIRV/debug-info debug-typedef-cycle-unsupported-forward-ref.ll debug-typedef-base-debuginfonone.ll

[SPIRV] Forward-reference debug scopes with a reserved result id.

Visiting a scope reserves its result id. With SPV_KHR_relaxed_extended_instruction a back edge uses that id through OpExtInstWithForwardRefsKHR, and a later failure defines it as DebugInfoNone when an emitted instruction already named it.
Without the extension the edge is dropped and a later walk can retry the scope.
DeltaFile
+93-13llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.cpp
+55-0llvm/test/CodeGen/SPIRV/debug-info/debug-composite-parent-debuginfonone.ll
+55-0llvm/test/CodeGen/SPIRV/debug-info/debug-type-composite-self-pointer-forward-refs.ll
+52-0llvm/test/CodeGen/SPIRV/debug-info/debug-typedef-base-debuginfonone.ll
+42-0llvm/test/CodeGen/SPIRV/debug-info/debug-typedef-cycle-unsupported-forward-ref.ll
+26-6llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.h
+323-191 files not shown
+326-207 files

LLVM/project 1111ed5 — llvm/test/CodeGen/SPIRV/debug-info debug-type-composite-self-pointer-forward-refs.ll

[SPIRV] Expect no unlisted DebugTypeMember in the self-pointer forward-refs test.

Without forward references, member next is no longer emitted after S and
its pointer, since S cannot list it.

Co-authored-by: Cursor <cursoragent at cursor.com>
DeltaFile
+3-7llvm/test/CodeGen/SPIRV/debug-info/debug-type-composite-self-pointer-forward-refs.ll
+3-71 files

LLVM/project bdb050a — clang/docs ReleaseNotes.md, clang/lib/Sema SemaOpenMP.cpp

Address review comments: reword comment, add release note, fold tests

Created using spr 1.3.7
DeltaFile
+0-44clang/test/OpenMP/taskloop_reduction_default_firstprivate_codegen.cpp
+19-0clang/test/OpenMP/nested_default_firstprivate_capture_codegen.cpp
+2-3clang/lib/Sema/SemaOpenMP.cpp
+4-0clang/docs/ReleaseNotes.md
+25-474 files

LLVM/project 3ba219c — llvm/test/Transforms/SLPVectorizer/X86 sese-region-non-schedulable-copyable.ll sese-region-non-schedulable.ll

[SLP][NFC]Add extra tests for SESE vectorization, NFC



Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/237939
DeltaFile
+220-0llvm/test/Transforms/SLPVectorizer/X86/sese-region-non-schedulable.ll
+74-0llvm/test/Transforms/SLPVectorizer/X86/sese-region-non-schedulable-copyable.ll
+294-02 files

LLVM/project 4e77aa1 — llvm/test/CodeGen/AMDGPU memintrinsic-unroll.ll amdgcn.bitcast.832bit.ll

Merge branch 'main' into users/zero9178/openmp-decouple
DeltaFile
+84,405-84,566llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+23,667-23,627llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
+9,311-9,381llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.960bit.ll
+8,998-9,209llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.896bit.ll
+8,016-8,194llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.832bit.ll
+7,335-7,432llvm/test/CodeGen/AMDGPU/memintrinsic-unroll.ll
+141,732-142,4093,500 files not shown
+395,220-312,4883,506 files

LLVM/project 81d345f — clang/lib/AST/ByteCode InterpBuiltin.cpp, clang/test/AST/ByteCode builtin-functions.cpp

[clang][bytecode] Check __builtin_strcmp for fixed-size integer elements (#237879)

We can't call getElemDataSize() on e.g. 128-bit integers.
DeltaFile
+21-1clang/lib/AST/ByteCode/InterpBuiltin.cpp
+5-0clang/test/AST/ByteCode/builtin-functions.cpp
+26-12 files

LLVM/project 9efb947 — llvm/lib/Transforms/InstCombine InstCombineCalls.cpp, llvm/test/Transforms/InstCombine minmax-of-itofp.ll

[InstCombine] Fold min/max of int-to-fp casts into integer min/max (#237190)

When both operands of a floating-point min/max intrinsic are the same
int-to-fp cast, the min/max can be done on the integers and converted
once:
  m(uitofp X, uitofp Y) -> uitofp(umin/umax(X, Y))
  m(sitofp X, sitofp Y) -> sitofp(smin/smax(X, Y))

Integer-to-float conversion is monotonic, so it preserves the order of
the operands. This covers all six min/max intrinsics.

Alive2: https://alive2.llvm.org/ce/z/PKQyse
DeltaFile
+195-0llvm/test/Transforms/InstCombine/minmax-of-itofp.ll
+25-0llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
+220-02 files

LLVM/project 44b5482 — llvm/test/CodeGen/AArch64 sve-fixed-length-masked-64-128bit-stores.ll sve-fixed-length-masked-64-128bit-loads.ll

[AArch64][NFC] Add tests for illegal fixed-width vector masked ops (#232718)
DeltaFile
+1,169-0llvm/test/CodeGen/AArch64/fixed-length-masked-loads.ll
+1,049-0llvm/test/CodeGen/AArch64/fixed-length-masked-stores.ll
+0-208llvm/test/CodeGen/AArch64/sve-fixed-length-masked-64-128bit-loads.ll
+0-187llvm/test/CodeGen/AArch64/sve-fixed-length-masked-64-128bit-stores.ll
+2,218-3954 files

LLVM/project 6604cd1 — mlir/lib/Target/SPIRV TranslateRegistration.cpp, mlir/test/Target/SPIRV serialize-emit-debug-info.mlir

[mlir][SPIR-V] Pass serialization options in --serialize-spirv (#237710)

serializeModule dropped its options, so --spirv-emit-debug-info had no
effect

---------

Co-authored-by: Igor Wodiany <dev at wodiany.com>
DeltaFile
+15-0mlir/test/Target/SPIRV/serialize-emit-debug-info.mlir
+1-1mlir/lib/Target/SPIRV/TranslateRegistration.cpp
+16-12 files

LLVM/project 49d9f27 — clang/lib/AST/ByteCode IntegralAP.h Char.h

[clang][bytecode] Resolve FIXME comment in CheckArraySize (#237860)

Add `getActiveBits()` to primitive integral types so we don't have to go
through `APSInt`.
DeltaFile
+12-13clang/lib/AST/ByteCode/InterpHelpers.h
+2-3clang/lib/AST/ByteCode/Interp.h
+5-0clang/lib/AST/ByteCode/Integral.h
+1-0clang/lib/AST/ByteCode/IntegralAP.h
+1-0clang/lib/AST/ByteCode/Char.h
+1-0clang/lib/AST/ByteCode/Boolean.h
+22-166 files

LLVM/project bf25652 — mlir/include/mlir/Dialect/XeGPU/Utils XeGPUUtils.h, mlir/lib/Conversion/XeGPUToXeVM XeGPUToXeVM.cpp

[MLIR][XeGPU] Fix memref-i4 offsets computation (#233474)

Introduces a new utility function `xegpu::addElemOffsetInBytes` for
byte-offset computation and use it in `xegpu-to-xevm` and
`peephole-optimizer`.

In comparison with the old logic, the new utility function handles
sub-byte (i4) types correctly by first multiplying the element-offset by
bit-width and dividing by 8 later:
```c++
// old logic
byteOffset = elemOffset * (bitWidth / 8);
basePtr += byteOffset;

// old logic breaks on sub-byte types:
byteOffset = 1024 * (4 / 8);  // 1024 * 0 == 0
basePtr += 0;                 // reads from the start of the buffer

// new logic in 'addElemOffsetInBytes'

    [6 lines not shown]
DeltaFile
+33-0mlir/lib/Dialect/XeGPU/Utils/XeGPUUtils.cpp
+20-0mlir/test/Dialect/XeGPU/peephole-optimize.mlir
+20-0mlir/test/Conversion/XeGPUToXeVM/materializecast.mlir
+3-11mlir/lib/Conversion/XeGPUToXeVM/XeGPUToXeVM.cpp
+2-6mlir/lib/Dialect/XeGPU/Transforms/XeGPUPeepHoleOptimizer.cpp
+7-0mlir/include/mlir/Dialect/XeGPU/Utils/XeGPUUtils.h
+85-176 files

LLVM/project 6bceb3a — clang/lib/Sema SemaOpenMP.cpp, openmp/runtime/test/worksharing/for omp_for_narrow_unsigned_iv.c

[OpenMP][clang] Correctly widen loop iteration calculation

For a loop like `for (uint32_t i = 0; i < (size_t)13; i += 2)`, widen
the `lower - step + 1` calculation to the size of the upper bound type,
aka size_t in this case. Otherwise, we would not caluclate 13 - (-1),
but instead 13 - (0xFFFFFFFF) and get the wrong result.

Fixes https://github.com/llvm/llvm-project/issues/70687.

Claude assisted with this patch.
DeltaFile
+120-0openmp/runtime/test/worksharing/for/omp_for_narrow_unsigned_iv.c
+20-0clang/lib/Sema/SemaOpenMP.cpp
+140-02 files

LLVM/project f736bb6 — llvm/include/llvm/Analysis TargetTransformInfo.h, llvm/lib/Target/AArch64 AArch64TargetTransformInfo.cpp

[AArch64][LSR] Prefer LSR solutions with less pre/post-index (#234264)

In AArch64 CPUs a pre or post indexed load/store typically uses an extra
ALU resource compared to a load/store that uses offset addressing.
Therefore in Loop Strength Reduce we should favor solutions with fewer
of these instructions when the Insns and NumRegs costs are equal.

This currently has no effect, as the preferred addressing mode for
AArch64 is None so LSR assumes pre/post index instructions don't exist,
but I'm planning on changing the addressing mode in the future.
DeltaFile
+61-17llvm/test/Transforms/LoopStrengthReduce/AArch64/prefer-all.ll
+12-5llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
+9-5llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
+1-0llvm/include/llvm/Analysis/TargetTransformInfo.h
+83-274 files

LLVM/project 836f3e4 — clang/docs ReleaseNotes.md, clang/lib/Lex PPExpressions.cpp

[clang][Lex] Fix assertion on unclosed paren in PP directive (#234992)

Clangd's preamble scan runs the preprocessor in single file parse mode.
If a directive contains an undefined identifier and ends inside a
subexpression (e.g. due to an unclosed parenthesis), PeekTok is already
eod when DiscardUntilEndOfDirective is called. That function lexes one
more token which is eof on the truncated buffer and triggers an
assertion.

Only discard if the current token is not eod, analogous to the other
callers of DiscardUntilEndOfDirective.

Fixes #226555
DeltaFile
+17-0clang/unittests/Lex/LexerTest.cpp
+4-1clang/lib/Lex/PPExpressions.cpp
+3-0clang/docs/ReleaseNotes.md
+24-13 files

LLVM/project f255ebf — lldb/source/Plugins/Process/wasm ProcessWasm.cpp, lldb/test/API/functionalities/gdb_remote_client TestWasm.py wasm_operating_system.py

[lldb] Read Wasm globals through a frame of the stub's own thread (#237195)

This commit fixes an unconditional cast from Thread to ThreadWasm, which
ignores the possibility of an OS plugin, by using the real thread list.

Note that using the qWasmGlobal variant that expects a frame index is
unlikely to succeed in the presence of a custom unwinder that presents a
different view of frames. But at the very least we shouldn't crash by
doing an invalid cast, which this fixes.
DeltaFile
+40-0lldb/test/API/functionalities/gdb_remote_client/wasm_operating_system.py
+25-0lldb/test/API/functionalities/gdb_remote_client/TestWasm.py
+10-10lldb/source/Plugins/Process/wasm/ProcessWasm.cpp
+75-103 files