LLVM/project 7891d90clang/lib/CIR/CodeGen CIRGenExprComplex.cpp, clang/test/CIR/CodeGen complex-cast.cpp

[CIR] Implement UserDefinedConversion for ComplexType (#185749)

Implement the UserDefinedConversion cast for ComplexType
DeltaFile
+39-0clang/test/CIR/CodeGen/complex-cast.cpp
+3-4clang/lib/CIR/CodeGen/CIRGenExprComplex.cpp
+42-42 files

LLVM/project a60fc29clang-tools-extra/clang-doc MDGenerator.cpp, clang-tools-extra/test/clang-doc enum.cpp

[Clang-doc] Display values and comments in MD (#183754)

Display enum members in a tabular format in markdown.
Support displaying enum member value and comments.
Output:
| Name | Value | Comments |
|---|---|---|
| Small | 0 | A pearl.<br>Pearls are quite small.<br><br>Pearls are used
in jewelry. |
| Medium | 1 | A tennis ball. |
| Large | 2 | A football. |
DeltaFile
+104-7clang-tools-extra/clang-doc/MDGenerator.cpp
+47-38clang-tools-extra/test/clang-doc/enum.cpp
+5-12clang-tools-extra/unittests/clang-doc/MDGeneratorTest.cpp
+156-573 files

LLVM/project ac2567cllvm/lib/Target/SPIRV SPIRVEmitIntrinsics.cpp, llvm/test/CodeGen/SPIRV assume.ll

[SPIR-V] Fix crash in SPIRVEmitIntrinsics for llvm.assume with operand bundles (#185840)
DeltaFile
+21-5llvm/test/CodeGen/SPIRV/assume.ll
+2-1llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
+23-62 files

LLVM/project b90f606libcxx/docs CodingGuidelines.rst, libcxx/test/benchmarks/containers/associative associative_container_benchmarks.h

[libc++] Rename container benchmarks for consistency and precision (#181178)
DeltaFile
+15-0libcxx/docs/CodingGuidelines.rst
+7-7libcxx/test/benchmarks/containers/associative/associative_container_benchmarks.h
+6-6libcxx/test/benchmarks/containers/sequence/vector_bool.bench.cpp
+4-4libcxx/test/benchmarks/containers/sequence/sequence_container_benchmarks.h
+32-174 files

LLVM/project bdd9bcfllvm/lib/Target/AMDGPU AMDGPUMCInstLower.cpp, llvm/lib/Target/AMDGPU/Utils AMDGPUBaseInfo.cpp AMDGPUBaseInfo.h

[AMDGPU] Add asm comments if setreg changes MSBs
DeltaFile
+45-0llvm/test/CodeGen/AMDGPU/vgpr-setreg-mode-swar.mir
+19-0llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
+13-5llvm/lib/Target/AMDGPU/AMDGPUMCInstLower.cpp
+7-0llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
+2-1llvm/test/CodeGen/AMDGPU/code-size-estimate.ll
+86-65 files

LLVM/project 0da4396lld/ELF Symbols.cpp, lld/test/ELF tls-mismatch.s

[ELF] Fix -u with TLS symbols: propagate type from STT_NOTYPE to STT_TLS (#185794)

-u creates an Undefined with STT_NOTYPE. When an object file provides
another Undefined with STT_TLS for the same symbol, Symbol::resolve
only updated binding, leaving type as STT_NOTYPE. This caused
sym.isTls() to return false in postScanRelocations, skipping TLS GOT
entry creation and leading to an out-of-range R_X86_64_GOTTPOFF error.

Fix: in resolve(Undefined), when the existing type is STT_NOTYPE,
adopt the incoming type.
DeltaFile
+7-0lld/test/ELF/tls-mismatch.s
+6-0lld/ELF/Symbols.cpp
+13-02 files

LLVM/project e4d8370.ci/green-dragon lldb-ubuntu.groovy

[green dragon] update lldb-ubuntu to handle aarch64 multibranch pipeline (#185917)
DeltaFile
+2-4.ci/green-dragon/lldb-ubuntu.groovy
+2-41 files

LLVM/project e10833dlldb/source/Plugins/Process/elf-core ProcessElfCore.cpp, lldb/source/Plugins/Process/gdb-remote GDBRemoteCommunicationServerLLGS.cpp

[lldb] Replace make_error<StringError> with createStringError* (NFC) (#185748)

This makes the constructions of string errors more concise and more
consistent, mainly by removing the `inconvertibleErrorCode()`.
Additional changes replace `createStringError(formatv(...), ...)` with
`createStringErrorV(...)`.

Assisted-by: Claude
DeltaFile
+31-47lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp
+30-46lldb/source/Plugins/SymbolFile/CTF/SymbolFileCTF.cpp
+27-43lldb/source/ValueObject/ValueObject.cpp
+15-23lldb/source/Plugins/ScriptInterpreter/Lua/LuaState.cpp
+10-13lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
+8-13lldb/unittests/tools/lldb-server/tests/TestClient.cpp
+121-18520 files not shown
+166-26326 files

LLVM/project ab308f2llvm/lib/Transforms/Vectorize VPlanTransforms.cpp VPRecipeBuilder.h

Avoid exposing `RecipeBuilder.getVPBuilder()`
DeltaFile
+1-2llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+0-2llvm/lib/Transforms/Vectorize/VPRecipeBuilder.h
+1-0llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+2-43 files

LLVM/project d371f42compiler-rt/test/cfi/icall bad-signature.c

Revert "[CFI] Expand test to include minimal runtime" (#185935)

Reverts llvm/llvm-project#183646

Breaks tests if ubsan_minimal runtime isn't built, see:
https://github.com/llvm/llvm-project/pull/183646#issuecomment-3994252478
DeltaFile
+0-6compiler-rt/test/cfi/icall/bad-signature.c
+0-61 files

LLVM/project ea87bcamlir/lib/Dialect/OpenMP/IR OpenMPDialect.cpp, mlir/lib/Target/LLVMIR/Dialect/OpenMP OpenMPToLLVMIRTranslation.cpp

Make omp.iterator verify more robust and add tests

- Make sure
    - step in omp.iterator is not zero
    - when step > 0, lo < hi
    - when step < 0, lo > hi
- Add negative test for above checks
- Add iterator lowering test to make sure negative step work

```
// OpenMP 5.2.6
The iterator value setof the iterator are the set ofvalues i_1,...,i_N where:
  i_1 = begin
  i_j = i_{j-1} + step, for j >= 2

If step > 0:
  i_1 <= end
  i_N <= end
  i_N + step > end

    [6 lines not shown]
DeltaFile
+43-0mlir/test/Dialect/OpenMP/invalid.mlir
+36-0mlir/test/Target/LLVMIR/openmp-iterator.mlir
+25-0mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
+18-0mlir/test/Dialect/OpenMP/ops.mlir
+3-0mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+125-05 files

LLVM/project 3c171f4lld/test/ELF weak-undef-lib.s

[ELF,test] Add test for -u error message referencing object file (#185938)

When -u creates an undefined symbol and a relocatable file has a weak
reference, the error message references the relocatable file, not
<internal>.
DeltaFile
+6-0lld/test/ELF/weak-undef-lib.s
+6-01 files

LLVM/project 8fe4b04lldb/include/lldb/Initialization SystemLifetimeManager.h, lldb/source/Initialization SystemLifetimeManager.cpp

[lldb] Catch missing calls to SystemLifetimeManager::Initialize (#185536)

We already catch missing calls to SystemLifetimeManager::Terminate, but
not for Initialize. This adds the missing assert and also makes sure it
behaves correctly when initializing and terminating more than once,
which is now supported.
DeltaFile
+7-9lldb/source/Initialization/SystemLifetimeManager.cpp
+2-2lldb/include/lldb/Initialization/SystemLifetimeManager.h
+9-112 files

LLVM/project 8efacc4compiler-rt/test/cfi/icall bad-signature.c

Revert "[CFI] Expand test to include minimal runtime (#183646)"

This reverts commit eba4a76597dd1d655794cb5732ace534b58bd97d.
DeltaFile
+0-6compiler-rt/test/cfi/icall/bad-signature.c
+0-61 files

LLVM/project 208c70fllvm/lib/Target/SPIRV SPIRVInstructionSelector.cpp, llvm/test/CodeGen/SPIRV/hlsl-intrinsics reversebits.ll

[HLSL][SPIRV] Update reversebits codegen for half types (#184936)

In order to make codegen compatible with DXC and pass spirv validation,
this patch updates the codegen for half types following the same codegen
as DXC.

fix: https://github.com/llvm/llvm-project/issues/183611
DeltaFile
+75-4llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
+30-2llvm/test/CodeGen/SPIRV/hlsl-intrinsics/reversebits.ll
+105-62 files

LLVM/project e8275dfllvm/lib/Transforms/IPO SampleProfileMatcher.cpp, llvm/test/Transforms/SampleProfile pseudo-probe-stale-profile-renaming.ll

[SamplePGO] Add a flag to disable salvage-unused-profile for large modules. (#185354)

Added a command-line option, `-salvage-unused-profile-max-functions` to
prevents performance degradation during compilation when processing
modules with an extremely large number of functions, where salvaging
unused profiles becomes prohibitively expensive.
DeltaFile
+10-0llvm/lib/Transforms/IPO/SampleProfileMatcher.cpp
+4-0llvm/test/Transforms/SampleProfile/pseudo-probe-stale-profile-renaming.ll
+14-02 files

LLVM/project 50822d6llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer reduction-root-node-with-no-state-but-gathered-loads.ll

[SLP]Do not request the last instruction for first buildvector nodes with no state

If looking for the match of the gather/buildvector node and its root is
a first node, which also a buildvector/gather, and has no state, we
should skip the analysis for such nodes to prevent a compiler crash

Fixes #185851
DeltaFile
+37-0llvm/test/Transforms/SLPVectorizer/reduction-root-node-with-no-state-but-gathered-loads.ll
+5-3llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+42-32 files

LLVM/project 319808cllvm/test/TableGen DAGDefaultOps.td

[TableGen] Fix MUL case in DAG default operands test (#185847)

The checks have been unused forever. This was an oversight in the patch
that introduced this test: https://reviews.llvm.org/D63814

Also fix the checks to match the actual output. This looks like another
oversight in the original patch, presumably because the checks were
never actually tested.
DeltaFile
+3-2llvm/test/TableGen/DAGDefaultOps.td
+3-21 files

LLVM/project 1375432llvm/lib/Target/SPIRV SPIRVInstructionSelector.cpp SPIRVTypeInst.cpp, llvm/test/CodeGen/SPIRV/transcoding load-atomic.ll store-atomic.ll

[SPIRV] Lower load/store atomic to OpAtomicLoad/OpAtomicStore
DeltaFile
+73-7llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
+30-17llvm/test/CodeGen/SPIRV/transcoding/load-atomic.ll
+31-13llvm/test/CodeGen/SPIRV/transcoding/store-atomic.ll
+14-0llvm/lib/Target/SPIRV/SPIRVTypeInst.cpp
+4-0llvm/lib/Target/SPIRV/SPIRVTypeInst.h
+152-375 files

LLVM/project bf67e4dllvm/include/llvm/IR IntrinsicsDirectX.td IntrinsicsSPIRV.td, llvm/lib/Target/SPIRV SPIRVInstructionSelector.cpp SPIRVModuleAnalysis.cpp

[HLSL][SPIR-V] Add resource load level intrinsics and SPIR-V backend support (#185707)

Adds the intrinsics resource_load_level intrinic for DXIL and SPIR-V. It
will be used to load a value from an specific location in the image at
the given mip level. It will be used to implement the Texture Load and
mips[][] methods.

Assisted-by: Gemini
DeltaFile
+98-0llvm/test/CodeGen/SPIRV/hlsl-resources/LoadLevel.ll
+66-6llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
+6-0llvm/include/llvm/IR/IntrinsicsDirectX.td
+6-0llvm/include/llvm/IR/IntrinsicsSPIRV.td
+4-0llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
+180-65 files

LLVM/project ae920e2llvm/docs GitRepositoryPolicy.md

[Docs] Remove references to IWG in GitRepositoryPolicy (#185919)

The IWG has not been a thing for several years now. Adjust the docs to
point to the infrastructure area team who is now responsible for making
these decisions.
DeltaFile
+8-4llvm/docs/GitRepositoryPolicy.md
+8-41 files

LLVM/project d8cfb57llvm/lib/Transforms/Vectorize LoopVectorize.cpp

Drop leftover comment
DeltaFile
+0-1llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+0-11 files

LLVM/project 36dc214llvm/test/CodeGen/X86 shift-i256.ll shift-i512.ll

[X86] shift-i256/i512.ll - add shl/srl allbits shifted mask patterns tests (#185910)
DeltaFile
+444-0llvm/test/CodeGen/X86/shift-i256.ll
+356-0llvm/test/CodeGen/X86/shift-i512.ll
+800-02 files

LLVM/project bb024c2llvm/lib/DWARFLinker/Classic DWARFLinker.cpp, llvm/test/tools/dsymutil/AArch64 stmt-seq-macho.test

[DWARFLinker] Fix DW_AT_LLVM_stmt_sequence attributes patched to wrong offsets (#178486)

This fixes a bug where `DW_AT_LLVM_stmt_sequence` attributes in dSYM
files were pointing to invalid offsets in the `.debug_line` section.
These attributes must point to `DW_LNE_set_address` opcodes (which mark
sequence starts), but after dsymutil reorders line table sequences by
address, the original row indices no longer correspond to sequence
starts in the output.

The root cause is that when sequences get reordered or merged, a row
that was originally a sequence start may end up in the middle of a
different sequence in the output. The old code was mapping the original
row index directly to its output position, but that output position
might not have a `DW_LNE_set_address` opcode anymore.

The fix builds a mapping from each output row to its containing
sequence's start row. When patching `DW_AT_LLVM_stmt_sequence`, we now:
1. Find the output row corresponding to the original row
2. Look up which sequence that output row belongs to

    [22 lines not shown]
DeltaFile
+927-1,424llvm/test/tools/dsymutil/AArch64/stmt-seq-macho.test
+47-14llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp
+974-1,4382 files

LLVM/project a63249cclang/test/CIR/CodeGen new-delete.cpp new.cpp, clang/test/CIR/CodeGenBuiltins builtin-new-delete.cpp

[CIR] Set `builtin` attribute for new and delete calls (#184920)

This adds code to set the `builtin` attribute when needed on operator
new and delete calls. This also required setting `nobuiltin` for
replaceable global allocation functions and threading the `builtin`
attribute through the LLVM dialect.
DeltaFile
+101-12clang/test/CIR/CodeGen/new-delete.cpp
+17-17clang/test/CIR/CodeGen/new.cpp
+17-12clang/test/CIR/CodeGenBuiltins/builtin-new-delete.cpp
+14-0mlir/test/Target/LLVMIR/llvmir.mlir
+12-0mlir/test/Target/LLVMIR/Import/instructions.ll
+8-4mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
+169-459 files not shown
+192-4915 files

LLVM/project fdab594llvm/test/CodeGen/SPIRV/hlsl-resources LoadLevel.ll

Add Vulkan validation to test.
DeltaFile
+11-9llvm/test/CodeGen/SPIRV/hlsl-resources/LoadLevel.ll
+11-91 files

LLVM/project 7dafa3fllvm/lib/Transforms/IPO SampleProfileMatcher.cpp, llvm/test/Transforms/SampleProfile pseudo-probe-stale-profile-renaming.ll

Add a flag to disable salvage-unused-profile for large modules.
DeltaFile
+10-0llvm/lib/Transforms/IPO/SampleProfileMatcher.cpp
+4-0llvm/test/Transforms/SampleProfile/pseudo-probe-stale-profile-renaming.ll
+14-02 files

LLVM/project 2952243libc/src/__support/OSUtil/linux/x86_64 syscall.h

[libc] Force to inline syscall_impl on x86_64 (#178153)

With currently only LIBC_INLINE, we just hint the compiler to inline the
function which however in practice is not always the case.

This is in preparation for adding SHSTK support which requires the
system call enabling it to be inlined into do_start().
DeltaFile
+17-12libc/src/__support/OSUtil/linux/x86_64/syscall.h
+17-121 files

LLVM/project 18b70ce.github/workflows libcxx-build-and-test.yaml, libcxx/test/libcxx/gdb gdb_pretty_printer_test.sh.cpp

[libc++] Switch to the new docker image in the CI (#185843)

This also simplifies the workflow file a bit and removes a redundant
`generic-cxx26` configuration in stage 3.
DeltaFile
+8-18.github/workflows/libcxx-build-and-test.yaml
+1-1libcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp
+9-192 files

LLVM/project a5aa136llvm/lib/Target/AMDGPU AMDGPU.td SIInstrInfo.cpp, llvm/lib/Target/AMDGPU/Disassembler AMDGPUDisassembler.cpp

[AMDGPU] Add GFX11_7Insts feature, eliminate isGFX1170 helpers. NFC (#185878)
DeltaFile
+13-10llvm/lib/Target/AMDGPU/AMDGPU.td
+3-2llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+3-1llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
+0-4llvm/lib/Target/AMDGPU/GCNSubtarget.h
+0-4llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
+2-2llvm/lib/Target/AMDGPU/VOP3Instructions.td
+21-232 files not shown
+21-268 files