LLVM/project d6a906b — lldb/source/Core Module.cpp

[LLDB] Acquire the module mutex at the start of SetLoadAddress (#227149)

Fixes a potential dead-lock from parallel module loading. 

I received a quick-stack of LLDB hung loading a core with parallel
module loading enabled, where two threads were trying to mutate a given
module and an object file, but having acquired the module mutex first in
one case, and the object file's section mutex first in the second case,
which each trying to subsequently acquire the other lock.

In the update case, [SetLoadAddress acquires the section list mutex and
then tries to acquire the module
mutex](https://github.com/llvm/llvm-project/blob/60f717946cb5ca911b6be22169b9bd646225c59f/lldb/source/Symbol/ObjectFile.cpp#L614)

```
SectionList *ObjectFile::GetSectionList(bool update_module_section_list) {
  std::lock_guard<std::recursive_mutex> guard(m_sections_mutex);
  if (m_sections_up)
    return m_sections_up.get();

    [26 lines not shown]
DeltaFile
+4-0lldb/source/Core/Module.cpp
+4-01 files

LLVM/project 88156f8 — clang/lib/CodeGen CGStmtOpenMP.cpp, clang/test/OpenMP teams_generic_loop_reduction_distribute_codegen.cpp

[clang][OpenMP] Don't use fused dist schedule for teams loop emitted as distribute (#228129)

Fix teams loop reductions lowered as 'distribute' lose their loop.

Claude assisted with this patch.
DeltaFile
+63-0clang/test/OpenMP/teams_generic_loop_reduction_distribute_codegen.cpp
+9-0clang/lib/CodeGen/CGStmtOpenMP.cpp
+72-02 files

LLVM/project 6321d0c — clang/test/CodeGenOpenCL builtins-amdgcn-make-buffer-rsrc.cl, llvm/lib/Target/AMDGPU AMDGPUInstCombineIntrinsic.cpp

[AMDGPU] Canonicalize num_records to its actual width in InstCombine

llvm.amdgcn.make.buffer.rsrc is overloaded on the type of its
num_records argument, but the hardware field it ends up in has a fixed
width (32 bits, or 45 bits on gfx1250 and up). Rewrite the intrinsic to
use that width, zero-extending or truncating num_records as needed, so
that IR-level optimizations can see that the extra bits of, for example,
the i64 that Clang emits are not demanded.

Targets that aren't concrete enough for the buffer resource layout to be
known are left alone.

AI disclosure: This was my idea but Claude wrote the code (and I've
tried to tighten up the comments)
DeltaFile
+36-44clang/test/CodeGenOpenCL/builtins-amdgcn-make-buffer-rsrc.cl
+22-12llvm/test/Transforms/InstCombine/AMDGPU/make-buffer-rsrc-num-records.ll
+21-1llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp
+1-1llvm/test/Transforms/InstCombine/AMDGPU/amdgcn-intrinsics.ll
+80-584 files

LLVM/project 9247019 — llvm/test/Transforms/InstCombine/AMDGPU make-buffer-rsrc-num-records.ll

[AMDGPU] Pre-commit tests for num_records canonicalizations (#217067)

Add tests for having InstCombine canonicalize the num_records argument
of llvm.amdgcn.make.buffer.rsrc to the width it will ultimately have,
which lets later passes see that, for example, the high bits of the i64
that Clang emits aren't used.

AI disclosure: Claude generated these and I've looked at them
DeltaFile
+153-0llvm/test/Transforms/InstCombine/AMDGPU/make-buffer-rsrc-num-records.ll
+153-01 files

LLVM/project 152d32e — clang/lib/CodeGen/TargetBuiltins RISCV.cpp, clang/test/CodeGen/RISCV rvp-intrinsics.c

[Clang][RISCV][P-ext] Add packed Q-format widening accumulate intrinsics (#228009)

Add support for the Packed "Q-format" Multiply with Widening Accumulate
intrinsics:

- `__riscv_pmqwacc_i32x2`
- `__riscv_pmqrwacc_i32x2`

RV32 selects the direct instructions, while RV64 lowers to the
spec-listed `zip16p` and packed Q-format accumulate sequences.
DeltaFile
+32-0llvm/test/CodeGen/RISCV/rvp-simd-64.ll
+28-0clang/test/CodeGen/RISCV/rvp-intrinsics.c
+24-0llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+17-5llvm/lib/Target/RISCV/RISCVInstrInfoP.td
+16-0cross-project-tests/intrinsic-header-tests/riscv_packed_simd.c
+9-0clang/lib/CodeGen/TargetBuiltins/RISCV.cpp
+126-53 files not shown
+144-59 files

LLVM/project 5d9419f — clang/include/clang/CodeGenUtils TargetUtils.h, clang/lib/CIR/CodeGen CIRGenBuiltinAArch64.cpp

[CIR][CodeGen][NFC] Share hasExtraNeonArgument

Deduplicates `hasExtraNeonArgument` between CIR and classic CodeGen into
`TargetUtils.h`.

Assisted-by: Claude Code (Claude Fable 5.1).
DeltaFile
+2-38clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp
+3-34clang/lib/CodeGen/TargetBuiltins/ARM.cpp
+25-0clang/lib/CodeGenUtils/TargetUtils.cpp
+6-0clang/include/clang/CodeGenUtils/TargetUtils.h
+36-724 files

LLVM/project 4cfbae7 — clang/include/clang/CodeGenUtils RecordLayoutUtils.h, clang/lib/CIR/CodeGen TargetInfo.h TargetInfo.cpp

[CIR][CodeGen][NFC] Share isEmptyFieldForLayout and isEmptyRecordForLayout

Deduplicates `isEmptyFieldForLayout` and `isEmptyRecordForLayout` between CIR
and classic CodeGen into a new `RecordLayoutUtils.h`. `ABIInfoImpl.h` and CIR's
`TargetInfo.h` re-export them with using-declarations, so the ~30 unqualified
callers are untouched.

Assisted-by: Claude Code (Claude Fable 5.1).
DeltaFile
+45-0clang/lib/CodeGenUtils/RecordLayoutUtils.cpp
+0-34clang/lib/CIR/CodeGen/TargetInfo.cpp
+34-0clang/include/clang/CodeGenUtils/RecordLayoutUtils.h
+0-33clang/lib/CodeGen/ABIInfoImpl.cpp
+3-9clang/lib/CodeGen/ABIInfoImpl.h
+3-9clang/lib/CIR/CodeGen/TargetInfo.h
+85-851 files not shown
+86-857 files

LLVM/project ae13a22 — clang/include/clang/CodeGenUtils RecordLayoutUtils.h, clang/lib/CIR/CodeGen CIRGenRecordLayoutBuilder.cpp

[CIR][CodeGen][NFC] Share hasOwnStorage

Deduplicates `hasOwnStorage` between CIR and classic CodeGen into
`RecordLayoutUtils.h`.

Assisted-by: Claude Code (Claude Fable 5.1).
DeltaFile
+4-17clang/lib/CodeGen/CGRecordLayoutBuilder.cpp
+1-16clang/lib/CIR/CodeGen/CIRGenRecordLayoutBuilder.cpp
+12-0clang/lib/CodeGenUtils/RecordLayoutUtils.cpp
+5-0clang/include/clang/CodeGenUtils/RecordLayoutUtils.h
+22-334 files

LLVM/project 1f1f902 — clang/include/clang/CodeGenUtils ItaniumCXXABIUtils.h, clang/lib/CIR/CodeGen CIRGenItaniumCXXABI.cpp

[CIR][CodeGen][NFC] Share canUseSingleInheritance

Deduplicates `canUseSingleInheritance` between CIR and classic CodeGen into
`ItaniumCXXABIUtils.h`.

Assisted-by: Claude Code (Claude Fable 5.1).
DeltaFile
+2-30clang/lib/CodeGen/ItaniumCXXABI.cpp
+2-28clang/lib/CIR/CodeGen/CIRGenItaniumCXXABI.cpp
+22-0clang/lib/CodeGenUtils/ItaniumCXXABIUtils.cpp
+5-0clang/include/clang/CodeGenUtils/ItaniumCXXABIUtils.h
+31-584 files

LLVM/project bfe776a — clang/include/clang/CodeGenUtils ItaniumCXXABIUtils.h, clang/lib/CIR/CodeGen CIRGenItaniumCXXABI.cpp

[CIR][CodeGen][NFC] Share the Itanium __vmi_class_type_info flags computation

Deduplicates the `__vmi_class_type_info` and `__base_class_type_info` flags and
`computeVMIClassTypeInfoFlags` between CIR and classic CodeGen into
`ItaniumCXXABIUtils.h`.

Assisted-by: Claude Code (Claude Fable 5.1).
DeltaFile
+3-79clang/lib/CodeGen/ItaniumCXXABI.cpp
+3-77clang/lib/CIR/CodeGen/CIRGenItaniumCXXABI.cpp
+54-0clang/lib/CodeGenUtils/ItaniumCXXABIUtils.cpp
+21-0clang/include/clang/CodeGenUtils/ItaniumCXXABIUtils.h
+81-1564 files

LLVM/project b7cdaec — clang/include/clang/CodeGenUtils ClassUtils.h FunctionUtils.h, clang/lib/CodeGenUtils ClassUtils.cpp FunctionUtils.cpp

[CIR][CodeGen][NFC] Retire the CodeGenUtils.h catch-all header

Moves the last helpers out of `CodeGenUtils.h` into `ClassUtils.h`,
`ModuleUtils.h`, `TargetUtils.h` and `FunctionUtils.h` (`checkTargetFeatures`,
since it came from CodeGenFunction.cpp) and deletes the header. Only moves code
already on main, so it can be dropped on its own.

Assisted-by: Claude Code (Claude Fable 5.1).
DeltaFile
+0-233clang/lib/CodeGenUtils/CodeGenUtils.cpp
+120-0clang/lib/CodeGenUtils/FunctionUtils.cpp
+78-0clang/lib/CodeGenUtils/ClassUtils.cpp
+0-65clang/include/clang/CodeGenUtils/CodeGenUtils.h
+24-2clang/include/clang/CodeGenUtils/FunctionUtils.h
+18-0clang/include/clang/CodeGenUtils/ClassUtils.h
+240-30016 files not shown
+279-31222 files

LLVM/project 5d98a76 — clang/include/clang/CodeGenUtils TargetUtils.h, clang/lib/CIR/CodeGen TargetInfo.h TargetInfo.cpp

[CIR][CodeGen][NFC] Share requiresAMDGPUProtectedVisibility

Deduplicates `requiresAMDGPUProtectedVisibility` between CIR and classic CodeGen
into `TargetUtils.h`. The shared version takes a bool for "currently hidden" in
place of the `llvm::GlobalValue` and `cir::VisibilityKind` the two callers
passed.

Assisted-by: Claude Code (Claude Fable 5.1).
DeltaFile
+3-15clang/lib/CodeGen/Targets/AMDGPU.cpp
+0-14clang/lib/CIR/CodeGen/Targets/AMDGPU.cpp
+14-0clang/lib/CodeGenUtils/TargetUtils.cpp
+6-2clang/lib/CIR/CodeGen/TargetInfo.cpp
+6-0clang/include/clang/CodeGenUtils/TargetUtils.h
+0-4clang/lib/CIR/CodeGen/TargetInfo.h
+29-356 files

LLVM/project 30ba8dc — clang/include/clang/CodeGenUtils TargetUtils.h, clang/lib/CIR/CodeGen/Targets AArch64.cpp

[CIR][CodeGen][NFC] Share the Arm SME inlinability check

Deduplicates `ArmSMEInlinability` and `getArmSMEInlinability` between CIR and
classic CodeGen into a new `TargetUtils.h`.

Assisted-by: Claude Code (Claude Fable 5.1).
DeltaFile
+18-60clang/lib/CodeGen/Targets/AArch64.cpp
+3-52clang/lib/CIR/CodeGen/Targets/AArch64.cpp
+51-0clang/include/clang/CodeGenUtils/TargetUtils.h
+50-0clang/lib/CodeGenUtils/TargetUtils.cpp
+1-0clang/lib/CodeGenUtils/CMakeLists.txt
+123-1125 files

LLVM/project e36851e — clang/include/clang/CodeGenUtils RecordLayoutUtils.h, clang/lib/CIR/CodeGen CIRGenRecordLayoutBuilder.cpp

[CIR][CodeGen][NFC] Share the bit-field and vbase layout ABI predicates

Deduplicates `isDiscreteBitFieldABI` and `isOverlappingVBaseABI` between CIR and
classic CodeGen into `RecordLayoutUtils.h`, as free functions taking the
`ASTContext`.

Assisted-by: Claude Code (Claude Fable 5.1).
DeltaFile
+7-24clang/lib/CodeGen/CGRecordLayoutBuilder.cpp
+4-19clang/lib/CIR/CodeGen/CIRGenRecordLayoutBuilder.cpp
+12-0clang/include/clang/CodeGenUtils/RecordLayoutUtils.h
+9-0clang/lib/CodeGenUtils/RecordLayoutUtils.cpp
+32-434 files

LLVM/project 3454957 — clang/include/clang/CodeGenUtils ItaniumCXXABIUtils.h, clang/lib/CIR/CodeGen CIRGenItaniumCXXABI.cpp

[CIR][CodeGen] Share isStandardLibraryRTTIDescriptor

Deduplicates `isStandardLibraryRTTIDescriptor` between CIR and classic CodeGen
into `ItaniumCXXABIUtils.h`, taking the classic implementation. The two copies
have been equivalent since #227781 filled in the builtin types CIR was missing.

Assisted-by: Claude Code (Claude Fable 5.1).
DeltaFile
+3-154clang/lib/CodeGen/ItaniumCXXABI.cpp
+1-153clang/lib/CIR/CodeGen/CIRGenItaniumCXXABI.cpp
+147-0clang/lib/CodeGenUtils/ItaniumCXXABIUtils.cpp
+4-0clang/include/clang/CodeGenUtils/ItaniumCXXABIUtils.h
+155-3074 files

LLVM/project ab166be — clang/include/clang/CodeGenUtils ItaniumCXXABIUtils.h, clang/lib/CIR/CodeGen CIRGenItaniumCXXABI.cpp

[CIR][CodeGen][NFC] Share the Itanium __pbase_type_info flags and predicates

Deduplicates the `__pbase_type_info` flags, `containsIncompleteClassType` and
`extractPBaseFlags` between CIR and classic CodeGen into `ItaniumCXXABIUtils.h`.

Assisted-by: Claude Code (Claude Fable 5.1).
DeltaFile
+4-95clang/lib/CodeGen/ItaniumCXXABI.cpp
+6-90clang/lib/CIR/CodeGen/CIRGenItaniumCXXABI.cpp
+52-0clang/lib/CodeGenUtils/ItaniumCXXABIUtils.cpp
+44-3clang/include/clang/CodeGenUtils/ItaniumCXXABIUtils.h
+106-1884 files

LLVM/project 31be831 — llvm/lib/Target/AArch64 AArch64InstrInfo.cpp, llvm/lib/Target/Hexagon HexagonVLIWPacketizer.cpp HexagonOptAddrMode.cpp

Targets: Remove redundant TRI arguments from InstrInfo helpers

This is directly available in TargetInstrInfo.

Co-authored-by: Claude Opus 5 <noreply at anthropic.com>
DeltaFile
+9-8llvm/lib/Target/PowerPC/PPCInstrInfo.cpp
+7-8llvm/lib/Target/Lanai/LanaiInstrInfo.cpp
+6-8llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
+4-6llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
+3-3llvm/lib/Target/Hexagon/HexagonOptAddrMode.cpp
+2-2llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp
+31-358 files not shown
+41-5014 files

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

Fix unused variables
DeltaFile
+11-19llvm/lib/CodeGen/MachineScheduler.cpp
+2-5llvm/include/llvm/CodeGen/MachineScheduler.h
+0-1llvm/unittests/Target/RISCV/RISCVInstrInfoTest.cpp
+13-253 files

LLVM/project b568be8 — llvm/include/llvm/CodeGen TargetInstrInfo.h, llvm/lib/CodeGen TargetInstrInfo.cpp

CodeGen: Remove TRI arguments from TargetInstrInfo hooks

TRI can now always directly be referenced from TargetInstrInfo

Co-authored-by: Claude Opus 5 <noreply at anthropic.com>
DeltaFile
+24-29llvm/lib/Target/X86/X86InstrInfo.cpp
+16-18llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
+14-19llvm/include/llvm/CodeGen/TargetInstrInfo.h
+9-13llvm/lib/Target/X86/X86InstrInfo.h
+10-10llvm/lib/CodeGen/TargetInstrInfo.cpp
+6-9llvm/lib/Target/ARM/ARMBaseInstrInfo.h
+79-9826 files not shown
+140-18432 files

LLVM/project db77a46 — flang/lib/Semantics check-omp-syntax.cpp

[flang][OpenMP] Simplify uses of llvm::omp::EnumSet a bit, NFC (#228142)
DeltaFile
+3-10flang/lib/Semantics/check-omp-syntax.cpp
+3-101 files

LLVM/project 2631319 — lldb/include/lldb/Host/common NativeThreadProtocol.h, lldb/source/Plugins/Process/Windows/Common NativeThreadWindows.cpp

[lldb-server] Handle jThreadExtendedInfo
DeltaFile
+49-0lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
+42-0lldb/test/API/windows/thread-extended-info/TestThreadExtendedInfo.py
+4-0lldb/source/Plugins/Process/Windows/Common/NativeThreadWindows.cpp
+3-0lldb/include/lldb/Host/common/NativeThreadProtocol.h
+3-0lldb/test/API/windows/thread-extended-info/Makefile
+3-0lldb/test/API/windows/thread-extended-info/main.c
+104-04 files not shown
+111-010 files

LLVM/project 670e4c0 — llvm/lib/Target/X86 X86InstrMisc.td, llvm/test/CodeGen/X86 bmi.ll

[X86][APX] Use EVEX BLSI/BLSMSK for i8 patterns with EGPR (#226796)

This is a follow-up to #204746 and #205093, which added the i8 BLSI and
BLSMSK patterns.

The i8 BLSI/BLSMSK patterns were defined outside of Bls_Pats and always
selected the VEX forms, so with EGPR the register allocator could not
assign r16-r31 to their operands. Move them into Bls_Pats so that the
_EVEX variants are selected when EGPR is available.

Assisted-by: Claude Code

---------

Co-authored-by: Claude Opus 5.5 (1M context) <noreply at anthropic.com>
DeltaFile
+23-25llvm/lib/Target/X86/X86InstrMisc.td
+6-18llvm/test/CodeGen/X86/apx/bls-egpr.ll
+4-4llvm/test/CodeGen/X86/bmi.ll
+33-473 files

LLVM/project c351888 — llvm/lib/Transforms/InstCombine InstCombineInternal.h InstCombineSimplifyDemanded.cpp

[InstCombine] Declare command line options in TableGen (#227948)

Follow-up to the framework #226087:
Move the cl::opts into InstCombineCLOptions.td, with `prefix =
"instcombine-"`: -instcombine-max-num-phis sets CLOpts.max_num_phis.
CLOpts also replaces InstCombiner::MaxArraySizeForCombine.

Options that were not cl::Hidden are now listed by -help-hidden only,
and -instcombine-lower-dbg-declare is now a bool.

Aided by Opus 5.5
DeltaFile
+10-36llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
+44-0llvm/lib/Transforms/InstCombine/InstCombineCLOptions.td
+12-17llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
+6-16llvm/lib/Transforms/InstCombine/InstCombineNegator.cpp
+3-15llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+10-7llvm/lib/Transforms/InstCombine/InstCombineInternal.h
+85-9112 files not shown
+156-11618 files

LLVM/project b6a1653 — mlir/lib/Dialect/XeGPU/Transforms XeGPUSgToLaneDistribute.cpp, mlir/test/Dialect/XeGPU sg-to-lane-distribute-unit.mlir

[mlir][xegpu] Distribute extract_strided_slice over multiple dims (#227478)

SgToLaneVectorExtractStridedSlice only handled a single distributed
dimension, and this PR handles distributing multiple dimensions. It
scales each distributed dim by its own lane_layout entry. Both the size
and the offset along a dim shrink by the number of lanes that split it.
A dim the lanes do not split keeps its offset untouched, and may still
carry non-unit lane_data as before.

assisted-by-claude

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply at anthropic.com>
DeltaFile
+23-41mlir/lib/Dialect/XeGPU/Transforms/XeGPUSgToLaneDistribute.cpp
+61-0mlir/test/Dialect/XeGPU/sg-to-lane-distribute-unit.mlir
+84-412 files

LLVM/project f1dd51e — llvm/lib/Target/AMDGPU AMDGPUNextUseAnalysis.h

AMDGPU: Remove unused LiveVariables include (#228141)
DeltaFile
+0-1llvm/lib/Target/AMDGPU/AMDGPUNextUseAnalysis.h
+0-11 files

LLVM/project ddc70de — llvm/include/llvm/Support GenericIteratedDominanceFrontier.h

[IDF] Use BitVectors indexed by DFS number for visited sets (NFC). (#227832)

IDFCalculatorBase::calculate tracks visited dominator tree nodes in two
SmallPtrSets. The DFS numbers computed at the start of calculate are
unique and dense in [0, number of nodes), with the DFS out-number of the
root being the number of nodes, so use them to index BitVectors instead.

This reduces hashing overhead and improves compile-time, depending on
configuration/workload:

stage1-O3: -0.04%
stage1-ReleaseThinLTO: -0.05%
stage1-ReleaseLTO-g: -0.22%
stage1-aarch64-O3: -0.06%
stage2-O3: -0.04%
stage2-clang: -0.04%


https://llvm-compile-time-tracker.com/compare.php?from=b96b66160ace30c2b5eef1f4afdb14c95ecc26cd&to=5ffb13d6d1f87195bba8af13366a152a7de2bfe0&stat=instructions:u

    [3 lines not shown]
DeltaFile
+11-9llvm/include/llvm/Support/GenericIteratedDominanceFrontier.h
+11-91 files

LLVM/project a83a3a4 —

[mlir][vector] Add an eliminate-vector-masks pass (#226517)

`eliminateVectorMasks` had no in-tree caller other than a test pass, so
no pipeline could use it. This exposes it as an opt-in
`-eliminate-vector-masks` pass and drops the test pass.

The pass rewrites `vector.create_mask` ops that can be proven all-true
into `vector.constant_mask`; canonicalization then folds those away, so
a masked transfer becomes an unmasked one. Mask sizes are bounded with
`ValueBoundsOpInterface`, so a loop-derived size like `%dim - %iv` can
be proven.

Scalable dimensions need a `vscale` range, given by
`vscale-min`/`vscale-max`. Leaving them unset means fixed-size reasoning
only; a half-specified or inverted range is rejected rather than
silently ignored.

`eliminate-masks.mlir` keeps its checks and only switches its two RUN
lines, which shows the pass behaves as the test pass did.

    [6 lines not shown]
DeltaFile
+0-00 files

LLVM/project 733ddab — llvm/lib/Target/SPIRV SPIRVGlobalRegistry.h SPIRVGlobalRegistry.cpp, llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_memory_access_aliasing alias-scope-shared-across-functions.ll

[SPIRV] Fix crash when two functions share an alias scope (#225017)

When two functions referenced the same alias scope metadata, they were
incorrectly sharing a virtual register. This caused either a crash or
broken SPIR-V output with undefined references. The fix ensures each
function creates its own virtual register for alias scope metadata

---------

Co-authored-by: Michal Paszkowski <michal at michalpaszkowski.com>
DeltaFile
+46-0llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_memory_access_aliasing/alias-scope-shared-across-functions.ll
+10-6llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp
+5-2llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.h
+61-83 files

LLVM/project 137f883 — llvm/tools/llvm-profdata llvm-profdata.cpp

[llvm-profdata] Remove exitWithError and LSan leak workaround

With all subcommands propagating llvm::Error to main, exitWithError,
exitWithErrorCode, and the LSan leak suppression workaround are no
longer needed.

Assisted-by: Gemini
DeltaFile
+0-31llvm/tools/llvm-profdata/llvm-profdata.cpp
+0-311 files

LLVM/project 16eb2e6 — llvm/tools/llvm-profdata llvm-profdata.cpp

[NFCI][llvm-profdata] Propagate Error in loadInput and mergeWriterContexts

Propagate Error from loadInput and mergeWriterContexts in mergeInstrProfile,
supplementInstrProfile, and overlapInstrProfile. In mergeInstrProfile's
ThreadPool, catch errors from worker threads, stop scheduling new jobs,
and return the first encountered fatal error.

Ensure ~WriterContext() consumes any pending unhandled errors in
WriterContext::Errors upon destruction.

Not NFC as destructors are run on the stack and ThreadPool workers exit
earlier on error.

Assisted-by: Gemini
DeltaFile
+64-26llvm/tools/llvm-profdata/llvm-profdata.cpp
+64-261 files