LLVM/project 013ee58llvm/lib/DebugInfo/PDB/Native PDBFileBuilder.cpp PDBFile.cpp, llvm/test/tools/llvm-pdbutil dxcontainer.test

Revert "Reapply "[PDB][llvm-pdbutil] Add DXContainer support for `pdb2yaml` and `yaml2pdb`"" (#200588)

Reverts llvm/llvm-project#200413

Breaks build bots:

https://lab.llvm.org/buildbot/#/builders/169/builds/23142
https://lab.llvm.org/buildbot/#/builders/25/builds/18082
DeltaFile
+0-143llvm/test/tools/llvm-pdbutil/dxcontainer.test
+22-49llvm/lib/DebugInfo/PDB/Native/PDBFileBuilder.cpp
+10-40llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp
+0-31llvm/tools/llvm-pdbutil/YAMLOutputStyle.cpp
+1-25llvm/lib/DebugInfo/PDB/Native/PDBFile.cpp
+0-7llvm/tools/llvm-pdbutil/PdbYaml.h
+33-2957 files not shown
+35-31413 files

LLVM/project b771021.github/workflows libc-fullbuild-tests.yml

[libc][ci] Clean up libc-fullbuild-tests precommit CI. (#200520)

- Pin containers.
- Cleaner names for different targets and options.
- Add Build Test step.
- Skip shared tests and death tests.
DeltaFile
+56-51.github/workflows/libc-fullbuild-tests.yml
+56-511 files

LLVM/project aa1cf32llvm/include/llvm/IR ValueHandle.h, llvm/unittests/IR ValueHandleTest.cpp

[IR] Fix PoisoningVH relocation of a poisoned handle (#200540)

In LLVM_ENABLE_ABI_BREAKING_CHECKS builds, when poisoned (`deleted()` or
`allUsesReplacedWith()`), a PoisoningVH is removed from its use list but
keeps its raw value pointer for identity, so its PrevPtr/Next are left
stale.

PoisoningVH has no move constructor, so relocating a value that embeds
one
falls back to the copy constructor, where `setRawValPtr` relinks with
the stale pointers and corrupts the use list.

This is a latent bug for any relocation of a PoisoningVH handle
but becomes load-bearing for #199615 , which relocating erase exercises
it via ScalarEvolution's BackedgeTakenInfo (its ExitNotTakenInfo holds a
PoisoningVH<BasicBlock>).

Fix by special casing the `Poisoned` case.
Aided By Claude Opus 4.8
DeltaFile
+34-0llvm/unittests/IR/ValueHandleTest.cpp
+18-3llvm/include/llvm/IR/ValueHandle.h
+52-32 files

LLVM/project 51256edllvm/include/llvm/IR DerivedTypes.h Type.h, llvm/lib/IR Type.cpp Use.cpp

[IR][NFC] Inline Type::isIntegerTy(n) (#200471)

Although this gets inlined in LTO builds, non-LTO builds benefit from
having isIntegerTy(n) defined in a header.

Co-authored-by: Nikita Popov <npopov at redhat.com>
DeltaFile
+8-0llvm/include/llvm/IR/DerivedTypes.h
+2-4llvm/include/llvm/IR/Type.h
+0-4llvm/lib/IR/Type.cpp
+1-0llvm/lib/IR/Use.cpp
+11-84 files

LLVM/project 92c7491llvm/lib/DebugInfo/PDB/Native PDBFileBuilder.cpp PDBFile.cpp, llvm/test/tools/llvm-pdbutil dxcontainer.test

Revert "Reapply "[PDB][llvm-pdbutil] Add DXContainer support for `pdb2yaml` a…"

This reverts commit 77800224eba1bd273c50fb1153945c38da507a52.
DeltaFile
+0-143llvm/test/tools/llvm-pdbutil/dxcontainer.test
+22-49llvm/lib/DebugInfo/PDB/Native/PDBFileBuilder.cpp
+10-40llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp
+0-31llvm/tools/llvm-pdbutil/YAMLOutputStyle.cpp
+1-25llvm/lib/DebugInfo/PDB/Native/PDBFile.cpp
+0-7llvm/tools/llvm-pdbutil/PdbYaml.h
+33-2957 files not shown
+35-31413 files

LLVM/project 2396aa8clang/lib/CIR/CodeGen CIRGenExprComplex.cpp

[CIR][NFC] Mark Complex visitExpr as unsupported (#197782)

Mark Complex visitExpr as unsupported, similar to Clang ORCG, not as NYI
DeltaFile
+4-2clang/lib/CIR/CodeGen/CIRGenExprComplex.cpp
+4-21 files

LLVM/project 0d1ed93libc/src/__support/CPP cstddef.h, libc/src/stdlib qsort_data.h

[libc] Tag cpp::byte with gnu::may_alias (#200462)

Clang's TBAA grants the [basic.lval]/11.3 char-aliasing privilege only
to the named ::std::byte type (Type::isStdByteType() requires the enum
to be declared in the std namespace). LIBC_NAMESPACE::cpp::byte lives in
libc's cpp namespace, so it gets its own TBAA node disjoint from char
even though it has the same shape as std::byte.

That mismatch lets the optimizer reorder typed loads past raw-byte
writes through cpp::byte *, miscompiling HeapSort on rv64/Release
(UnsortedThreeElementArray{1,2,3}, UnsortedTwoElementArray1 in
SortingTest.h). The same hazard is latent in every cpp::byte *-based
raw-aliasing site: memory_utils Ptr/CPtr, lsearch/lfind, block.h and
freelist_heap.h allocator metadata.

Tag the type with gnu::may_alias so accesses through cpp::byte * share
the universal char-aliasing TBAA node, fixing all of the above in one
place. This patch also reverts PR #194171, as the may_alias attribute
fixes it too.
DeltaFile
+14-15libc/src/stdlib/qsort_data.h
+5-1libc/src/__support/CPP/cstddef.h
+19-162 files

LLVM/project 470411cclang/lib/AST/ByteCode Compiler.cpp, clang/test/AST/ByteCode new-delete.cpp

[clang][bytecode] Loosen an assertion about operator delete (#200575)

We may also see OO_Array_Delete here.
DeltaFile
+15-0clang/test/AST/ByteCode/new-delete.cpp
+3-1clang/lib/AST/ByteCode/Compiler.cpp
+18-12 files

LLVM/project f7d5760mlir/include/mlir/Dialect/Utils IndexingUtils.h, mlir/lib/Dialect/Utils IndexingUtils.cpp

[mlir][nfc] Fix assertion text in IndexingUtils (#181826)

Update the assertion text to match the actual code behavior.
Some functions enforce strictly positive values, whereas the error
message incorrectly mentioned "nonnegative".
DeltaFile
+5-5mlir/lib/Dialect/Utils/IndexingUtils.cpp
+4-4mlir/include/mlir/Dialect/Utils/IndexingUtils.h
+9-92 files

LLVM/project ef6a217clang/lib/AST/ByteCode Compiler.cpp, clang/test/AST/ByteCode new-delete.cpp

[clang][bytecode] Fix a crash with an empty InitListExpr (#200366)

Fixes https://github.com/llvm/llvm-project/issues/200295
DeltaFile
+3-0clang/test/AST/ByteCode/new-delete.cpp
+1-1clang/lib/AST/ByteCode/Compiler.cpp
+4-12 files

LLVM/project b093c48llvm/include/llvm/IR Instruction.h, llvm/lib/Transforms/InstCombine InstructionCombining.cpp

Remove clearSubclassOptionalData

Created using spr 1.3.8-wip
DeltaFile
+14-25llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
+1-3llvm/lib/Transforms/Scalar/Reassociate.cpp
+0-3llvm/include/llvm/IR/Instruction.h
+1-1llvm/lib/Transforms/Utils/Local.cpp
+16-324 files

LLVM/project c7cd58aclang/lib/CIR/Lowering/DirectToLLVM LowerToLLVMIR.cpp, clang/test/CIR/CodeGenOpenCL kernel-arg-info.cl kernel-arg-metadata.cl

[CIR][OpenCL] Lower kernel argument metadata to LLVM IR

Translate CIR OpenCL kernel argument metadata into the LLVM IR kernel_arg_* metadata attached to kernel functions. Preserve optional argument names so -cl-kernel-arg-info controls the LLVM metadata surface through the CIR attribute.
DeltaFile
+74-1clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVMIR.cpp
+60-0clang/test/CIR/CodeGenOpenCL/kernel-arg-info.cl
+12-0clang/test/CIR/CodeGenOpenCL/kernel-arg-metadata.cl
+12-0clang/test/CIR/CodeGenOpenCL/kernel-arg-info-single-as.cl
+158-14 files

LLVM/project ef04777clang/lib/CIR/CodeGen CIRGenModule.cpp CIRGenModule.h, clang/test/CIR/CodeGenOpenCL kernel-arg-info.cl kernel-arg-info-single-as.cl

[CIR][OpenCL] Attach kernel argument metadata to CIR functions

Emit the CIR OpenCL kernel argument metadata attribute for kernel functions. Preserve CIR language address-space kinds until lowering and include argument names only when `-cl-kernel-arg-info` is enabled.

Depends on #199530.
DeltaFile
+152-0clang/test/CIR/CodeGenOpenCL/kernel-arg-info.cl
+83-0clang/lib/CIR/CodeGen/CIRGenModule.cpp
+19-0clang/test/CIR/CodeGenOpenCL/kernel-arg-info-single-as.cl
+7-0clang/test/CIR/CodeGenOpenCL/kernel-arg-metadata.cl
+4-0clang/lib/CIR/CodeGen/CIRGenModule.h
+3-0clang/lib/CIR/CodeGen/CIRGenFunction.cpp
+268-06 files

LLVM/project 30ec1faclang/lib/AST/ByteCode Compiler.cpp, clang/test/AST/ByteCode invalid.cpp

[clang][bytecode] Reject invalid UnaryOperators (#200394)
DeltaFile
+10-0clang/test/AST/ByteCode/invalid.cpp
+3-0clang/lib/AST/ByteCode/Compiler.cpp
+13-02 files

LLVM/project 3c95dd2llvm/lib/Transforms/Vectorize VPlanAnalysis.cpp VPlan.h

[VPlan] Thread scalar type through VPBlend, VPExpression recipes. (NFC) (#200255)

Set the scalar type for VPBlendRecipe and VPExpressionRecipe at
construction time, instead of inferring it on demand via VPTypeAnalysis.
With this change, all VPValues have their scalar type set at
construction, so VPTypeAnalysis::inferScalarType becomes a thin wrapper
around VPValue::getScalarType.

To be removed in a follow-up:
https://github.com/llvm/llvm-project/pull/200256.

PR: https://github.com/llvm/llvm-project/pull/200255
DeltaFile
+3-41llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp
+5-3llvm/lib/Transforms/Vectorize/VPlan.h
+4-1llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+4-0llvm/lib/Transforms/Vectorize/VPlanVerifier.cpp
+0-3llvm/lib/Transforms/Vectorize/VPlanAnalysis.h
+16-485 files

LLVM/project e2106aellvm/include/llvm/IR DerivedTypes.h Type.h, llvm/lib/IR Use.cpp

more out of line

Created using spr 1.3.8-wip
DeltaFile
+8-0llvm/include/llvm/IR/DerivedTypes.h
+2-6llvm/include/llvm/IR/Type.h
+1-0llvm/lib/IR/Use.cpp
+11-63 files

LLVM/project 2501cddllvm/test/CodeGen/X86 vector-shuffle-combining-avx512vbmi2.ll

[X86] Add VBMI2 shuffle test to track miscompile reported in #200136 (#200569)
DeltaFile
+16-0llvm/test/CodeGen/X86/vector-shuffle-combining-avx512vbmi2.ll
+16-01 files

LLVM/project d46e7dcclang/lib/AST/ByteCode Interp.h, clang/test/AST/ByteCode c.c

[clang][bytecode] Fix an assertion failure in AddSubNonNumber (#200393)

Calling Integral::getPtr() shouldn't happen for AddrLabelDiff integrals.
DeltaFile
+8-0clang/test/AST/ByteCode/c.c
+6-0clang/lib/AST/ByteCode/Interp.h
+14-02 files

LLVM/project 9bface9llvm/test/CodeGen/AMDGPU amdgcn.bitcast.1024bit.ll, llvm/test/CodeGen/AMDGPU/GlobalISel legalize-load-global.mir

Rebase

Created using spr 1.3.7
DeltaFile
+5,590-5,510llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+10,469-10llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-global.mir
+2,241-2,241llvm/test/tools/llvm-mca/RISCV/SiFiveP400/rvv/arithmetic.test
+1,831-1,831llvm/test/tools/llvm-mca/RISCV/SiFiveP400/rvv/fp.test
+1,541-1,541llvm/test/tools/llvm-mca/RISCV/SiFiveP400/rvv/vlseg-vsseg.test
+1,417-1,417llvm/test/tools/llvm-mca/RISCV/SiFiveP400/rvv/bitwise.test
+23,089-12,5501,766 files not shown
+94,758-51,3441,772 files

LLVM/project 71bcffallvm/test/CodeGen/AMDGPU amdgcn.bitcast.1024bit.ll, llvm/test/CodeGen/AMDGPU/GlobalISel legalize-load-global.mir

Rebase

Created using spr 1.3.7
DeltaFile
+5,590-5,510llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+10,469-10llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-global.mir
+2,241-2,241llvm/test/tools/llvm-mca/RISCV/SiFiveP400/rvv/arithmetic.test
+1,831-1,831llvm/test/tools/llvm-mca/RISCV/SiFiveP400/rvv/fp.test
+1,541-1,541llvm/test/tools/llvm-mca/RISCV/SiFiveP400/rvv/vlseg-vsseg.test
+1,417-1,417llvm/test/tools/llvm-mca/RISCV/SiFiveP400/rvv/bitwise.test
+23,089-12,5501,206 files not shown
+81,459-42,2151,212 files

LLVM/project 8d86dc2llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/AArch64 lcssa-phi-extract-scale.ll

[SLP] Fix extract-cost scale using NCD of all external-user sites

ExtractCostCalculated deduplicates by scalar so only the first
ExternalUser determines the scale, making the cost depend on IR block
ordering via LLVM's reverse-insertion use-list order.
Add a pre-pass computing ScalarToExtractBlock - the nearest common
dominator of all effective extract sites per scalar. For PHI users inside
a loop the effective site is the incoming block; for PHI users outside
all loops it is the PHI's own block (scale = 1). The extract cost is
then scaled by getLoopNestScale of the NCD block, which is fully
order-independent.

Fixes #199548

Reviewers: bababuck, RKSimon, hiraditya

Pull Request: https://github.com/llvm/llvm-project/pull/199962
DeltaFile
+66-44llvm/test/Transforms/SLPVectorizer/AArch64/lcssa-phi-extract-scale.ll
+71-2llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+137-462 files

LLVM/project d9cbed5mlir/test/Dialect/LLVMIR attach-targets.mlir

[MLIR][GPU][NFC] Reformat GPU target attachment tests (#199339)

Reformat attach-targets.mlir so each GPU module has a labeled check
block, split target-attachment RUN lines, and keep comments tied to the
expected target-specific matches.
DeltaFile
+38-20mlir/test/Dialect/LLVMIR/attach-targets.mlir
+38-201 files

LLVM/project 3467e7fllvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/AArch64 lcssa-phi-inner-loop-scale.ll

[SLP] Fix extract-cost scale for LCSSA-phi external users in nested loops

getScaleToLoopIterations() used U->getParent() for all PHI-node external
users. For an LCSSA phi at an inner-loop exit still inside an outer loop,
this gave outer-loop scale instead of inner*outer scale. Because
ExtractCostCalculated deduplicates by scalar, only the first ExternalUser
determines the scale, making the cost order-dependent on use-list ordering
(and thus on .ll block ordering).

Reviewers: hiraditya, RKSimon, bababuck

Pull Request: https://github.com/llvm/llvm-project/pull/199954
DeltaFile
+24-18llvm/test/Transforms/SLPVectorizer/AArch64/lcssa-phi-inner-loop-scale.ll
+27-1llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+51-192 files

LLVM/project a59f995llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/AArch64 recalc-copyable-node.ll

[SLP] Recompute copyable operand deps for duplicate copyable nodes

A bundle may duplicate a previously built node that has copyable elements
(same schedulable instructions, different copyable lane) while the parent
node also has copyable elements. An operand modeled as a copyable element
in the previous node is then used directly by the new node, which is not
registered in the tree yet. Recomputing that operand's direct
dependencies at this point misses the direct use, so the scheduler
decrements the operand more times than its dependency count and trips the
unscheduled-deps assertion.
Defer recomputation of such operand dependencies via
RecalcCopyableOperandDeps and redo it at the next bundle scheduling, when
the duplicate node is part of the tree. Also clear and recompute the
direct dependencies of bundles whose user is a gather node referenced
through EdgeIdx == UINT_MAX in scheduleBlock, so combined gather
sub-entries get correct dependencies against the full tree.

Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/200564
DeltaFile
+243-0llvm/test/Transforms/SLPVectorizer/AArch64/recalc-copyable-node.ll
+91-5llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+334-52 files

LLVM/project 80ad13autils/bazel/llvm-project-overlay/compiler-rt BUILD.bazel

[bazel] Fix compiler-rt:interception (#200561)

- Add `-DCOMPILER_RT_BUILD_PROFILE_ROCM=1`
- Prune `"lib/sanitizer_common/*.S"`, it means `*.inc.S`
- Add `-fvisibility=hidden`

Bazel doesn't add `-gline-tables-only` by default. Add flags to CMake
side to align the build to Bazel.

- `-DCOMPILER_RT_HAS_G_FLAG=OFF`
- `-DCOMPILER_RT_HAS_GLINE_TABLES_ONLY_FLAG=OFF`
DeltaFile
+6-2utils/bazel/llvm-project-overlay/compiler-rt/BUILD.bazel
+6-21 files

LLVM/project a032f6cutils/bazel/llvm-project-overlay/compiler-rt BUILD.bazel

`-fomit-frame-pointer` and buildifier
DeltaFile
+2-1utils/bazel/llvm-project-overlay/compiler-rt/BUILD.bazel
+2-11 files

LLVM/project 368746cllvm/include/llvm/IR Type.h DerivedTypes.h, llvm/lib/IR Use.cpp

move to Type.h?

Created using spr 1.3.8-wip
DeltaFile
+3-1llvm/include/llvm/IR/Type.h
+0-4llvm/include/llvm/IR/DerivedTypes.h
+0-1llvm/lib/IR/Use.cpp
+3-63 files

LLVM/project f15904eclang/test/OpenMP target_teams_codegen.cpp, llvm/include/llvm/Frontend/OpenMP OMPIRBuilder.h

[offload][OpenMP] Add strict flag for blocks and threads in kernel arguments (#199483)

Until now, strict behavior in the number of threads and blocks has been
applied only when the kernel is in bare mode. When this mode is enabled,
the values passed in UserNumBlocks and UserThreadLimit are not adjusted
and are the definitive values used to launch the kernel. This commit
detaches the strictness from the kernel mode.

This is going to be used by the kernel replay tool. Additionally, it
starts clearing the path for the upcoming OpenMP dims modifier, used to
configure multidimensional teams and leagues, which will include
strictness choices for teams and threads.

All the bare kernels must indicate strict behavior. Asserts are added to
check this condition.
DeltaFile
+153-0offload/test/offloading/ompx_bare_gridsize.c
+42-42clang/test/OpenMP/target_teams_codegen.cpp
+27-22offload/plugins-nextgen/common/src/PluginInterface.cpp
+41-0offload/unittests/OffloadAPI/kernel/olLaunchKernel.cpp
+13-0offload/unittests/OffloadAPI/device_code/gridsize.cpp
+6-2llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
+282-668 files not shown
+301-7314 files

LLVM/project 5f9a538utils/bazel/llvm-project-overlay/compiler-rt BUILD.bazel

[bazel] Fix compiler_rt:interception

- Add `-DCOMPILER_RT_BUILD_PROFILE_ROCM=1`
- Prune `"lib/sanitizer_common/*.S"`, it means `*.inc.S`
- Add `-fvisibility=hidden`

Bazel doesn't add `-gline-tables-only` by default. Add flags to CMake side to align the build to Bazel.

- `-DCOMPILER_RT_HAS_G_FLAG=OFF`
- `-DCOMPILER_RT_HAS_GLINE_TABLES_ONLY_FLAG=OFF`
DeltaFile
+5-2utils/bazel/llvm-project-overlay/compiler-rt/BUILD.bazel
+5-21 files

LLVM/project e3f80femlir/lib/Conversion/MathToSPIRV MathToSPIRV.cpp, mlir/test/Conversion/MathToSPIRV math-to-gl-spirv.mlir math-to-fpclassify-spirv.mlir

[mlir][SPIR-V] Convert math.clampf to spirv.GLFClamp and math.ctpop to spirv.BitCount (#200454)
DeltaFile
+15-0mlir/test/Conversion/MathToSPIRV/math-to-gl-spirv.mlir
+9-0mlir/test/Conversion/MathToSPIRV/math-to-fpclassify-spirv.mlir
+2-0mlir/lib/Conversion/MathToSPIRV/MathToSPIRV.cpp
+26-03 files