LLVM/project be077ce — llvm/lib/Target/AArch64 AArch64TargetTransformInfo.h AArch64TargetTransformInfo.cpp

[AArch64][SME] NFC: Inline getCompatibilityForChangeToStreamingMode.

This removes the need for the `StreamingIncompatibility` enum and
makes the code a little simpler.

This PR also moves hasPossibleIncompatibleOps to AArch64TTIimpl,
so that we can query the costmodel in a follow-up PR.
DeltaFile
+39-62llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
+3-0llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
+42-622 files

LLVM/project 23c5322 — llvm/lib/Target/AArch64 AArch64TargetTransformInfo.cpp, llvm/test/Transforms/Inline/AArch64 sme-pstatesm-attrs.ll

[AArch64][SME] NFC: Add inline test for gather. (#231897)

Also combine case statements (is NFC change).
DeltaFile
+21-1llvm/test/Transforms/Inline/AArch64/sme-pstatesm-attrs.ll
+0-6llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
+21-72 files

LLVM/project c4fad29 — llvm/lib/IR Attributes.cpp, llvm/unittests/IR AttributesTest.cpp

IR: Speed up AttrBuilder merge (#232204)

AttrBuilder::merge added the attributes of the other builder one at a
time, each with a binary search and a vector insert into the sorted
list. Both lists are sorted, so merge them in one pass, as the TODO
suggested. This speeds up Attributor manifesting attributes.

Instructions spent in amdgpu-attributor
  (opt, parse cost subtracted, median of 3 runs):
  rocPRIM test_device_scan, gfx942:          1963M -> 1923M (-2.0%)
  Blender Cycles HIP kernel, gfx1100:        636M -> 632M (within noise)
  rocPRIM 16 tests, full LTO, closed world:  7415M -> 7273M (-1.9%)

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+33-0llvm/unittests/IR/AttributesTest.cpp
+26-3llvm/lib/IR/Attributes.cpp
+59-32 files

LLVM/project 4eb44be — clang/test/Driver aarch64-v98a.c, llvm/lib/Target/AArch64 AArch64InstrInfo.td

Revert "fixup! Change extension name + combine classes"

This reverts commit d7e23bf95f9d159ccad71f7f882769dc316f0320.
DeltaFile
+15-15llvm/test/MC/AArch64/SVE/ldapro-stlro.s
+9-9llvm/unittests/TargetParser/TargetParserTest.cpp
+3-3llvm/test/MC/AArch64/SVE2/directive-arch_extension-negative.s
+3-3llvm/test/MC/AArch64/SVE2/directive-arch-negative.s
+3-3clang/test/Driver/aarch64-v98a.c
+2-2llvm/lib/Target/AArch64/AArch64InstrInfo.td
+35-357 files not shown
+42-4213 files

LLVM/project 79005f6 — llvm/include/llvm/IR IntrinsicInst.h, llvm/lib/IR Verifier.cpp BasicBlock.cpp

[DebugInfo] Remove more dead debug intrinsic handling (NFC) (#232180)

This patch removes more leftover code for legacy debug intrinsics:

- llvm::skipDebugIntrinsics, which is now an identity function at all
  call sites, along with its unit test.
- Debug intrinsic checks in BasicBlock iteration helpers,
  User::replaceUsesOfWith, and Verifier::visitDIAssignIDMetadata.
- Unused location-operand and address methods on DbgVariableIntrinsic
  and DbgAssignIntrinsic that became dead after dropping the check in
  User::replaceUsesOfWith.

Note that debug info is now represented with DbgRecord rather than
debug intrinsics outside the DirectX backend.  Bitcode auto-upgrade
converts debug intrinsics to DbgRecords on load, and the DirectX
backend only materializes debug intrinsics late in DXILDebugInfo,
which strips DIAssignID metadata and does not use the removed code
paths.

Assisted-by: Antigravity
DeltaFile
+0-68llvm/lib/IR/IntrinsicInst.cpp
+0-41llvm/unittests/IR/InstructionsTest.cpp
+0-13llvm/lib/IR/Verifier.cpp
+3-10llvm/lib/IR/BasicBlock.cpp
+4-7llvm/lib/Transforms/Scalar/Scalarizer.cpp
+0-10llvm/include/llvm/IR/IntrinsicInst.h
+7-1494 files not shown
+7-16310 files

LLVM/project d1ed1de — clang/lib/APINotes APINotesManager.cpp

[clang] Migrate away from PointerUnion::dyn_cast (NFC) (#232179)

Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:

    // FIXME: Replace the uses of is(), get() and dyn_cast() with
    //        isa<T>, cast<T> and the llvm::dyn_cast<T>

Literal migration would result in dyn_cast_if_present (see the
definition of PointerUnion::dyn_cast), but this patch uses dyn_cast.
Note that loadAPINotes() returns false only after storing a nonnull
APINotesReader * in Readers[*Dir].

Assisted-by: Antigravity
DeltaFile
+1-1clang/lib/APINotes/APINotesManager.cpp
+1-11 files

OPNSense/core 51d6a72 — src/etc/inc interfaces.inc

Update src/etc/inc/interfaces.inc

Co-authored-by: Franco Fichtner <franco at opnsense.org>
DeltaFile
+1-1src/etc/inc/interfaces.inc
+1-11 files

LLVM/project ce59d91 — llvm/lib/CodeGen/AsmPrinter DebugHandlerBase.cpp

[DebugInfo] Skip instruction ordering without debug values (NFC) (#231943)

Improves compile-time across all debug configurations.

CTMark results [1]:

- stage1-O0-g -0.13%
- stage1-aarch64-O0-g -0.14%
- stage2-O0-g -0.15%

[1] https://llvm-compile-time-tracker.com/compare.php?from=3afa38c6b8eac95660a4677b1353745c720212e5&to=0c2de29596c88460b29c67161cc74118ba10facc&stat=instructions:u

Assisted-by: codex
DeltaFile
+6-4llvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp
+6-41 files

LLVM/project 5f324c9 — clang/lib/CIR/Dialect/IR CIRDialect.cpp, clang/test/CIR/Transforms remove-dead-values-try.cir

[CIR] Fix cir.try successor regions

`TryOp::getSuccessorRegions` sent every exit from the try region back to the
parent, so nothing led from the try region to the handlers. A `cir.resume`
ending the try region, left there once FlattenCFG has flattened an inner
cleanup scope, unwinds into a handler, and `CIRTryOpFlattening` branches it
to the handler dispatch block. Now every exit from the try region can enter
the handlers, and a `cir.resume` leaves the op only when there are none. The
parent keeps its edges to the handlers. An unwind out of a call in the try
region is not a region branch point, so these edges stand in for it, and
without them -remove-dead-values empties a handler that is reached only that
way.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+131-12clang/unittests/CIR/ControlFlowTest.cpp
+40-0clang/test/CIR/Transforms/remove-dead-values-try.cir
+30-8clang/lib/CIR/Dialect/IR/CIRDialect.cpp
+201-203 files

LLVM/project cb69027 — mlir/lib/Conversion/NVGPUToNVVM NVGPUToNVVM.cpp, mlir/test/Conversion/NVGPUToNVVM nvgpu-to-nvvm.mlir

[mlir][nvgpu] Preserve unsigned types in MMA lowering to NVVM (#224837)

Type::isInteger(width) matches signed, unsigned, and signless integers.
As a result, getNvvmMmaType lowered ui8 and ui4 multiplicands to the
signed PTX types s8 and s4. Unsigned values with the high bit set were
therefore interpreted as negative by mma.sync and mma.sp.sync, with no
diagnostic.

Select u8 and u4 for unsigned operands while retaining the existing
signed PTX types for signed and signless operands. The downstream NVVM
and PTX lowering already supports these types. Add coverage for dense
ui8/ui4 and sparse ui8/i4/ui4 MMA lowering.
DeltaFile
+64-0mlir/test/Conversion/NVGPUToNVVM/nvgpu-to-nvvm.mlir
+2-2mlir/lib/Conversion/NVGPUToNVVM/NVGPUToNVVM.cpp
+66-22 files

LLVM/project 0173f46 — clang/lib/CIR/CodeGen CMakeLists.txt pch.h

[CIR][CMake] Add PCH for clangCIR. NFC (#231068)

clangCIR reuses clangAST's precompiled header, so each of its 54 files
reparses the MLIR and CIR dialect headers. Add a private PCH like
clangCodeGen's (#206018).

Rebuilding clangCIR (Release+Asserts, 28 threads):

```
              summed per-file   user CPU   wall
before        312 s             282 s      20.0 s
after         79 s + 6 s PCH    78 s       18.1 s
```

LLM-aided
DeltaFile
+23-0clang/lib/CIR/CodeGen/pch.h
+4-0clang/lib/CIR/CodeGen/CMakeLists.txt
+27-02 files

LLVM/project a3996ca — offload/plugins-nextgen/level_zero/include L0Device.h, offload/plugins-nextgen/level_zero/src L0Device.cpp

[Offload][L0] Adjust incorrectly reported limits for Level Zero (#231913)

* Adjust the values of the static SPIRV GridValue with the values of the
actual hw.
* Report correctly to the PluginInterface the MaxBlockSharedMemSize.
* Mark as TODO the value of the timestamp clock used by libdevice.

Assisted by Claude.
DeltaFile
+10-3offload/plugins-nextgen/level_zero/src/L0Device.cpp
+5-1offload/plugins-nextgen/level_zero/include/L0Device.h
+15-42 files

FreeBSD/src a4939c5 — sys/dev/virtio/gpu virtio_gpu.c

virtio_gpu: use an X8R8G8B8 resource on big-endian guests

The virtio-gpu resource formats are defined by byte order in memory,
while vt(4) and the X server (through vt_fb and the fb mmap) write
native 32-bit 0x00RRGGBB pixels into the shadow framebuffer.  On a
big-endian guest such as powerpc64 those pixels land in memory as
00 RR GG BB, which the host interprets under B8G8R8X8 with red and
blue swapped and the padding byte taken as blue: white renders yellow
and blue renders black.

Request X8R8G8B8 on big-endian guests instead, which is also what the
Linux driver does (DRM_FORMAT_HOST_XRGB8888).  Reproduced with a colour
test pattern on a powerpc64 QEMU pseries guest using the identically
coded out-of-tree fork of this driver (graphics/virtio-gpu-qemu-kmod);
little-endian guests are unchanged.

Differential Revision:  https://reviews.freebsd.org/D60085
Approved by:    jhibbits
MFC after:      1 week

    [3 lines not shown]
DeltaFile
+7-1sys/dev/virtio/gpu/virtio_gpu.c
+7-11 files

LLVM/project 02f16a1 — mlir/lib/Target/SPIRV/Deserialization Deserializer.cpp, mlir/lib/Target/SPIRV/Serialization Serializer.cpp

[mlir][SPIR-V] Support CPacked decorations in binary round trips (#232192)

The SPIR-V dialect already represents CPacked struct types, but binary
serialization and deserialization reject the decoration. Handle CPacked
as a unit decoration in both directions so packed structs survive binary
round trips.

Add round-trip coverage for literal and identified packed structs.
DeltaFile
+14-0mlir/test/Target/SPIRV/decorations.mlir
+1-0mlir/lib/Target/SPIRV/Serialization/Serializer.cpp
+1-0mlir/lib/Target/SPIRV/Deserialization/Deserializer.cpp
+16-03 files

LLVM/project 96cbc7d — llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/lib/Transforms/Vectorize/SLPVectorizer SLPUtils.h SLPUtils.cpp

[SLP][modularisation][NFC] Move loop trip-count helpers to SLPUtils

Move the BoUpSLP-independent helpers findInnermostNonInvariantLoop and
getLoopTripCount out of SLPVectorizer.cpp into the self-contained
SLPVectorizer/SLPUtils.{h,cpp} module. getLoopTripCount reads the file-local
LoopAwareTripCount cl::opt, which stays static in SLPVectorizer.cpp and is
passed to the moved helper as an explicit parameter. NFC.

Part of the SLPVectorizer.cpp modularization effort:
https://discourse.llvm.org/t/modularizing-slpvectorizer-cpp/90922
DeltaFile
+2-34llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+32-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.cpp
+11-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.h
+45-343 files

LLVM/project a4bd596 — clang/lib/CIR/Dialect/IR CIRDialect.cpp, clang/test/CIR/Transforms remove-dead-values-cleanup-scope.cir

[CIR] Keep cir.cleanup.scope cleanup regions reachable

RegionBranchOpInterface::getSuccessorRegions must return every region that
may run next, but an unwind out of a call in the body, or a cir.return,
cir.break, cir.continue or cir.goto out of it, runs the cleanup without
passing a region branch point. A cleanup reached only that way had no
predecessor, so generic passes treated it as dead, and -remove-dead-values
erased an EH cleanup that stores to memory. Now the cleanup region is a
successor of the parent and of every body exit, and a body exit that the
cleanup kind does not cover can also leave the op.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+27-23clang/unittests/CIR/ControlFlowTest.cpp
+19-17clang/lib/CIR/Dialect/IR/CIRDialect.cpp
+33-0clang/test/CIR/Transforms/remove-dead-values-cleanup-scope.cir
+79-403 files

LLVM/project f9ceca5 — llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/lib/Transforms/Vectorize/SLPVectorizer SLPUtils.h SLPReductionUtils.h

[SLP][modularisation][NFC] Move getReductionInstr to SLPReductionUtils, getAggregateSize to SLPUtils

Move the reduction-root helper getReductionInstr out of SLPVectorizer.cpp
into the self-contained SLPVectorizer/SLPReductionUtils.{h,cpp} module.

getAggregateSize is not reduction-specific: its only user is
findBuildAggregate and it only computes the element count of a homogeneous
aggregate from its type. Move it to the generic SLPVectorizer/SLPUtils
module instead.

Part of the SLPVectorizer.cpp modularization effort:
https://discourse.llvm.org/t/modularizing-slpvectorizer-cpp/90922

Assisted by AI
DeltaFile
+0-79llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+47-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPReductionUtils.cpp
+29-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.cpp
+9-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPReductionUtils.h
+5-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.h
+90-795 files

LLVM/project 42cd337 — llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/lib/Transforms/Vectorize/SLPVectorizer SLPUtils.h SLPUtils.cpp

[SLP][modularisation][NFC] Move isFirstInsertElement/getDebugLocFromPHI to SLPUtils

Move the BoUpSLP-independent helpers isFirstInsertElement and
getDebugLocFromPHI out of SLPVectorizer.cpp into the self-contained
SLPVectorizer/SLPUtils.{h,cpp} module.

Part of the SLPVectorizer.cpp modularization effort:
https://discourse.llvm.org/t/modularizing-slpvectorizer-cpp/90922
DeltaFile
+0-35llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+34-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.cpp
+11-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.h
+45-353 files

LLVM/project 33d6402 — clang-tools-extra/docs/clang-tidy/checks/modernize use-designated-initializers.md use-default-member-init.md

[clang-tidy][docs] Rewrite modernize check docs to Markdown [2/4]
DeltaFile
+150-151clang-tools-extra/docs/clang-tidy/checks/modernize/use-auto.md
+99-104clang-tools-extra/docs/clang-tidy/checks/modernize/pass-by-value.md
+51-54clang-tools-extra/docs/clang-tidy/checks/modernize/replace-auto-ptr.md
+48-49clang-tools-extra/docs/clang-tidy/checks/modernize/use-constraints.md
+52-43clang-tools-extra/docs/clang-tidy/checks/modernize/use-default-member-init.md
+44-35clang-tools-extra/docs/clang-tidy/checks/modernize/use-designated-initializers.md
+444-4364 files not shown
+575-56710 files

LLVM/project 45d1e48 — clang-tools-extra/docs/clang-tidy/checks/modernize replace-auto-ptr.rst replace-auto-ptr.md

[clang-tidy][docs] Rename modernize check docs to Markdown [2/4]
DeltaFile
+0-234clang-tools-extra/docs/clang-tidy/checks/modernize/use-auto.rst
+234-0clang-tools-extra/docs/clang-tidy/checks/modernize/use-auto.md
+0-171clang-tools-extra/docs/clang-tidy/checks/modernize/pass-by-value.rst
+171-0clang-tools-extra/docs/clang-tidy/checks/modernize/pass-by-value.md
+0-81clang-tools-extra/docs/clang-tidy/checks/modernize/replace-auto-ptr.rst
+81-0clang-tools-extra/docs/clang-tidy/checks/modernize/replace-auto-ptr.md
+486-48614 files not shown
+919-91920 files

LLVM/project b03581b — llvm/lib/Target/AArch64 AArch64ExpandImm.cpp, llvm/lib/Target/AArch64/GISel AArch64PostLegalizerLowering.cpp AArch64InstructionSelector.cpp

[AArch64][GlobalISel] Improve MOVI constant splat lower (#229241)

This adds an expandVectorMOVImm, similar to the existing expandMOVImm and
expandMOVAddr methods that can be used to give the optimal breakdown of
constant vectors. This is then used in global isel to perform better lowering
for constant vectors. The generation of fneg has been moved to an earlier
combine in const_build_vector_to_fneg.

This optimal method for lowering vector constants can then be reused for
lowering scalar floating point values where a vector instruction can
materialise the correct value in the low bits of the vector register. The
intent is to make use of the same expandVectorMOVImm for SDAG.
DeltaFile
+167-332llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
+76-191llvm/test/CodeGen/AArch64/movi64_sve.ll
+70-150llvm/test/CodeGen/AArch64/neon-bitwise-instructions.ll
+154-1llvm/lib/Target/AArch64/AArch64ExpandImm.cpp
+20-75llvm/test/CodeGen/AArch64/neon-mov.ll
+67-0llvm/lib/Target/AArch64/GISel/AArch64PostLegalizerLowering.cpp
+554-74914 files not shown
+712-90120 files

FreeBSD/src ceaf30c — sys/dev/virtio/gpu virtio_gpu.c

virtio_gpu: use an X8R8G8B8 resource on big-endian guests

The virtio-gpu resource formats are defined by byte order in memory,
while vt(4) and the X server (through vt_fb and the fb mmap) write
native 32-bit 0x00RRGGBB pixels into the shadow framebuffer.  On a
big-endian guest such as powerpc64 those pixels land in memory as
00 RR GG BB, which the host interprets under B8G8R8X8 with red and
blue swapped and the padding byte taken as blue: white renders yellow
and blue renders black.

Request X8R8G8B8 on big-endian guests instead, which is also what the
Linux driver does (DRM_FORMAT_HOST_XRGB8888).  Reproduced with a colour
test pattern on a powerpc64 QEMU pseries guest using the identically
coded out-of-tree fork of this driver (graphics/virtio-gpu-qemu-kmod);
little-endian guests are unchanged.

Differential Revision:  https://reviews.freebsd.org/D60085
Approved by:    jhibbits
MFC after:      1 week

    [2 lines not shown]
DeltaFile
+7-1sys/dev/virtio/gpu/virtio_gpu.c
+7-11 files

OPNSense/core 5f0d642 — src/etc/inc/plugins.inc.d kea.inc, src/etc/inc/xmlrpc service.inc

system: add service broker flag for remote handling of Kea; closes #11016

The broker takes over reload for all sub-services (likely id-based),
which is only beneficial for XMLRPC handling.

While in service.inc, add a pinch of style.
DeltaFile
+25-6src/etc/inc/xmlrpc/service.inc
+1-0src/etc/inc/plugins.inc.d/kea.inc
+26-62 files

OPNSense/core 26ccda6 — src/etc/inc interfaces.inc, src/opnsense/mvc/app/controllers/OPNsense/Interfaces/forms dialogAssignment.xml

Generalize this as ifflags option
DeltaFile
+17-2src/etc/inc/interfaces.inc
+5-6src/opnsense/mvc/app/controllers/OPNsense/Interfaces/forms/dialogAssignment.xml
+7-1src/opnsense/mvc/app/models/OPNsense/Interfaces/NetworkInterface.xml
+0-6src/opnsense/mvc/app/models/OPNsense/Interfaces/NetworkInterface.php
+0-1src/opnsense/mvc/app/models/OPNsense/Interfaces/FieldTypes/NetworkInterfaceField.php
+29-165 files

LLVM/project 3fc4b23 — llvm/test/CodeGen/AMDGPU insertelt-dynamic-chain-widen.ll

Added negative widened type tests that uses stack lowering
DeltaFile
+118-3llvm/test/CodeGen/AMDGPU/insertelt-dynamic-chain-widen.ll
+118-31 files

LLVM/project bc86068 — llvm/include/llvm/CodeGen MachineScheduler.h, llvm/lib/CodeGen MachineScheduler.cpp

Remove =

Created using spr 1.3.6-beta.1
DeltaFile
+15-27llvm/lib/CodeGen/MachineScheduler.cpp
+22-2llvm/include/llvm/CodeGen/MachineScheduler.h
+2-2llvm/test/CodeGen/RISCV/postmisched-antidep-region.mir
+2-2llvm/test/CodeGen/RISCV/postmisched-antidep-loop.mir
+41-334 files

LLVM/project 10cdefb — llvm/include/llvm/CodeGen MachineScheduler.h, llvm/lib/CodeGen MachineScheduler.cpp

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.6-beta.1

[skip ci]
DeltaFile
+15-27llvm/lib/CodeGen/MachineScheduler.cpp
+22-2llvm/include/llvm/CodeGen/MachineScheduler.h
+2-2llvm/test/CodeGen/RISCV/postmisched-antidep-region.mir
+39-313 files

LLVM/project 4ea93a4 — llvm/include/llvm/CodeGen MachineScheduler.h

Add doc

Created using spr 1.3.6-beta.1
DeltaFile
+10-0llvm/include/llvm/CodeGen/MachineScheduler.h
+10-01 files

LLVM/project d3ad7fe — clang/include/clang/AST ASTContext.h, clang/lib/AST ASTContext.cpp

[clang][CIR][CUDA][HIP] Unify CUDA decl emission check (NFC) (#231153)

CodeGen and CIRGen both decide which global variables and functions to
emit on the host or device side of a CUDA/HIP compilation with copies of
the same check. Move the check to ASTContext::shouldEmitCUDADecl to
reduce replicated surface.

Assisted-by: Claude Opus 5.5

Signed-off-by: Steffen Holst Larsen <sholstla at amd.com>
DeltaFile
+3-51clang/lib/CIR/CodeGen/CIRGenModule.cpp
+3-47clang/lib/CodeGen/CodeGenModule.cpp
+39-0clang/lib/AST/ASTContext.cpp
+7-0clang/include/clang/AST/ASTContext.h
+0-4clang/lib/CIR/CodeGen/CIRGenModule.h
+0-3clang/lib/CodeGen/CodeGenModule.h
+52-1056 files

LLVM/project 6bae942 — llvm/lib/Target/SPIRV SPIRVEmitIntrinsics.cpp, llvm/test/CodeGen/SPIRV personality.ll

[SPIR-V] Do not emit a declaration for an unused personality (#232200)

The backend counted a personality as a function pointer use and emitted
an invalid declaration for it, without OpFunctionEnd

Skip personality uses, since SPIR-V has no exception handling

The problem was reproduced on CIR -> SPIR-V conversion
DeltaFile
+15-0llvm/test/CodeGen/SPIRV/personality.ll
+4-0llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
+19-02 files