LLVM/project 7037e6eflang/lib/Optimizer/Dialect FIRType.cpp, flang/test/Lower polymorphic.f90 derived-type-sequence-alias-assign.f90

Revert "[flang] Use alias analysis in lowering record assignments" (#180150)

Reverts llvm/llvm-project#180010

Still breaking builds
DeltaFile
+202-202flang/test/Lower/polymorphic.f90
+0-56flang/test/Lower/derived-type-sequence-alias-assign.f90
+27-27flang/test/Lower/default-initialization.f90
+21-21flang/test/Lower/HLFIR/proc-pointer-comp-pass.f90
+1-18flang/lib/Optimizer/Dialect/FIRType.cpp
+9-9flang/test/Lower/HLFIR/cray-pointers.f90
+260-3335 files not shown
+261-35411 files

LLVM/project 6e3e74alldb/test/API/tools/lldb-dap/variables TestDAP_variables.py, lldb/tools/lldb-dap Variables.cpp JSONUtils.cpp

lldb-dap: Stop using replicated variable ids (#124232)

Closes #119784

Probably closes #147105 as well, but I couldn't test due to #156473:

This PR fixes two bugs:
1. It generates unique variable reference IDs per suspended debuggee
state.
2. It stores all created variables in a stopped state instead of
dropping variables in unselected scopes. So it can properly handle all
scope/variable requests

It does this by storing all variables in their respective scopes and
using that mapping in request handlers that relied on the old mapping.
It dynamically creates new variable/scope IDs instead of resetting IDs
whenever a new scope is created.

I also removed some unused code as well.

    [7 lines not shown]
DeltaFile
+116-16lldb/tools/lldb-dap/Variables.cpp
+0-85lldb/tools/lldb-dap/JSONUtils.cpp
+72-10lldb/tools/lldb-dap/Variables.h
+3-56lldb/tools/lldb-dap/Handler/ScopesRequestHandler.cpp
+46-9lldb/unittests/DAP/VariablesTest.cpp
+36-0lldb/test/API/tools/lldb-dap/variables/TestDAP_variables.py
+273-1764 files not shown
+318-18910 files

LLVM/project 3fe109ellvm/lib/Target/AArch64 MachineSMEABIPass.cpp, llvm/test/CodeGen/AArch64 sme-zt0-state.ll

[AArch64][SME] Add missing ZT0 transition (#179193)

This transition was missed off the switch, but is already supported (see
the test for the expected behavior).

(cherry picked from commit c7dd96e6f29b032a4879a7fe2fb0ff2ee1406aa5)
DeltaFile
+75-0llvm/test/CodeGen/AArch64/sme-zt0-state.ll
+1-0llvm/lib/Target/AArch64/MachineSMEABIPass.cpp
+76-02 files

LLVM/project d38f096llvm/lib/Transforms/Vectorize VPlanPredicator.cpp, llvm/test/Transforms/LoopVectorize predicate-switch.ll

[VPlan] Create edge mask for single-destination switch (#179107)

When converting phis to blends, the `VPPredicator` expects to have edge
masks to the phi node if the phi node has different incoming blocks.
This was not the case if the predecessor of the phi was a switch where a
conditional destination was the same as the default destination.

This was because when creating edge masks in `createSwitchEdgeMasks`,
edge masks are set in a loop through the *non-default* destinations. But
when there are no non-default destinations (but at least one condition,
otherwise an earlier condition would trigger and just forward the source
mask), this loop is never executed, so the masks are never set.

To resolve this, we explicitly forward the source mask for these cases
as well, which is correct because it is an unconditional branch, just a
very convoluted one.

fixes #179074

(cherry picked from commit 3bbf748a63a3cb38271a478b520789be57d5e2c8)
DeltaFile
+160-4llvm/test/Transforms/LoopVectorize/predicate-switch.ll
+4-0llvm/lib/Transforms/Vectorize/VPlanPredicator.cpp
+164-42 files

LLVM/project b02a636lldb/tools/driver Options.td

[lldb] Remove --debug/-d option from lldb (#179978)

The functionality was removed in
d3173f4ab61c17337908eb7df3f1c515ddcd428c after being broken for a long
time.

There's a small risk someone is still passing the option, but I think
it's time to remove it and they can fix their scripts.
DeltaFile
+0-5lldb/tools/driver/Options.td
+0-51 files

LLVM/project 95f5269flang/lib/Optimizer/Dialect FIRType.cpp, flang/test/Lower polymorphic.f90 derived-type-sequence-alias-assign.f90

[flang] Use alias analysis in lowering record assignments (#180010)

Without alias analysis Flang assumes no aliasing in lowering record
assignments which can result in miscompilation of programs using
SEQUENCE types and EQUIVALENCE.

Use alias analysis to guard the fast path in `genRecordAssignment`;
otherwise fall back to element-wise expansion.
Update FIR FileCheck expectations
Add `FIRAnalysis` to `"flang/unittests/Optimizer/CMakeLists.txt"` to fix
the Windows x64 build failure (linker error).
Add `SEQUENCE` handling and update tests accordingly.

Fixes #175246 (and includes the fix to
flang/lib/Optimizer/Builder/CMakeLists.txt in PR #176483).

Co-authored-by: Matt P. Dziubinski <matt-p.dziubinski at hpe.com>
DeltaFile
+202-202flang/test/Lower/polymorphic.f90
+56-0flang/test/Lower/derived-type-sequence-alias-assign.f90
+27-27flang/test/Lower/default-initialization.f90
+21-21flang/test/Lower/HLFIR/proc-pointer-comp-pass.f90
+18-1flang/lib/Optimizer/Dialect/FIRType.cpp
+9-9flang/test/Lower/HLFIR/cray-pointers.f90
+333-2605 files not shown
+354-26111 files

LLVM/project 88b78bclibcxx/include any, libcxx/test/std/utilities/any/any.class/any.cons value.pass.cpp

[libc++] Short-cut constraints of single-argument `any` constructor (#177082)

When a default template argument of a function template uses
`std::is_copy_constructible<T>::value` and `T` is convertible from and
to `any`, the changes in 21dc73f6a46cd786394f10f5aef46ec4a2d26175 would
introduce constraint meta-recursion when compiling with Clang.

This patch short-cuts constraints of the related constructor to avoid
computing `is_copy_constructible<T>` when `decay_t<T>` is `any`, which
gets rid of constraint meta-recursion in the overload resolution of copy
construction of `T`.

Fixes #176877.

(cherry picked from commit aa5428864e86f8e38806fc92d14cadc68b3d0667)
DeltaFile
+21-1libcxx/test/std/utilities/any/any.class/any.cons/value.pass.cpp
+7-4libcxx/include/any
+28-52 files

LLVM/project 1573738utils/bazel/llvm-project-overlay/mlir/python BUILD.bazel

[bazel] Run builidifer. NFC.
DeltaFile
+3-3utils/bazel/llvm-project-overlay/mlir/python/BUILD.bazel
+3-31 files

LLVM/project 743116autils/bazel/llvm-project-overlay/mlir BUILD.bazel

[bazel] Add missing dependency for 61b8a5783972f03d2a5a72713fa0daa095802ce (#180145)

DeltaFile
+2-0utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
+2-01 files

LLVM/project a8b3872llvm/test/CodeGen/RISCV/rvv abs-vp.ll fixed-vectors-abd.ll

[𝘀𝗽𝗿] initial version

Created using spr 1.3.6-beta.1
DeltaFile
+319-0llvm/test/CodeGen/RISCV/rvv/abs-vp.ll
+280-0llvm/test/CodeGen/RISCV/rvv/fixed-vectors-abd.ll
+247-0llvm/test/CodeGen/RISCV/rvv/fixed-vectors-abs-vp.ll
+140-0llvm/test/CodeGen/RISCV/rvv/abd.ll
+107-0llvm/test/CodeGen/RISCV/rvv/fixed-vectors-abs.ll
+94-0llvm/test/CodeGen/RISCV/rvv/abs-sdnode.ll
+1,187-020 files not shown
+1,585-5926 files

LLVM/project 5b01ef6llvm/test/CodeGen/RISCV/rvv abs-vp.ll fixed-vectors-abd.ll

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

Created using spr 1.3.6-beta.1

[skip ci]
DeltaFile
+319-0llvm/test/CodeGen/RISCV/rvv/abs-vp.ll
+280-0llvm/test/CodeGen/RISCV/rvv/fixed-vectors-abd.ll
+247-0llvm/test/CodeGen/RISCV/rvv/fixed-vectors-abs-vp.ll
+140-0llvm/test/CodeGen/RISCV/rvv/abd.ll
+107-0llvm/test/CodeGen/RISCV/rvv/fixed-vectors-abs.ll
+94-0llvm/test/CodeGen/RISCV/rvv/abs-sdnode.ll
+1,187-018 files not shown
+1,544-5924 files

LLVM/project b1bc9cbllvm/lib/Target/RISCV RISCVInstrInfoZvabd.td RISCVInstrInfoVVLPatterns.td, llvm/test/CodeGen/RISCV/rvv fixed-vectors-abd.ll abd.ll

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

Created using spr 1.3.6-beta.1

[skip ci]
DeltaFile
+284-0llvm/test/CodeGen/RISCV/rvv/fixed-vectors-abd.ll
+140-0llvm/test/CodeGen/RISCV/rvv/abd.ll
+83-0llvm/test/CodeGen/RISCV/rvv/fixed-vectors-sad.ll
+63-0llvm/test/MC/RISCV/rvv/zvabd.s
+51-0llvm/lib/Target/RISCV/RISCVInstrInfoZvabd.td
+21-11llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
+642-1113 files not shown
+720-2919 files

LLVM/project 9f59959llvm/test/CodeGen/RISCV/rvv abs-vp.ll fixed-vectors-abd.ll

[𝘀𝗽𝗿] initial version

Created using spr 1.3.6-beta.1
DeltaFile
+319-0llvm/test/CodeGen/RISCV/rvv/abs-vp.ll
+280-0llvm/test/CodeGen/RISCV/rvv/fixed-vectors-abd.ll
+247-0llvm/test/CodeGen/RISCV/rvv/fixed-vectors-abs-vp.ll
+140-0llvm/test/CodeGen/RISCV/rvv/abd.ll
+107-0llvm/test/CodeGen/RISCV/rvv/fixed-vectors-abs.ll
+94-0llvm/test/CodeGen/RISCV/rvv/abs-sdnode.ll
+1,187-018 files not shown
+1,544-5924 files

LLVM/project 6f5b842utils/bazel/llvm-project-overlay/llvm BUILD.bazel

Fix Bazel build for d005cb2 (#180134)

Co-authored-by: Pranav Kant <prka at google.com>
DeltaFile
+25-5utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
+25-51 files

LLVM/project 5654ecdllvm/lib/CodeGen/SelectionDAG DAGCombiner.cpp, llvm/test/CodeGen/AMDGPU div_v2i128.ll div_i128.ll

[DAGCombiner] Fix exact power-of-two signed division for large integers (#177340)

Previously, the DAG combiner did not optimize exact signed division by a
power-of-two constant divisor for integer types exceeding the size of
division supported by the target architecture (e.g., i128 on x86-64).
However, such an optimization was expected by the division expansion
logic, leading to unsupported division operations making it to
instruction selection.
This commit addresses this issue by making an exception to the existing
exclusion of signed division with the exact flag for the aforementioned
operations. That is, the DAG combiner will now optimize exact signed
division if the divisor is a power-of-two constant and the integer type
exceeds the size of division supported by the target architecture.

---------

Signed-off-by: Steffen Holst Larsen <HolstLarsen.Steffen at amd.com>
DeltaFile
+1,380-72llvm/test/CodeGen/AMDGPU/div_v2i128.ll
+405-0llvm/test/CodeGen/X86/div_i129_v_pow2k.ll
+182-0llvm/test/CodeGen/AMDGPU/div_i128.ll
+6-2llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+1,973-744 files

LLVM/project 65e835cllvm/lib/Target/RISCV RISCVInstrInfoZvabd.td RISCVInstrInfoVVLPatterns.td, llvm/test/CodeGen/RISCV/rvv fixed-vectors-abd.ll abd.ll

[𝘀𝗽𝗿] initial version

Created using spr 1.3.6-beta.1
DeltaFile
+284-0llvm/test/CodeGen/RISCV/rvv/fixed-vectors-abd.ll
+140-0llvm/test/CodeGen/RISCV/rvv/abd.ll
+83-0llvm/test/CodeGen/RISCV/rvv/fixed-vectors-sad.ll
+63-0llvm/test/MC/RISCV/rvv/zvabd.s
+51-0llvm/lib/Target/RISCV/RISCVInstrInfoZvabd.td
+21-11llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
+642-1113 files not shown
+720-2919 files

LLVM/project 5adcee4clang/test/Preprocessor riscv-target-features.c, llvm/lib/Target/RISCV RISCVInstrInfoZvabd.td RISCVFeatures.td

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

Created using spr 1.3.6-beta.1

[skip ci]
DeltaFile
+63-0llvm/test/MC/RISCV/rvv/zvabd.s
+27-0llvm/lib/Target/RISCV/RISCVInstrInfoZvabd.td
+10-0llvm/test/MC/RISCV/rvv/zvabd-invalid.s
+9-0clang/test/Preprocessor/riscv-target-features.c
+6-0llvm/lib/Target/RISCV/RISCVFeatures.td
+4-0llvm/test/CodeGen/RISCV/attributes.ll
+119-06 files not shown
+128-012 files

LLVM/project 555390cllvm/lib/Transforms/Utils LowerMemIntrinsics.cpp

[NFC][LowerMemIntrinsics] Use TypeSize consistently for type sizes (#179945)

PR #169040 already started using `TypeSize` for the return value of
`DataLayout::getType*Size` in the memset lowering, this PR adjusts other uses
in LowerMemIntrinsics to do the same. Currently, scalable vector types are not
supported as access types for the mem-intrinsic lowering.
DeltaFile
+14-10llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp
+14-101 files

LLVM/project bd8ae2cllvm/lib/Target/AMDGPU SIInstrInfo.cpp

review: add assert for def idx and reg
DeltaFile
+4-0llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+4-01 files

LLVM/project edebc75utils/bazel/llvm-project-overlay/mlir/python BUILD.bazel

Fix Bazel build for ba58225 (#180136)

DeltaFile
+43-0utils/bazel/llvm-project-overlay/mlir/python/BUILD.bazel
+43-01 files

LLVM/project a9494a7clang/test/Preprocessor riscv-target-features.c, llvm/lib/Target/RISCV RISCVInstrInfoZvabd.td RISCVFeatures.td

[𝘀𝗽𝗿] initial version

Created using spr 1.3.6-beta.1
DeltaFile
+63-0llvm/test/MC/RISCV/rvv/zvabd.s
+27-0llvm/lib/Target/RISCV/RISCVInstrInfoZvabd.td
+10-0llvm/test/MC/RISCV/rvv/zvabd-invalid.s
+9-0clang/test/Preprocessor/riscv-target-features.c
+6-0llvm/lib/Target/RISCV/RISCVFeatures.td
+4-0llvm/test/CodeGen/RISCV/attributes.ll
+119-06 files not shown
+128-012 files

LLVM/project 7bef2cdllvm/docs CodingStandards.rst

[llvm] Update policy for Doxygen comments in the Coding Standards (#179898)

This PR updates the policy regarding Doxygen comments in the Coding
Standards based on an RFC discussion on Discourse:

https://discourse.llvm.org/t/rfc-policy-for-doxygen-comments-in-lldb/89675/
DeltaFile
+17-12llvm/docs/CodingStandards.rst
+17-121 files

LLVM/project a6f0264llvm/test/tools/llvm-ir2vec/bindings ir2vec-bindings.py, llvm/tools/llvm-ir2vec/Bindings PyIR2Vec.cpp

[llvm-ir2vec] Adding FuncEmb API to ir2vec python bindings (#179908)

Adding FuncEmb API to ir2vec python bindings. Provide the IR name of a
function, and the API returns the func Embedding for it.
DeltaFile
+37-8llvm/tools/llvm-ir2vec/Bindings/PyIR2Vec.cpp
+16-0llvm/test/tools/llvm-ir2vec/bindings/ir2vec-bindings.py
+53-82 files

LLVM/project d50cf09llvm/test/CodeGen/X86 combine-adc.ll

Precommit test for combine ADC(ADD(X,Y),0,Carry) -> ADC(X,Y,Carry) (#177539)

**Reference PR-** https://github.com/llvm/llvm-project/pull/176713
DeltaFile
+115-0llvm/test/CodeGen/X86/combine-adc.ll
+115-01 files

LLVM/project a8829d5clang-tools-extra/clangd Protocol.cpp, clang-tools-extra/clangd/test call-hierarchy.test

[clangd] Fix call hierarchy crash on malformed request (#179718)

The code for parsing a call hierarchy request was not using `ObjectMapper`
correctly: it was calling `map()` without first calling `operator bool()` to
check that an object was parsed at all.

Fixes #179109
DeltaFile
+13-1clang-tools-extra/clangd/test/call-hierarchy.test
+2-2clang-tools-extra/clangd/Protocol.cpp
+15-32 files

LLVM/project 0d52536lld/test/ELF eh-frame-fde-encoding.s eh-frame-value-format7.s

[ELF][test] Consolidate .eh_frame FDE encoding tests

Merge eh-frame-value-format{1..9}.s into eh-frame-fde-encoding.s
(encoding is the DWARF term) using split-file. Add .eh_frame and
.eh_frame_hdr content verification for absptr, udata2, sdata4, udata4.
Move error test (9) to eh-frame-invalid-fde-encoding.s.
DeltaFile
+203-0lld/test/ELF/eh-frame-fde-encoding.s
+0-77lld/test/ELF/eh-frame-value-format7.s
+0-74lld/test/ELF/eh-frame-value-format8.s
+0-35lld/test/ELF/eh-frame-value-format6.s
+0-35lld/test/ELF/eh-frame-value-format1.s
+0-35lld/test/ELF/eh-frame-value-format2.s
+203-2565 files not shown
+231-37511 files

LLVM/project 4092a63llvm/lib/Target/X86 X86IndirectBranchTracking.cpp X86.h, llvm/test/CodeGen/X86 llc-pipeline-npm.ll

[NewPM] Port x86-indirect-branch-tracking (#179874)

Similar to other portings created by @aidenboom154. No specific test
coverage as there are no MIR->MIR tests that exercise this pass.
DeltaFile
+39-32llvm/lib/Target/X86/X86IndirectBranchTracking.cpp
+9-1llvm/lib/Target/X86/X86.h
+4-0llvm/test/CodeGen/X86/llc-pipeline-npm.ll
+1-2llvm/lib/Target/X86/X86CodeGenPassBuilder.cpp
+1-1llvm/lib/Target/X86/X86PassRegistry.def
+1-1llvm/lib/Target/X86/X86TargetMachine.cpp
+55-376 files

LLVM/project 7211938llvm/lib/Transforms/Instrumentation MemorySanitizer.cpp

[msan][NFCI] Refactor icmp eq/ne into propagateEqualityComparison() (#180115)

This will be useful for handling switch
(https://github.com/llvm/llvm-project/pull/179851).
DeltaFile
+39-22llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
+39-221 files

LLVM/project cc4b98ellvm/lib/Target/X86 X86ISelLowering.cpp, llvm/test/CodeGen/X86 bitcast-vector-bool.ll

[X86] combineSetCC - attempt to match more complex icmp_eq/ne patterns before falling back to PTEST/PMOVMSKB patterns (#180034)

combineVectorSizedSetCCEquality attempts to convert equality comparisons
of larger-than-legal scalar integers to PTEST/PMOVMSKB vector
comparisons.

However, combineSetCC has a number of other folds with more complex
icmp_eq/ne patterns that work with big integers (including bit test and
reduction patterns) that don't get a change to match as
combineVectorSizedSetCCEquality is run first, and the other folds are
then more difficult to match from PTEST/PMOVMSKB nodes.

This patch moves the combineVectorSizedSetCCEquality fold later to give
other icmp_eq/ne folds a chance to run first.
DeltaFile
+30-132llvm/test/CodeGen/X86/bitcast-vector-bool.ll
+4-6llvm/lib/Target/X86/X86ISelLowering.cpp
+34-1382 files

LLVM/project 5ae2ee9llvm/test/CodeGen/AMDGPU load-saddr-offset-imm.ll

[AMDGPU] regenerate test checks
DeltaFile
+3-5llvm/test/CodeGen/AMDGPU/load-saddr-offset-imm.ll
+3-51 files