LLVM/project 627bb2aclang-tools-extra/clang-tidy/bugprone PointerArithmeticOnPolymorphicObjectCheck.cpp, clang-tools-extra/docs ReleaseNotes.md

[clang-tidy] Fix crash on pointer arithmetic with an incomplete type in bugprone-pointer-arithmetic-on-polymorphic-object (#215724)

This commit fixes a crash in clangd / clang-tidy: running
the `bugprone-pointer-arithmetic-on-polymorphic-object` check on code
that does pointer arithmetic on a pointer to an **incomplete type** (a
type that is forward-declared but never defined) makes the matcher hit
an assertion and abort.

AI note: Used AI tools for code analysis and wording polish.
DeltaFile
+10-0clang-tools-extra/test/clang-tidy/checkers/bugprone/pointer-arithmetic-on-polymorphic-object-decl-only.cpp
+10-0clang-tools-extra/test/clang-tidy/checkers/bugprone/pointer-arithmetic-on-polymorphic-object-all.cpp
+6-2clang-tools-extra/clang-tidy/bugprone/PointerArithmeticOnPolymorphicObjectCheck.cpp
+4-0clang-tools-extra/docs/ReleaseNotes.md
+30-24 files

LLVM/project a992451llvm/lib/Target/RISCV RISCVPassRegistry.def RISCVExpandPseudoInsts.cpp, llvm/test/CodeGen/RISCV O3-newpm-pipeline.ll O1-newpm-pipeline.ll

[RISCV] Rename riscv-pre-ra-expand-pseudo (#218106)

From riscv-prera-expand-psuedo. Makes the name more consistent with
other targets (e.g., AMDGPU uses pre-ra) and with our hyphenation in
general.
DeltaFile
+4-4llvm/test/CodeGen/RISCV/prera-expand-pseudo.mir
+2-2llvm/test/CodeGen/RISCV/mir-target-flags.ll
+1-1llvm/test/CodeGen/RISCV/O3-newpm-pipeline.ll
+1-1llvm/test/CodeGen/RISCV/O1-newpm-pipeline.ll
+1-1llvm/lib/Target/RISCV/RISCVPassRegistry.def
+1-1llvm/lib/Target/RISCV/RISCVExpandPseudoInsts.cpp
+10-106 files

LLVM/project 0836f71llvm/lib/Target/RISCV RISCVExpandPseudoInsts.cpp RISCV.h

[RISCV][NewPM] Fix Up PreRAExpandPseudo (#218105)

- Add missing MFPropsModifier
- Mark pass as required
DeltaFile
+1-1llvm/lib/Target/RISCV/RISCV.h
+1-0llvm/lib/Target/RISCV/RISCVExpandPseudoInsts.cpp
+2-12 files

LLVM/project 1e0f480llvm/lib/CodeGen/GlobalISel LegalizerHelper.cpp, llvm/test/CodeGen/AArch64/GlobalISel legalize-extracts.mir

[AArch64][GlobalISel] Use a integer type for extract narrowing. (#216254)
DeltaFile
+4-4llvm/test/CodeGen/AArch64/GlobalISel/legalize-extracts.mir
+1-1llvm/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp
+1-1llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
+6-63 files

LLVM/project c86dbf2llvm/lib/Target/RISCV RISCVTargetMachine.cpp RISCV.h

[RISCV][NFC] Avoid PassPass in RISCVCodeGenPrepare (#218081)
DeltaFile
+8-8llvm/lib/Target/RISCV/RISCVCodeGenPrepare.cpp
+1-1llvm/lib/Target/RISCV/RISCVTargetMachine.cpp
+1-1llvm/lib/Target/RISCV/RISCV.h
+10-103 files

LLVM/project eef6a98llvm/include/llvm/IR VPIntrinsics.def, llvm/lib/CodeGen/SelectionDAG MatchContext.h LegalizeVectorOps.cpp

[DAG] Remove trivial VP SDNodes. NFC

This removes the codegen parts of the trivial VP intrinsics. It's quite far reaching, but the general categories of code removed are:

- Removing definitions from VPIntrinsics.def
- Legalization and expansion code
- MatchContext used to match over both VP and non-VP nodes
- Some dead DAGCombines and folds in SelectionDAGBuilder

There are still more things to be cleaned up after this, e.g. removing more of the VPIntrinsic class hierarchy, removing ExpandVectorPredication/moving expansion into other places, removing MatchContext from SDPatternMatch
DeltaFile
+80-283llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
+3-340llvm/include/llvm/IR/VPIntrinsics.def
+6-336llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
+47-282llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
+7-217llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
+0-182llvm/lib/CodeGen/SelectionDAG/MatchContext.h
+143-1,64011 files not shown
+188-2,01417 files

LLVM/project 0a16802llvm/lib/Target/VE VVPNodes.def

[VE] Remove trivial VP SDNode mappings. NFC

These SDNodes aren't emitted anymore and will be removed in an upcoming patch.
DeltaFile
+9-9llvm/lib/Target/VE/VVPNodes.def
+9-91 files

LLVM/project beacbc8llvm/lib/CodeGen/SelectionDAG TargetLowering.cpp LegalizeVectorOps.cpp, llvm/test/CodeGen/VE/Vector vp_urem.ll vp_srem.ll

[DAG] Expand vp.*rem and vp.cttz.elts with non-vp nodes. (#217864)

Trivial VP SDNodes will be removed in an upcoming patch. The division is
still predicated so we avoid UB.
DeltaFile
+24-12llvm/test/CodeGen/VE/Vector/vp_urem.ll
+24-12llvm/test/CodeGen/VE/Vector/vp_srem.ll
+5-5llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
+3-5llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
+56-344 files

LLVM/project cdc94fallvm/lib/Target/WebAssembly WebAssemblyPassRegistry.def WebAssemblyTargetMachine.cpp, llvm/lib/Target/WebAssembly/GISel WebAssemblyPreLegalizerCombiner.cpp

[𝘀𝗽𝗿] changes to main this commit is based on

Created using spr 1.3.7

[skip ci]
DeltaFile
+58-28llvm/lib/Target/WebAssembly/GISel/WebAssemblyPreLegalizerCombiner.cpp
+9-2llvm/lib/Target/WebAssembly/WebAssembly.h
+2-4llvm/lib/Target/WebAssembly/WebAssemblyCodeGenPassBuilder.cpp
+2-2llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
+1-0llvm/lib/Target/WebAssembly/WebAssemblyPassRegistry.def
+72-365 files

LLVM/project 994f542llvm/lib/Target/WebAssembly WebAssemblyPassRegistry.def WebAssemblyTargetMachine.cpp, llvm/lib/Target/WebAssembly/GISel WebAssemblyPreLegalizerCombiner.cpp WebAssemblyPostLegalizerCombiner.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+57-30llvm/lib/Target/WebAssembly/GISel/WebAssemblyPostLegalizerCombiner.cpp
+58-28llvm/lib/Target/WebAssembly/GISel/WebAssemblyPreLegalizerCombiner.cpp
+18-4llvm/lib/Target/WebAssembly/WebAssembly.h
+4-8llvm/lib/Target/WebAssembly/WebAssemblyCodeGenPassBuilder.cpp
+4-4llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
+2-0llvm/lib/Target/WebAssembly/WebAssemblyPassRegistry.def
+143-746 files

LLVM/project aa8d1afllvm/test/Feature codegen-plugin-passes.mir, llvm/tools/llc NewPMDriver.cpp llc.cpp

[llc] Register pass plugin callbacks with the new pass manager (#217727)

llc loads the libraries given to `--load-pass-plugin`, but only ever
invokes their
`PreCodeGenCallback`; the plugins' `PassBuilder` callbacks are never
registered, so a pass
provided by a plugin cannot be named in `-passes`. Register them in the
new PM driver,
matching what opt does in `llvm/tools/opt/NewPMDriver.cpp`.

This is visible with LLVM's own example plugin, which opt accepts and
llc rejects:

$ opt -load-pass-plugin=lib/Bye.so -passes=goodbye -disable-output f.ll
$ llc -load-pass-plugin=lib/Bye.so -passes=goodbye f.mir -o /dev/null
    unknown pass name 'goodbye'

Claude Code helped me navigate the codebase.
DeltaFile
+17-0llvm/test/Feature/codegen-plugin-passes.mir
+8-8llvm/tools/llc/NewPMDriver.h
+4-4llvm/tools/llc/llc.cpp
+4-1llvm/tools/llc/NewPMDriver.cpp
+33-134 files

LLVM/project 5e56808libc/src/__support/OSUtil/linux/syscall_wrappers timer_delete.h timer_create.h, libc/src/time/linux timer_delete.cpp CMakeLists.txt

[libc][time] Implement timer_create and timer_delete. (#217920)

Implement timer_create and timer_delete functions according to
POSIX.1-2024.

Assisted-by: Gemini
DeltaFile
+96-0libc/test/src/time/timer_test.cpp
+91-0libc/src/__support/OSUtil/linux/syscall_wrappers/timer_create.h
+38-0libc/src/__support/OSUtil/linux/syscall_wrappers/timer_delete.h
+33-0libc/src/time/linux/CMakeLists.txt
+33-0libc/src/time/linux/timer_create.cpp
+31-0libc/src/time/linux/timer_delete.cpp
+322-09 files not shown
+464-015 files

LLVM/project 8efc4dfllvm/lib/Transforms/Vectorize VectorCombine.cpp, llvm/test/Transforms/VectorCombine load-insert-store.ll

[VectorCombine] Preserve unsigned indices in scalarized GEPs (#212470)

Scalarized load and store GEPs currently reuse the extract/insert index
directly. Narrow integer indices are unsigned lane numbers, but GEP
sign-extends them to the pointer index type, which can select the wrong
address.Check that the largest byte offset is representable, zero-extend
narrow indices when required, account for the cast cost, and use the
element store size when checking packed layouts. Update all affected
regression expectations.

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

Assisted-by: Codex
DeltaFile
+162-0llvm/test/Transforms/VectorCombine/X86/scalarized-gep-index-representability.ll
+106-5llvm/lib/Transforms/Vectorize/VectorCombine.cpp
+46-20llvm/test/Transforms/VectorCombine/load-insert-store.ll
+30-30llvm/test/Transforms/VectorCombine/AArch64/load-extractelement-scalarization.ll
+46-1llvm/test/Transforms/VectorCombine/X86/load-extractelement-scalarization.ll
+5-5llvm/test/Transforms/VectorCombine/AArch64/load-extract-insert-store-scalarization.ll
+395-614 files not shown
+402-6810 files

LLVM/project 8f5a0a1llvm/lib/Target/AArch64/GISel AArch64LegalizerInfo.cpp, llvm/test/CodeGen/AArch64/GlobalISel legalize-vacopy.mir

[AArch64][GlobalISel] Use integer types in vacopy legalization. (#216255)
DeltaFile
+10-10llvm/test/CodeGen/AArch64/GlobalISel/legalize-vacopy.mir
+1-1llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
+11-112 files

LLVM/project f1c066cclang/test/Analysis/Scalable/source-edit-generation/Plugins/TestTransformationPlugin TestTransformation.cpp CMakeLists.txt

Revert "[SSAF] Fix a stage2 test failure with ASan-instrumented clang - continued" (#218092)

Reverts llvm/llvm-project#217799 because it breaks other ASan buildbots
(e.g., https://lab.llvm.org/buildbot/#/builders/169/builds/25867):
```
[1692/5724] Building CXX object tools/clang/test/Analysis/Scalable/source-edit-generation/Plugins/TestTransformationPlugin/CMakeFiles/SSAFTestTransformationPlugin.dir/TestTransformation.cpp.o
FAILED: [code=1] tools/clang/test/Analysis/Scalable/source-edit-generation/Plugins/TestTransformationPlugin/CMakeFiles/SSAFTestTransformationPlugin.dir/TestTransformation.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes CCACHE_SLOPPINESS=pch_defines,time_macros /usr/bin/ccache /home/b/sanitizer-x86_64-linux-fast/build/llvm_build0/bin/clang++ -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan_ubsan/tools/clang/test/Analysis/Scalable/source-edit-generation/Plugins/TestTransformationPlugin -I/home/b/sanitizer-x86_64-linux-fast/build/llvm-project/clang/test/Analysis/Scalable/source-edit-generation/Plugins/TestTransformationPlugin -I/home/b/sanitizer-x86_64-linux-fast/build/llvm-project/clang/include -I/home/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan_ubsan/tools/clang/include -I/home/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan_ubsan/include -I/home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include -nostdinc++ -isystem /home/b/sanitizer-x86_64-linux-fast/build/libcxx_install_asan_ubsan/include -isystem /home/b/sanitizer-x86_64-linux-fast/build/libcxx_install_asan_ubsan/include/c++/v1 -fsanitize=address,undefined -fno-sanitize-recover=all -Wl,--rpath=/home/b/sanitizer-x86_64-linux-fast/build/libcxx_install_asan_ubsan/lib -L/home/b/sanitizer-x86_64-linux-fast/build/libcxx_install_asan_ubsan/lib -lc++abi -fuse-ld=lld -w -stdlib=libc++ -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported -fno-omit-frame-pointer -gline-tables-only -fsanitize=address -fsanitize=undefined -fno-sanitize=vptr,function -fno-sanitize-recover=all -fsanitize-blacklist=/home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/sanitizers/ubsan_ignorelist.txt -fdiagnostics-color -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -Wno-nested-anon-types -O3 -DNDEBUG -std=c++17 -fPIC -UNDEBUG -fno-exceptions -funwind-tables -fno-rtti -fno-sanitize=all -MD -MT tools/clang/test/Analysis/Scalable/source-edit-generation/Plugins/TestTransformationPlugin/CMakeFiles/SSAFTestTransformationPlugin.dir/TestTransformation.cpp.o -MF tools/clang/test/Analysis/Scalable/source-edit-generation/Plugins/TestTransformationPlugin/CMakeFiles/SSAFTestTransformationPlugin.dir/TestTransformation.cpp.o.d -o tools/clang/test/Analysis/Scalable/source-edit-generation/Plugins/TestTransformationPlugin/CMakeFiles/SSAFTestTransformationPlugin.dir/TestTransformation.cpp.o -c /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/clang/test/Analysis/Scalable/source-edit-generation/Plugins/TestTransformationPlugin/TestTransformation.cpp
In file included from /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/clang/test/Analysis/Scalable/source-edit-generation/Plugins/TestTransformationPlugin/TestTransformation.cpp:21:
In file included from /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/clang/include/clang/AST/ASTContext.h:18:
In file included from /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/clang/include/clang/AST/CanonicalType.h:17:
In file included from /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/clang/include/clang/AST/Type.h:20:
In file included from /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/clang/include/clang/AST/Decl.h:16:
In file included from /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/clang/include/clang/AST/APNumericStorage.h:12:
In file included from /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/APFloat.h:19:
In file included from /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:12:
In file included from /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/Hashing.h:58:
In file included from /home/b/sanitizer-x86_64-linux-fast/build/libcxx_install_asan_ubsan/include/c++/v1/string:603:
/home/b/sanitizer-x86_64-linux-fast/build/libcxx_install_asan_ubsan/include/c++/v1/__debug_utils/sanitizers.h:42:4: error: "We can't disable ASAN container checks when libc++ has been built with ASAN container checks enabled"

    [10 lines not shown]
DeltaFile
+0-10clang/test/Analysis/Scalable/source-edit-generation/Plugins/TestTransformationPlugin/CMakeLists.txt
+3-0clang/test/Analysis/Scalable/source-edit-generation/Plugins/TestTransformationPlugin/TestTransformation.cpp
+3-102 files

LLVM/project c899f6bllvm/lib/Target/WebAssembly WebAssemblyPassRegistry.def WebAssemblyTargetMachine.cpp, llvm/lib/Target/WebAssembly/GISel WebAssemblyPreLegalizerCombiner.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+58-28llvm/lib/Target/WebAssembly/GISel/WebAssemblyPreLegalizerCombiner.cpp
+9-2llvm/lib/Target/WebAssembly/WebAssembly.h
+2-4llvm/lib/Target/WebAssembly/WebAssemblyCodeGenPassBuilder.cpp
+2-2llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
+1-0llvm/lib/Target/WebAssembly/WebAssemblyPassRegistry.def
+72-365 files

LLVM/project c9ba8a4clang/test/Analysis/Scalable/source-edit-generation/Plugins/TestTransformationPlugin TestTransformation.cpp CMakeLists.txt

Revert "[SSAF] Fix a stage2 test failure with ASan-instrumented clang - conti…"

This reverts commit ede975d9f046441b9793e02bab190bd0bafb1fa2.
DeltaFile
+0-10clang/test/Analysis/Scalable/source-edit-generation/Plugins/TestTransformationPlugin/CMakeLists.txt
+3-0clang/test/Analysis/Scalable/source-edit-generation/Plugins/TestTransformationPlugin/TestTransformation.cpp
+3-102 files

LLVM/project 55de668llvm/lib/Target/RISCV RISCVCodeGenPassBuilder.cpp RISCVPassRegistry.def, llvm/test/CodeGen/RISCV prera-expand-pseudo.mir

[RISCV] Port PreRA Pseudo Expansion to NewPM (#218069)
DeltaFile
+53-28llvm/lib/Target/RISCV/RISCVExpandPseudoInsts.cpp
+50-0llvm/test/CodeGen/RISCV/prera-expand-pseudo.mir
+12-2llvm/lib/Target/RISCV/RISCV.h
+2-2llvm/lib/Target/RISCV/RISCVTargetMachine.cpp
+1-1llvm/lib/Target/RISCV/RISCVCodeGenPassBuilder.cpp
+2-0llvm/lib/Target/RISCV/RISCVPassRegistry.def
+120-332 files not shown
+122-338 files

LLVM/project f787fa7llvm/lib/Target/AMDGPU SIISelLowering.h VOP3Instructions.td, llvm/test/CodeGen/AMDGPU arbitrary-fp-to-float-fp8-hw.ll float-to-arbitrary-fp-fp8-hw.ll

[AMDGPU] Add custom lowering for E5M3 path for packed convert instructions through `convert.{to|from}.arbitrary.fp` (#218056)

Some packed convert instructions support producing FP8 floating output
in the E5M3 format by control through the CLAMP bit. Currently, we have
builtins and intrinsics that support that lowering.

This PR adds lowering through the newly added
`convert.{to|from}.arbitrary.fp` intrinsics.
DeltaFile
+1,540-3llvm/test/CodeGen/AMDGPU/float-to-arbitrary-fp-fp8-hw.ll
+460-1llvm/test/CodeGen/AMDGPU/arbitrary-fp-to-float-fp8-hw.ll
+56-17llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+10-0llvm/lib/Target/AMDGPU/SIInstrInfo.td
+2-2llvm/lib/Target/AMDGPU/VOP3Instructions.td
+2-1llvm/lib/Target/AMDGPU/SIISelLowering.h
+2,070-241 files not shown
+2,072-247 files

LLVM/project 4e3ddd5lldb/source/Expression DWARFExpression.cpp, lldb/unittests/Expression DWARFExpressionTest.cpp

[lldb] Canonicalize DW_OP_GNU_const_index to the generic type (#217262)

`DW_OP_GNU_const_index` reads a machine-address-sized constant from the
address table and pushes it as a generic value. The generic type has the
size of an address on the target, so on a 32-bit compilation unit the
pushed value should be a 32-bit scalar.

`DWARFUnit::ReadAddressFromDebugAddrSection` reads the correct number of
bytes, but the evaluator case pushed the result as `Scalar(value)`,
where
`value` is a 64-bit `lldb::addr_t`, leaving a 64-bit scalar on the stack
instead of canonicalizing to `8 * address_size` like the other
constant-pushing opcodes.

Use `to_generic`, as `DW_OP_addrx` / `DW_OP_GNU_addr_index` already do,
so the pushed value has the generic type's width.

Adds a `DW_OP_GNU_const_index_address_size` unit test asserting both the
wraparound of generic arithmetic at the 32-bit address size and the

    [3 lines not shown]
DeltaFile
+14-0lldb/unittests/Expression/DWARFExpressionTest.cpp
+1-1lldb/source/Expression/DWARFExpression.cpp
+15-12 files

LLVM/project 5ed5b7bclang/lib/Basic/Targets NVPTX.cpp, clang/lib/CodeGen CodeGenModule.cpp

[clang][NVPTX] exclude feature attributes from target-features (#215451)
DeltaFile
+5-3clang/lib/CodeGen/CodeGenModule.cpp
+6-0clang/lib/Basic/Targets/NVPTX.cpp
+1-1clang/test/CodeGen/nvptx_attributes.c
+12-43 files

LLVM/project a6d7b2fllvm/include/llvm/Analysis DXILResource.h, llvm/lib/Analysis DXILResource.cpp

[DirectX] Add support for heap resources to `DXILResourceMap` (#216454)

`DXILResourceMap` now handles a new `llvm.dx.resource.handlefromheap`
intrisics and adds the heap resources to the resource map.

A new member `HeapResourceID` has been added to `ResourceInfo` to
distinguish between heap resource instances created from different
indices. The `HeapResourceID` is unique for each heap index `Value*`, so
multiple handle creation calls using the same index `Value*` resolve to
the same resource.

Heap resources do not have register bindings, so the `Binding` member on
`ResourceInfo` is now optional.

All places that were expecting binding to exist are updated to handle
bindless heap resources. In most cases that means skipping them, such as
when generating DXIL resource metadata, creating PSV resource entries or
pretty-printing the resource table comment for the module disassembly
output.

    [5 lines not shown]
DeltaFile
+186-0llvm/test/Analysis/DXILResource/buffer-fromheap.ll
+48-10llvm/lib/Analysis/DXILResource.cpp
+32-8llvm/include/llvm/Analysis/DXILResource.h
+19-1llvm/test/CodeGen/DirectX/Metadata/cbuffer-metadata.ll
+13-1llvm/test/CodeGen/DirectX/Metadata/uav_metadata.ll
+13-1llvm/test/CodeGen/DirectX/Metadata/srv_metadata.ll
+311-216 files not shown
+349-2712 files

LLVM/project f299471llvm/include/llvm/IR VPIntrinsics.def, llvm/lib/CodeGen/SelectionDAG MatchContext.h LegalizeVectorOps.cpp

[DAG] Remove trivial VP SDNodes. NFC

This removes the codegen parts of the trivial VP intrinsics. It's quite far reaching, but the general categories of code removed are:

- Removing definitions from VPIntrinsics.def
- Legalization and expansion code
- MatchContext used to match over both VP and non-VP nodes
- Some dead DAGCombines and folds in SelectionDAGBuilder

There are still more things to be cleaned up after this, e.g. removing more of the VPIntrinsic class hierarchy, removing ExpandVectorPredication/moving expansion into other places, removing MatchContext from SDPatternMatch
DeltaFile
+80-283llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
+3-340llvm/include/llvm/IR/VPIntrinsics.def
+6-336llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
+47-282llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
+7-217llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
+0-182llvm/lib/CodeGen/SelectionDAG/MatchContext.h
+143-1,64011 files not shown
+188-2,01417 files

LLVM/project 277a9f0llvm/lib/Target/VE VVPNodes.def

[VE] Remove trivial VP SDNode mappings. NFC

These SDNodes aren't emitted anymore and will be removed in an upcoming patch.
DeltaFile
+9-9llvm/lib/Target/VE/VVPNodes.def
+9-91 files

LLVM/project e6e93eallvm/lib/CodeGen/SelectionDAG TargetLowering.cpp LegalizeVectorOps.cpp, llvm/test/CodeGen/VE/Vector vp_urem.ll vp_srem.ll

[DAG] Expand vp.*rem and vp.cttz.elts with non-vp nodes.

Trivial VP SDNodes will be removed in an upcoming patch. The division is still predicated so we avoid UB.
DeltaFile
+24-12llvm/test/CodeGen/VE/Vector/vp_urem.ll
+24-12llvm/test/CodeGen/VE/Vector/vp_srem.ll
+5-5llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
+3-5llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
+56-344 files

LLVM/project 3bc32damlir/test lit.site.cfg.py.in, mlir/test/Integration/Dialect/LLVMIR/CPU lit.local.cfg test-vp-intrinsic.mlir

[MLIR] Remove VP intrinsic intregration test. NFC (#218087)

Fixes the buildbot failure in
https://lab.llvm.org/buildbot/#/builders/177/builds/39732.
vp.add has been removed in #217863 so this just removes the test.

This essentially reverts commit
ee82b864f2086f944f046bd00b03f30697403f8a.
DeltaFile
+0-36mlir/test/Integration/Dialect/LLVMIR/CPU/test-vp-intrinsic.mlir
+0-22mlir/test/Integration/Dialect/LLVMIR/CPU/lit.local.cfg
+0-5mlir/test/lit.site.cfg.py.in
+0-633 files

LLVM/project dafb6eeclang/include/clang/Options FlangOptions.td, clang/lib/Driver/ToolChains Flang.cpp

[Flang] Repair intrinsic CUBLAS USE association (#217455)

This is a fix targeted at the specific code berkeleygw. It adds a
general extension by which imports of intrinsic functions can shadow
imported user functions and adds a single exception for CUBLAS `zgemm`
USE-association collision with an equivalent user external interface.

When the intrinsic CUBLAS generic and an equivalent external interface
are USE-associated under the same name, Flang now selects the CUBLAS
generic via a default-on compatibility extension. This preserves the
CUBLAS CUDA-specific overloads instead of creating an unusable local
association.

The repair warns by default under
`-Wintrinsic-module-use-association-extension`;
`-fno-intrinsic-module-use-association` retains the prior semantic
error, and `-Wno-intrinsic-module-use-association-extension` suppresses
the warning.
DeltaFile
+176-0flang/test/Semantics/CUDA/cuf-use-cublas-zgemm.cuf
+130-0flang/lib/Semantics/resolve-names.cpp
+32-29clang/lib/Driver/ToolChains/Flang.cpp
+10-0flang/lib/Frontend/CompilerInvocation.cpp
+8-0flang/tools/bbc/bbc.cpp
+3-0clang/include/clang/Options/FlangOptions.td
+359-292 files not shown
+361-308 files

LLVM/project d71dc82llvm/include/llvm/TargetParser AMDGPUTargetParser.h, llvm/lib/Target/AMDGPU GCNSubtarget.h GCNSubtarget.cpp

Remove FullSIMDs and HalfSIMDs discussion

Change-Id: I069219e98793a5234724235c2bfe4a1becda8b1d
DeltaFile
+5-19llvm/lib/Target/AMDGPU/AMDGPU.td
+2-5llvm/lib/Target/AMDGPU/GCNSubtarget.cpp
+2-5llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
+3-4llvm/lib/TargetParser/AMDGPUTargetParser.cpp
+0-3llvm/lib/Target/AMDGPU/GCNSubtarget.h
+1-2llvm/utils/TableGen/Basic/AMDGPUTargetDefEmitter.cpp
+13-386 files

LLVM/project 6d8f48cbolt/include/bolt/Core Exceptions.h, bolt/lib/Core Exceptions.cpp

[BOLT] Parse .eh_frame CFI programs on demand to reduce memory

BOLT read the entire .eh_frame up front via DwCtx->getEHFrame(), which
parses and caches the CFI instruction program of every CIE/FDE in the
binary for the whole run. On a large binary, this dominated
file-object discovery: CFIProgram::parse accounted for ~6.5 GB and the
cached DWARFDebugFrame ~6.9 GB of live memory. Yet the CFI programs
are only consumed in CFIReaderWriter::fillCFIInfoFor, and only for the
functions BOLT actually disassembles. discoverFileObjects itself needs
nothing but each FDE's address and range for function-boundary checks.

Here we parse .eh_frame for its index only, and decode each function's
CFI program on demand, lazily, only for the functions that really need
it. In a large binary, DWARFDebugFrame::parse drops from 6922.2 MB
to 587.6 MB, the residual being the lightweight FDE/CIE index (entries
without instruction programs), and readSpecialSections falls from
7078.7 MB to 738.6 MB on the tested binary for which BOLT's RSS is
about 80-120GB.
DeltaFile
+26-8bolt/lib/Core/Exceptions.cpp
+20-5bolt/lib/Rewrite/RewriteInstance.cpp
+21-3bolt/include/bolt/Core/Exceptions.h
+67-163 files

LLVM/project a0c7c53llvm/include/llvm/DebugInfo/DWARF DWARFDebugFrame.h, llvm/lib/DebugInfo/DWARF DWARFDebugFrame.cpp

[DebugInfo] Allow .eh_frame CFI programs to be parsed lazily

BOLT read the entire .eh_frame up front via DwCtx->getEHFrame(), which
parses and caches the CFI instruction program of every CIE/FDE in the
binary for the whole run. On a large binary, this dominated
file-object discovery: CFIProgram::parse accounted for ~6.5 GB and the
cached DWARFDebugFrame ~6.9 GB of live memory (from 5 to 10% of total
anon peak RSS).

This new interface allows DebugInfo's users to optionally parse CFIs
on demand, only when necessary. On BOLT, this is an important lever
to manage memory utilization when processing large binaries.
DeltaFile
+25-1llvm/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h
+10-1llvm/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp
+35-22 files