LLVM/project c151d33mlir/python CMakeLists.txt

[MLIR][Python] Do not install ExecutionEngine wrapper when disabled (#211250)

The `_mlirExecutionEngine` extension is declared only when
`MLIR_ENABLE_EXECUTION_ENGINE` is enabled. However,
`execution_engine.py` and its type stub are currently added to the
Python package unconditionally.

This leaves an installed `mlir.execution_engine` module that fails
immediately when imported because its native extension is absent. It
also exposes a type stub for an unavailable API.

Making sure they're added only if `MLIR_ENABLE_EXECUTION_ENGINE` is
enabled.
DeltaFile
+13-2mlir/python/CMakeLists.txt
+13-21 files

LLVM/project be31bc0llvm/test/tools/llvm-mca/AMDGPU gfx10-trans.s gfx10-add-sequence.s

AMDGPU: Migrate llvm-mca tests to subarch triples
DeltaFile
+2-2llvm/test/tools/llvm-mca/AMDGPU/gfx10-trans.s
+1-1llvm/test/tools/llvm-mca/AMDGPU/gfx10-add-sequence.s
+1-1llvm/test/tools/llvm-mca/AMDGPU/gfx10-double.s
+1-1llvm/test/tools/llvm-mca/AMDGPU/gfx11-double.s
+1-1llvm/test/tools/llvm-mca/AMDGPU/gfx12-pseudo-scalar-trans.s
+1-1llvm/test/tools/llvm-mca/AMDGPU/gfx9-retireooo.s
+7-76 files not shown
+13-1312 files

LLVM/project 2b561d5llvm/lib/Transforms/Utils FunctionComparator.cpp, llvm/test/Transforms/MergeFunc atomic-load-elementwise.ll

[MergeFuncs] Account for elementwise loads in FunctionComparator
DeltaFile
+22-0llvm/test/Transforms/MergeFunc/atomic-load-elementwise.ll
+3-0llvm/lib/Transforms/Utils/FunctionComparator.cpp
+25-02 files

LLVM/project 520a930llvm/tools/llvm-objdump MachODump.cpp

[llvm-objdump] Factor the load command prologue into a shared function (#210881)

Move the repeated code to print cmd and cmdsize into a shared function.
DeltaFile
+94-215llvm/tools/llvm-objdump/MachODump.cpp
+94-2151 files

LLVM/project 949f50dflang/include/flang/Lower IterationSpace.h, flang/lib/Lower ConvertExpr.cpp IterationSpace.cpp

Merge branch 'main' into users/rampitec/simplify-pk-op-check
DeltaFile
+0-7,750flang/lib/Lower/ConvertExpr.cpp
+808-3mlir/test/CAPI/rewrite.c
+0-563flang/include/flang/Lower/IterationSpace.h
+0-377flang/lib/Lower/IterationSpace.cpp
+290-0llvm/test/Transforms/LoopDataPrefetch/AMDGPU/vmem-cache-line-size.ll
+251-0llvm/test/CodeGen/X86/pr51707.ll
+1,349-8,693205 files not shown
+5,705-10,787211 files

LLVM/project 44dd295llvm/lib/Target/AMDGPU AMDGPU.td GCNSubtarget.h, llvm/test/Transforms/LoopDataPrefetch/AMDGPU vmem-cache-line-size.ll lit.local.cfg

[AMDGPU] Using feature to define vmem cacheline size (#207884)

Co-authored-by: shore <shorshen at amd.com>
Co-authored-by: Matt Arsenault <Matthew.Arsenault at amd.com>
DeltaFile
+290-0llvm/test/Transforms/LoopDataPrefetch/AMDGPU/vmem-cache-line-size.ll
+15-1llvm/lib/Target/AMDGPU/AMDGPU.td
+7-0llvm/lib/Target/AMDGPU/GCNSubtarget.h
+6-0llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
+4-0llvm/test/Transforms/LoopDataPrefetch/AMDGPU/lit.local.cfg
+1-1llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
+323-26 files

LLVM/project bc3d3c9clang/lib/AST InferAlloc.cpp, clang/test/CodeGenCXX alloc-token-pointer.cpp

[AllocToken] Fix typeContainsPointer for references, PMFs, blocks, ObjC pointers (#211349)

When evaluating whether an allocated type contains a pointer to generate
the alloc_token metadata, typeContainsPointer() previously only checked
for PointerType.

Expand typeContainsPointer() to check isAnyPointerType(),
isReferenceType(), isMemberFunctionPointerType(), and
isBlockPointerType().
DeltaFile
+35-0clang/test/CodeGenCXX/alloc-token-pointer.cpp
+28-0clang/test/CodeGenObjCXX/alloc-token-pointer.mm
+3-1clang/lib/AST/InferAlloc.cpp
+66-13 files

LLVM/project e407c4bclang/include/clang/Basic BuiltinsAMDGPU.td, clang/test/CodeGenOpenCL builtins-amdgcn-global-async-load-lds.cl

[AMDGPU] Add gfx13 support for global_load_async_to_lds (#211248)
DeltaFile
+91-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.global.load.async.to.lds.ll
+50-0clang/test/CodeGenOpenCL/builtins-amdgcn-global-async-load-lds.cl
+48-0llvm/test/MC/AMDGPU/gfx13_asm_vflat.s
+6-2llvm/lib/Target/AMDGPU/FLATInstructions.td
+4-4clang/include/clang/Basic/BuiltinsAMDGPU.td
+2-1llvm/lib/Target/AMDGPU/AMDGPU.td
+201-71 files not shown
+202-77 files

LLVM/project 5152c51libc/config/linux/aarch64 headers.txt, libc/config/linux/arm headers.txt

[libc] Add err.h to Linux public header target lists (#210995)

Add libc.include.err to TARGET_PUBLIC_HEADERS for Linux targets
(aarch64, arm, riscv, x86_64) so that err.h gets generated and
installed.

Assisted-by: Automated tooling, human reviewed.
DeltaFile
+1-0libc/config/linux/arm/headers.txt
+1-0libc/config/linux/aarch64/headers.txt
+1-0libc/config/linux/riscv/headers.txt
+1-0libc/config/linux/x86_64/headers.txt
+4-04 files

LLVM/project ec08887llvm/include/llvm/CodeGen TargetRegisterInfo.h, llvm/lib/CodeGen RegisterClassInfo.cpp

[CodeGen] Precompute pressure-set register classes (#210751)

Profiling sqlite on aarch64-O3 shows ~1.26% of compile-time is spent in
RegisterClassInfo::computePSetLimit. This is called from
ScheduleDAGMILive::initRegPressure via
RegClassInfo->getRegPressureSetLimit.

computePSetLimit scans every register class and its pressure-set list to
find the class with the largest RegClassWeight::WeightLimit. This is
cached, but must be recomputed on every cache invalidation.

AArch64 has 530 register classes and 190 pressure sets. Populating all
pressure-set limits visits 530 x 190 = 100,700 register classes. This
can be precomputed in TableGen, while retaining the MF-dependent
reserved-register adjustment in computePSetLimit.

CTMark results [1]:
- stage1-aarch64-O3: -1.85% geomean; Bullet -4.01%.
- stage1-O3 (x86): -0.04%; Bullet -0.13%.

    [7 lines not shown]
DeltaFile
+32-2llvm/utils/TableGen/RegisterInfoEmitter.cpp
+1-19llvm/lib/CodeGen/RegisterClassInfo.cpp
+8-0llvm/test/TableGen/inhibit-pset.td
+5-0llvm/include/llvm/CodeGen/TargetRegisterInfo.h
+4-0llvm/unittests/CodeGen/MFCommon.inc
+50-215 files

LLVM/project 23de8d6llvm/lib/Target/Hexagon HexagonInstrInfo.cpp, llvm/test/CodeGen/Hexagon amode-opt-vS32Ub-pred.mir

Add missing opcode for offset validity check (#211186)

During offset validity check, the common API in HexagonInstrInfo does
not handle the opcode. Adding it fixes wherever offset calculation is
made for the instruction.

Co-authored-by: quic-santdas <quic_santdas at quicinc.com>
DeltaFile
+30-0llvm/test/CodeGen/Hexagon/amode-opt-vS32Ub-pred.mir
+1-0llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp
+31-02 files

LLVM/project 0cfc6e9clang/lib/Basic/Targets AMDGPU.cpp, clang/test/CodeGenOpenCL amdgpu-wavefront-size-from-subarch.cl

clang/AMDGPU: Fix handling of subarch only targets with no -mcpu

Extracted this out of the main clang triple conversion patches. This
should be applied to the release branch so you get consistent behavior
if you do build with subarch triples.
DeltaFile
+37-0clang/test/CodeGenOpenCL/amdgpu-wavefront-size-from-subarch.cl
+24-0clang/test/Preprocessor/amdgpu-subarch-cc1-target-cpu.cl
+8-2llvm/lib/TargetParser/AMDGPUTargetParser.cpp
+5-2clang/lib/Basic/Targets/AMDGPU.cpp
+74-44 files

LLVM/project 493aab3lldb/source/Commands CommandObjectScripting.cpp

[lldb/script] Remove verbose comments following c4962f5721a3 (NFC) (#210827)

This removes verbose comments from c4962f5721a3 following a post-merge
comment.

Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>
(cherry picked from commit e6cde20367a82aca112db73a3d1c76e77fe580f1)
DeltaFile
+0-9lldb/source/Commands/CommandObjectScripting.cpp
+0-91 files

LLVM/project 938bba1lldb/source/Commands CommandObjectScripting.cpp

[lldb/script] Only auto-open the generator template in an editor when interactive (#210808)

`scripting extension generate` always launched the external editor after
writing the template to disk, which is fine when a user types the
command at the prompt but is undesirable when the command runs from the
test suite, a headless driver, or a script -- each invocation spawns an
editor that nobody sees.

Extend `--open-editor` (`-e`) so that the default (`eLazyBoolCalculate`)
now dispatches on `CommandReturnObject::GetInteractive()`, which
`SBCommandInterpreter::HandleCommand` explicitly clears. That's the
accurate signal even when the process' stdin is a TTY inherited from the
parent (e.g. `lldb-dotest` invoked from a terminal). `--open-editor yes`
and `--open-editor no` still force the behavior explicitly.

Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>
(cherry picked from commit 3d0f18b6210e8cbc9fa04bca91581e25371c5b14)
DeltaFile
+23-4lldb/source/Commands/CommandObjectScripting.cpp
+23-41 files

LLVM/project 3df0bbdlldb/source/Commands CommandObjectScripting.cpp Options.td, lldb/source/Core PluginManager.cpp

[lldb/script] Add scripting extension template generator (#209647)

This patch adds a `scripting extension generate <ExtensionType>...`
command that introspects a Python extension base class and emits a
skeleton subclass with `# TODO: Implement` stubs for its abstract
methods (or, with `-a`, every method), then opens the result in an
editor.

Generated imports use `from <module> import <class>`, and the generated
`__init__` forwards its arguments to `super().__init__(...)` since every
base class relies on its constructor to set up attributes
(`self.target`, `self.process`, ...) that inherited, non-overridden
methods depend on. When the host can't open an external editor (e.g.
non-macOS), the command reports that as a message rather than an error,
since the file is already written.

To catch regressions in the generator itself instead of just checking
that a file was produced, this patch adds
`TestScriptingExtensionGenerate.py`, which generates a template for

    [6 lines not shown]
DeltaFile
+359-0lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
+188-0lldb/source/Commands/CommandObjectScripting.cpp
+167-0lldb/test/API/functionalities/scripting_extension_generate/TestScriptingExtensionGenerate.py
+125-0lldb/source/Interpreter/embedded_interpreter.py
+21-9lldb/source/Core/PluginManager.cpp
+28-0lldb/source/Commands/Options.td
+888-97 files not shown
+961-1213 files

LLVM/project e28ea20lldb/examples/python/templates scripted_stackframe_recognizer.py, lldb/source/Plugins/ScriptInterpreter/Python ScriptInterpreterPython.cpp

[lldb/script] Migrate frame recognizers onto ScriptedPythonInterface  (#209805)

Give `frame recognizer add -l` a formal
ScriptedStackFrameRecognizerInterface, matching the architecture already
used by ScriptedProcess, ScriptedBreakpoint, etc.: a C++ interface
header, a Python-backed implementation built on
ScriptedPythonInterface's CreatePluginObject/Dispatch machinery,
PluginManager registration, and a generatable Python ABC template
(scripted_stackframe_recognizer.py).

get_recognized_arguments' documented contract returns a plain list of
lldb.SBValue (not an lldb.SBValueList), so it bypasses the generic
Dispatch<ValueObjectListSP>() extractor and calls the SWIG bridge
directly, matching the legacy behavior exactly.

ScriptedStackFrameRecognizer now holds a single interface object created
once in its constructor and reused across every RecognizeFrame() call,
same lifecycle as before.


    [2 lines not shown]
DeltaFile
+102-0lldb/examples/python/templates/scripted_stackframe_recognizer.py
+97-0lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedStackFrameRecognizerPythonInterface.cpp
+5-86lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
+48-13lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPythonInterface.cpp
+57-0lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedStackFrameRecognizerPythonInterface.h
+39-11lldb/source/Target/StackFrameRecognizer.cpp
+348-11017 files not shown
+485-21223 files

LLVM/project 694db4dlldb/examples/python/templates scripted_process.py scripted_breakpoint.py

[lldb/script] Add type hints to scripted extension base classes (#209680)

This patch adds type annotations to every method (parameters and return
types) and every `self.<name>` attribute of the scripted extension base
classes shipped under `lldb/examples/python/templates/`. Extension
authors reading the base classes -- or an IDE navigating them -- can now
see the `lldb.SB*` contract each method exposes without having to
cross-reference the docstring.

`scripting extension generate` also picks the annotations up: derived
class docstrings advertise each inherited attribute together with its
declared type, and the generated method signatures carry their parameter
and return annotations too.

The classes covered are `ScriptedProcess`, `ScriptedThread`,
`ScriptedFrame`, `PassthroughScriptedProcess`,
`PassthroughScriptedThread`, `ScriptedFrameProvider`,
`ScriptedBreakpointResolver`, `ScriptedThreadPlan`, `ScriptedHook`,
`ScriptedPlatform`, and `OperatingSystem`.

    [3 lines not shown]
DeltaFile
+163-56lldb/examples/python/templates/scripted_process.py
+16-8lldb/examples/python/templates/scripted_breakpoint.py
+14-5lldb/examples/python/templates/scripted_frame_provider.py
+10-6lldb/examples/python/templates/operating_system.py
+8-7lldb/examples/python/templates/scripted_platform.py
+9-4lldb/examples/python/templates/scripted_hook.py
+220-861 files not shown
+222-867 files

LLVM/project c1ee046lldb/source/Commands CommandObjectScripting.cpp, lldb/source/Core PluginManager.cpp

[lldb/script] Improve `scripting extension list` output and filtering (#209400)

This patch improves `scripting extension list` in three ways.

First, it groups the output by `ScriptedExtension`: instead of one row
per registered plugin instance, one entry per extension is printed with
a combined `Language` field.

Second, it colorizes and visually separates the output. Each entry is
preceded by a dimmed dashed separator; field labels are printed in bold
green, the extension name value in bold cyan as a mini-heading, and
`None` usage values are dimmed, all via the same
`ansi::FormatAnsiTerminalCodes(..., use_color)` idiom
`Breakpoint::GetDescription` uses elsewhere, gracefully no-op when color
is disabled or unsupported. `ScriptedInterfaceUsages::Dump` takes an
optional `use_color` parameter so its own `API Usages:` / `Command
Interpreter Usages:` labels can match.

Third, it adds `-j`/`--json` to emit a JSON array of `{name,

    [16 lines not shown]
DeltaFile
+165-31lldb/source/Commands/CommandObjectScripting.cpp
+103-0lldb/test/API/commands/scripting/extension/TestScriptingExtensionListJSON.py
+48-41lldb/test/Shell/Commands/command-scripting-extension-list.test
+45-0lldb/source/Interpreter/ScriptInterpreter.cpp
+13-3lldb/source/Interpreter/Interfaces/ScriptedInterfaceUsages.cpp
+13-0lldb/source/Core/PluginManager.cpp
+387-758 files not shown
+416-7714 files

LLVM/project 62d4ad9libunwind/src UnwindCursor.hpp

[libunwind][AIX] Handle VAPI-based return addresses in stack unwinding for LLU (#209280)

In AIX's implementation of LLU (Live Library Update), the caller of a
Virtual API (VAPI) interface instead calls VAPI glue and the
implementation for a VAPI function is entered from the VAPI glue. If a
VAPI is not already active on the thread, the VAPI calls the
implementation of the VAPI function with the link register (LR) value
set to a return address in the VAPI glue. In this case, the LR (return
address) value on entry to the VAPI glue is saved in the VAPI control
block. This PR checks whether the return address in a stack frame falls
within the VAPI address range. If it does, the unwinder retrieves the LR
value from the VAPI control block and uses it as the return address
during stack unwinding. In addition, before transferring control to a
landing pad, this PR executes the VAPI return glue to clear the VAPI
control block if the VAPI glue was used.

---------

Co-authored-by: Hubert Tong <hubert.reinterpretcast at gmail.com>
(cherry picked from commit 8aa808457c6aeba25ec0e17139c3fcab59923c3c)
DeltaFile
+116-4libunwind/src/UnwindCursor.hpp
+116-41 files

LLVM/project 6a8bec8llvm/lib/Transforms/Scalar LowerMatrixIntrinsics.cpp, llvm/test/Transforms/LowerMatrixIntrinsics phi.ll

[Matrix] Use incoming terminator as insert point in visitPHI. (#211211)

For some instructions, like invoke, getInsertionPointAfterDef may return
an std::nullopt. Using the insert point after the phi is then incorrect.
Use the incoming terminator as default insert point to fix a crash in
the added test cases.

PR: https://github.com/llvm/llvm-project/pull/211211
(cherry picked from commit 8c556564a2199e13f59dc43bfa5ef4345a89ae3b)
DeltaFile
+74-0llvm/test/Transforms/LowerMatrixIntrinsics/phi.ll
+3-3llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp
+77-32 files

LLVM/project 0a79ab0flang/include/flang/Lower DirectivesCommon.h, flang/test/Lower/MIF change_team2.f90

[flang][PFT-to-MLIR] Default wrap-unstructured-constructs-in-execute-region to off (#211290)
DeltaFile
+0-49flang/test/Lower/OpenMP/wsloop-select-case.f90
+0-39flang/test/Lower/OpenMP/wsloop-computed-goto.f90
+1-8flang/include/flang/Lower/DirectivesCommon.h
+2-2flang/test/Lower/OpenMP/loop-compound.f90
+2-2flang/test/Lower/MIF/change_team2.f90
+2-2flang/test/Lower/OpenACC/acc-terminator.f90
+7-10218 files not shown
+29-12424 files

LLVM/project 72b7645flang/lib/Lower/OpenMP OpenMP.cpp, flang/test/Lower/OpenMP assumption.f90

[flang][OpenMP] Add lowering for assume and assumes directives (#205615)

Adds lowering for the assume and assumes directives. holds clauses are lowered to llvm.assume, the other assumption clauses are ignored, and assumes is a no-op. Hints are skipped under -fopenmp-simd.
DeltaFile
+30-4flang/lib/Lower/OpenMP/OpenMP.cpp
+21-0flang/test/Lower/OpenMP/assumption.f90
+1-1flang/test/Lower/OpenMP/Todo/assumes.f90
+1-1flang/test/Lower/OpenMP/Todo/assume.f90
+53-64 files

LLVM/project b570122clang/test/CodeGenCoroutines gh188230-coro-await-elidable-suspend-never-final.cpp, llvm/include/llvm/Transforms/Coroutines CoroShape.h

[Clang][coro] Fix `coro.free` in `.resume` clones with `[[clang::coro_await_elidable]]` (#207799)

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

CoroAnnotationElide rewrites annotated safe calls to the `.noalloc`
variant. The noalloc frame is caller-owned, but its `.resume` clone is
shared with ordinary heap-allocated instances.

With a `suspend_never` final suspend, normal resumption falls through to
the `coro.free` deallocation path. Regular frontend cleanup has already
run before this point. `coro.free` must therefore produce the frame
pointer for a heap instance and null for a `.noalloc` instance.

Use the frame destroy slot as a per-instance allocation tag. Cache its
value at resume entry, before user code can resume and release the
enclosing caller frame, then compare it with the cleanup clone. Replace
each `coro.free` result with the frame pointer for a heap instance and
null for an elided instance.


    [5 lines not shown]
DeltaFile
+84-0llvm/test/Transforms/Coroutines/coro-split-resume-fallthrough-destroy-slot.ll
+79-0clang/test/CodeGenCoroutines/gh188230-coro-await-elidable-suspend-never-final.cpp
+66-4llvm/lib/Transforms/Coroutines/CoroSplit.cpp
+5-1llvm/test/Transforms/Coroutines/coro-split-addrspace.ll
+5-1llvm/test/Transforms/Coroutines/coro-split-00.ll
+1-0llvm/include/llvm/Transforms/Coroutines/CoroShape.h
+240-61 files not shown
+241-67 files

LLVM/project fe4580elibcxx/src/include overridable_function.h

[PAC][libc++] Fix build with `ptrauth_calls` feature (#211033)

After partial revert of #208330 in #209928, the libcxx build started
failing because of missing `<cstdint>` include required for `uintptr_t`
declaration used only by code behind `ptrauth_calls` feature check. See
https://lab.llvm.org/buildbot/#/builders/227/builds/3358

This patch adds the missing include.

(cherry picked from commit 12e1c7f70f34d59c023d05d0fe2c228a4e9aac11)
DeltaFile
+1-0libcxx/src/include/overridable_function.h
+1-01 files

LLVM/project 3eed3d7clang/lib/Sema SemaExpr.cpp, clang/test/CodeGenCXX gh196469-default-member-init-lambda-cleanup.cpp

Revert "[Clang] Rebuild lambda captures in default member initializers while skipping body (#196597)" (#211001)

This reverts commit 50f30bedaa81919915049474f4350ef19c36b7ca. The commit
causes a crash in clang:
https://github.com/llvm/llvm-project/pull/196597#issuecomment-4997866573

(cherry picked from commit 150aa53d48aa6fdde26e00ea118582eb949f0dca)
DeltaFile
+8-48clang/lib/Sema/SemaExpr.cpp
+0-37clang/test/CodeGenCXX/gh196469-default-member-init-lambda-cleanup.cpp
+0-22clang/test/SemaCXX/gh196469-default-member-init-lambda-capture.cpp
+12-0clang/test/SemaCXX/source_location.cpp
+20-1074 files

LLVM/project f7ae0ecclang-tools-extra/unittests/clang-change-namespace ChangeNamespaceTests.cpp, clang/test/Format dump-config-objc-stdin.m

[clang-format][clang-tools-extra] Fix leaking of host-level config into test environment (#206358)

These leaks were causing false test failures due to my global
.clang-format being in an ancestor directory of the build directory.
These changes prevent those issues when running the tests on my system.
I used MiMo v2.5 Pro agentically in Zed to find and fix the issue. But I
understand the changes and judge them to be safe and a clear improvement
over the status quo.
DeltaFile
+2-2clang/test/Format/dump-config-objc-stdin.m
+1-1clang-tools-extra/unittests/clang-change-namespace/ChangeNamespaceTests.cpp
+3-32 files

LLVM/project 32eed90lldb/source/Core DumpDataExtractor.cpp, lldb/test/API/functionalities/data-formatter/builtin-formats TestBuiltinFormats.py

[lldb] Fix Unicode code point formatting to use proper notation  (#211131)

- use uppercase hex digits

- only emit "U+" notation for valid code points (<= U+10FFFF),
zero-padded to a minimum of four digits.

rdar://173817553

Assisted-by: claude
(cherry picked from commit 0cd942fa1b6de94fd6d7fa7ba73f0233293115f8)
DeltaFile
+11-4lldb/source/Core/DumpDataExtractor.cpp
+10-1lldb/test/API/functionalities/data-formatter/builtin-formats/TestBuiltinFormats.py
+9-2lldb/unittests/Core/DumpDataExtractorTest.cpp
+5-5lldb/test/Shell/SymbolFile/NativePDB/globals-fundamental.cpp
+2-4lldb/test/API/lang/cpp/char1632_t/TestChar1632T.py
+37-165 files

LLVM/project da27aacllvm/include/llvm/IR IntrinsicsRISCV.td, llvm/lib/Target/RISCV RISCVISelLowering.cpp RISCVInstrInfoP.td

[RISCV][P-ext] Add packed sign and zero extend intrinsics (#208685)

Add SelectionDAG and intrinsic support for the RISC-V P packed sign- and
zero-extend operations.

Sign-extend is matched through `sext_inreg` (folded from the `shl`/`ashr`
idiom by the generic combiner) and selects to `psext.*`. Zero-extend reuses
the existing `PPAIRE` node with a zero operand instead of a new target node,
since `pzext.* rd, rs` is an alias of `ppaire.* rd, rs, x0`: implementing
`isVectorClearMaskLegal` lets the generic `DAGCombiner::XformToShuffleWithZero`
rewrite the `(and vXi16, 0xff)` / `(and vXi32, 0xffff)` idiom into a shuffle
with a zero operand, which `lowerVECTOR_SHUFFLEAsPPair` folds to `PPAIRE`.

Also adds the LLVM IR intrinsics `llvm.riscv.psext.b`/`.h` and
`llvm.riscv.pzext.b`/`.h`. For RV64 32-bit packed results, the lowering widens
to the legal 64-bit type and extracts the low subvector.
DeltaFile
+144-0llvm/test/CodeGen/RISCV/rvp-simd-64.ll
+117-9llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+39-0llvm/test/CodeGen/RISCV/rvp-simd-intrinsic-invalid.ll
+38-0llvm/test/CodeGen/RISCV/rvp-simd-32.ll
+16-5llvm/lib/Target/RISCV/RISCVInstrInfoP.td
+10-0llvm/include/llvm/IR/IntrinsicsRISCV.td
+364-141 files not shown
+366-147 files

LLVM/project 5910053cross-project-tests/dtlto remote-options.test, llvm/lib/DTLTO DTLTO.cpp

[DTLTO] Forward loop interchange to DTLTO remote compilations (#208591)

Recent upstream LLVM changes enabled `LoopInterchangePass` by default
through `PipelineTuningOptions`. TLTO observes that state directly from
the LTO config, but DTLTO was not forwarding the equivalent Clang option
to the remote compiler. As a result, TLTO could run loop interchange
pass while DTLTO did not, producing codegen differences for
configurations that exposed profitable/legally interchangeable loops.
Note that this was a pre-existing issue, the change in default has
simply exposed it.

Forward `C.PTO.LoopInterchange` as `-floop-interchange` when
constructing the common DTLTO remote compiler options. Extend the
testing to check that the SN-DBS remote command line includes the
forwarded option.

The code for forwarding such options is only intended as a temporary
measure. A more comprehensive solution is in discussion here:
https://discourse.llvm.org/t/synchronizing-lto-code-generation-configuration-between-clang-and-lld-dtlto

    [2 lines not shown]
DeltaFile
+9-0cross-project-tests/dtlto/remote-options.test
+2-0llvm/lib/DTLTO/DTLTO.cpp
+1-0llvm/test/ThinLTO/X86/dtlto/json.ll
+12-03 files

LLVM/project bb709cbcross-project-tests CMakeLists.txt, cross-project-tests/dtlto remote-options.test

[DTLTO] Add remote compiler option forwarding coverage (#208589)

Add a cross-project DTLTO test that checks the existing LTO
configuration state serialized into the remote Clang command line. The
test uses the validate.py distributor to inspect the generated DTLTO
JSON.

Cover all the existing forwarded options.

Add paired negative checks for optional flags so the test also verifies
they are not emitted when the corresponding configuration state is not
set.

(cherry picked from commit c012610ab9924f465baea5e62397056ea9594567)
DeltaFile
+90-0cross-project-tests/dtlto/remote-options.test
+1-0cross-project-tests/CMakeLists.txt
+91-02 files