LLVM/project 9a33836clang/lib/Sema SemaDecl.cpp, clang/test/Sema warn-lifetime-safety.cpp

merge-attr-implicit-this
DeltaFile
+58-6clang/lib/Sema/SemaDecl.cpp
+22-0clang/test/Sema/warn-lifetime-safety.cpp
+21-0clang/test/SemaCXX/attr-lifetimebound.cpp
+101-63 files

LLVM/project 164217cclang/test/CodeGen/arm-mve-intrinsics compare.c, llvm/test/CodeGen/AArch64 vector-lrint.ll vector-llrint.ll

Merge branch 'main' into users/makslevental/mlirpythonsupport
DeltaFile
+3,030-1,430clang/test/CodeGen/arm-mve-intrinsics/compare.c
+2,502-1,473llvm/test/CodeGen/AArch64/vector-lrint.ll
+1,265-1,312llvm/test/CodeGen/RISCV/idiv_large.ll
+1,301-712llvm/test/CodeGen/AArch64/vector-llrint.ll
+948-980llvm/test/CodeGen/AMDGPU/div_v2i128.ll
+686-883llvm/test/CodeGen/X86/any_extend_vector_inreg_of_broadcast_from_memory.ll
+9,732-6,790803 files not shown
+41,923-17,668809 files

LLVM/project 9975cb1libcxx/include/__expected expected.h, libcxx/test/libcxx/utilities/expected nodiscard.verify.cpp

[libc++][expected] Applied `[[nodiscard]]` (#170245)

[[nodiscard]] should be applied to functions where discarding the return
value is most likely a correctness issue.

- https://libcxx.llvm.org/CodingGuidelines.html
- https://wg21.link/expected.bad.void
- https://wg21.link/expected.bad
- https://wg21.link/expected.expected
- https://wg21.link/expected.void
- https://wg21.link/expected.unexpected

It was already discussed not to mark the type `std::expected` as
`[[nodiscard]]` see:
https://github.com/llvm/llvm-project/pull/139651
https://github.com/llvm/llvm-project/pull/130820
Also:
https://github.com/llvm/llvm-project/pull/154943
DeltaFile
+175-0libcxx/test/libcxx/utilities/expected/nodiscard.verify.cpp
+56-56libcxx/include/__expected/expected.h
+8-8libcxx/test/libcxx/utilities/expected/expected.void/transform_error.mandates.verify.cpp
+8-8libcxx/test/libcxx/utilities/expected/expected.void/or_else.mandates.verify.cpp
+8-8libcxx/test/libcxx/utilities/expected/expected.void/and_then.mandates.verify.cpp
+8-8libcxx/test/libcxx/utilities/expected/expected.expected/transform_error.mandates.verify.cpp
+263-888 files not shown
+312-13014 files

LLVM/project 3361524llvm/lib/Target/AMDGPU AMDGPUCodeGenPrepare.cpp, llvm/test/CodeGen/AMDGPU rsq.f32-safe.ll amdgpu-codegenprepare-fdiv.ll

AMDGPU: Stop requiring afn for f32 rsq formation

We were checking for afn or !fpmath attached to the sqrt. We
are not trying to replace a correctly rounded rsqrt; we're replacing
the two correctly rounded operations with the contracted operation.
It's net a better precision, so contract on both instructions should
be sufficient. Both the contracted and uncontracted sequences pass
the OpenCL conformance test, with a lower maximum error contracted.
DeltaFile
+504-1,529llvm/test/CodeGen/AMDGPU/rsq.f32-safe.ll
+52-45llvm/test/CodeGen/AMDGPU/amdgpu-codegenprepare-fdiv.ll
+6-25llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
+562-1,5993 files

LLVM/project a0ae283llvm/lib/Target/AMDGPU AMDGPUCodeGenPrepare.cpp

swap
DeltaFile
+3-3llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
+3-31 files

LLVM/project 0c6735cllvm/test/CodeGen/AMDGPU rsq.f64.ll amdgpu-codegenprepare-fdiv.f64.ll

nnan not useful
DeltaFile
+8-12llvm/test/CodeGen/AMDGPU/rsq.f64.ll
+6-4llvm/test/CodeGen/AMDGPU/amdgpu-codegenprepare-fdiv.f64.ll
+14-162 files

LLVM/project 89df092llvm/lib/Target/AMDGPU AMDGPUCodeGenPrepare.cpp, llvm/test/CodeGen/AMDGPU rsq.f64.ll amdgpu-codegenprepare-fdiv.f64.ll

AMDGPU: Introduce f64 rsq pattern in AMDGPUCodeGenPrepare

Handle this here instead of DAGCombine, mostly because the f32
case is handled here due to the dependency on !fpmath. Also we can
take advantage of computeKnownFPClass.
DeltaFile
+4,536-3,195llvm/test/CodeGen/AMDGPU/rsq.f64.ll
+309-56llvm/test/CodeGen/AMDGPU/amdgpu-codegenprepare-fdiv.f64.ll
+129-12llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
+4,974-3,2633 files

LLVM/project 1aa7a1fllvm/lib/Target/AMDGPU AMDGPUCodeGenPrepare.cpp

Interested mask bug
DeltaFile
+1-1llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
+1-11 files

LLVM/project 5faa732llvm/lib/Target/AMDGPU AMDGPUCodeGenPrepare.cpp

nnan not useful
DeltaFile
+1-3llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
+1-31 files

LLVM/project 02e6b0ellvm/test/CodeGen/AMDGPU amdgpu-codegenprepare-fdiv.f64.ll

AMDGPU: Add baseline tests for f64 rsq pattern handling
DeltaFile
+526-0llvm/test/CodeGen/AMDGPU/amdgpu-codegenprepare-fdiv.f64.ll
+526-01 files

LLVM/project 1d5805dclang/test/CodeGen/arm-mve-intrinsics compare.c, llvm/lib/Support/rpmalloc rpmalloc.c

Rebase, address comments

Created using spr 1.3.7
DeltaFile
+3,996-3,996llvm/lib/Support/rpmalloc/rpmalloc.c
+3,030-1,430clang/test/CodeGen/arm-mve-intrinsics/compare.c
+4,091-0llvm/test/CodeGen/AMDGPU/atomicrmw_usub_sat.ll
+2,515-1,481llvm/test/CodeGen/AArch64/vector-lrint.ll
+3,051-413llvm/test/CodeGen/X86/bitcnt-big-integer.ll
+2,852-185llvm/test/CodeGen/X86/shift-i512.ll
+19,535-7,5053,775 files not shown
+167,847-84,0773,781 files

LLVM/project 8f93365compiler-rt/lib/tsan/rtl tsan.syms.extra

[tsan] Export __cxa_guard_ interceptors from TSan runtime. (#171921)

These functions from C++ ABI are defined in
compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp and are supposed to
replace implementations from libstdc++/libc++abi.

We need to export them similar to why we need to export other
interceptors and TSan runtime functions - e.g. if a dlopen-ed shared
library depends on `__cxa_guard_acquire`, it needs to pick up the
exported definition from the TSan runtime that was linked into the main
executable calling the dlopen()

However, because the `__cxa_guard_` functions don't use traditional
interceptor machinery, they are omitted from the auto-generated
`libclang_rt.tsan.a.syms` files. Fix this by adding them to
tsan.syms.extra file explicitly.

Co-authored-by: Vitaly Buka <vitalybuka at google.com>
DeltaFile
+3-0compiler-rt/lib/tsan/rtl/tsan.syms.extra
+3-01 files

LLVM/project 4b267d5mlir/lib/Conversion/MemRefToLLVM MemRefToLLVM.cpp, mlir/test/Conversion/MemRefToLLVM invalid.mlir

[MLIR][MemRef] Emit error on atomic generic result op defined outside the region (#172190)

While figuring out how to perform an atomic exchange on a memref, I
tried the generic atomic rmw with the yielded value captured from the
enclosing scope (instead of a plain atomic_rmw with
`arith::AtomicRMWKind::assign`). Instead of segfaulting, this PR changes
the pass to produce an error when the result is not found in the
region's IR map.

It might be more useful to give a suggestion to the user, but giving an
error message instead of a crash is at least an imrovement, I think.

See: #172184
DeltaFile
+12-0mlir/test/Conversion/MemRefToLLVM/invalid.mlir
+6-1mlir/lib/Conversion/MemRefToLLVM/MemRefToLLVM.cpp
+18-12 files

LLVM/project dd33690llvm/lib/Target/X86 X86ISelLowering.cpp

[X86] combineVectorSizedSetCCEquality - convert to mayFoldIntoVector helper (#172215)

Add AssumeSingleUse (default = false) argument to mayFoldIntoVector to
allow us to match combineVectorSizedSetCCEquality behaviour with
AssumeSingleUse=true

Hopefully we can drop the AssumeSingleUse entirely soon, but there are a
number of messy test regressions that need handling first
DeltaFile
+6-8llvm/lib/Target/X86/X86ISelLowering.cpp
+6-81 files

LLVM/project e82edd2lldb/tools/lldb-dap/Handler LocationsRequestHandler.cpp RequestHandler.h, lldb/tools/lldb-dap/Protocol ProtocolRequests.h ProtocolRequests.cpp

[lldb-dap] Migrate locations request to structured types (#171099)

This patch migrates `locations` request into structured types and adds
test for it.
DeltaFile
+32-139lldb/tools/lldb-dap/Handler/LocationsRequestHandler.cpp
+50-0lldb/unittests/DAP/ProtocolRequestsTest.cpp
+35-0lldb/tools/lldb-dap/Protocol/ProtocolRequests.h
+20-0lldb/tools/lldb-dap/Protocol/ProtocolRequests.cpp
+6-3lldb/tools/lldb-dap/Handler/RequestHandler.h
+143-1425 files

LLVM/project 1d2dff6clang/test/CodeGen/arm-mve-intrinsics compare.c, llvm/lib/Support/rpmalloc rpmalloc.c

Removed empty() check

Created using spr 1.3.7
DeltaFile
+17,522-20,773llvm/test/CodeGen/X86/wide-scalar-shift-by-byte-multiple-legalization.ll
+8,857-10,952llvm/test/CodeGen/AMDGPU/maximumnum.bf16.ll
+8,840-10,957llvm/test/CodeGen/AMDGPU/minimumnum.bf16.ll
+3,996-3,996llvm/lib/Support/rpmalloc/rpmalloc.c
+4,725-0llvm/test/tools/llvm-mca/RISCV/SpacemitX60/vlseg-vsseg.s
+3,030-1,430clang/test/CodeGen/arm-mve-intrinsics/compare.c
+46,970-48,1085,190 files not shown
+287,696-158,9355,196 files

LLVM/project 9de41eelldb/source/Plugins/SymbolFile/NativePDB UdtRecordCompleter.cpp, lldb/test/Shell/SymbolFile/NativePDB nested-types.cpp ast-types.cpp

[LLDB][NativePDB] Create typedefs in structs (#169248)

Typedef/using declarations in structs and classes were not created with
the native PDB plugin. The following would only create `Foo` and
`Foo::Bar`:
```cpp
struct Foo {
    struct Bar {};
    using Baz = Bar;
    using Int = int;
};
```

With this PR, they're created. One complication is that typedefs and
nested types show up identical. The example from above gives:
```
  0x1006 | LF_FIELDLIST [size = 40, hash = 0x2E844]
           - LF_NESTTYPE [name = `Bar`, parent = 0x1002]
           - LF_NESTTYPE [name = `Baz`, parent = 0x1002]

    [5 lines not shown]
DeltaFile
+43-14lldb/test/Shell/SymbolFile/NativePDB/nested-types.cpp
+26-0lldb/source/Plugins/SymbolFile/NativePDB/UdtRecordCompleter.cpp
+5-5lldb/test/Shell/SymbolFile/NativePDB/ast-types.cpp
+74-193 files

LLVM/project 8a53c01compiler-rt/test/xray/TestCases/Posix fdr-mode.cpp

[XRay][test] Mark fdr-mode.cpp test as unsupported for RISC-V

Commit c6f501d479e8 fixed an issue where some tests were incorrectly
marked as unsupported for a bootstrapping build. This exposed in our
'slow' full-bootstrap qemu-system CI that the fdr-mode.cpp fails on
RISC-V. We mark it as unsupported. I believe _xray_ArgLoggerEntry needs
to be implemented in xray_trampoline_risc*.S for this to work.
DeltaFile
+2-0compiler-rt/test/xray/TestCases/Posix/fdr-mode.cpp
+2-01 files

LLVM/project 8d7c3fallvm/lib/Target/X86 X86ISelLowering.cpp

[X86] combineVectorSizedSetCCEquality - ensure the load is a normal load (#172212)

Noticed while trying to replace the IsVectorBitCastCheap helper with
mayFoldIntoVector (still some work to do as we have a number of multiuse
cases) - technically its possible for a extload to reach this point.
DeltaFile
+1-1llvm/lib/Target/X86/X86ISelLowering.cpp
+1-11 files

LLVM/project 1a1c5dfclang/include/clang/Basic arm_mve_defs.td, clang/lib/CodeGen/TargetBuiltins ARM.cpp

[ARM] Introduce intrinsics for MVE fp-converts under strict-fp. (#170686)

This is the last of the generic instructions created from MVE
intrinsics. It was a little more awkward than the others due to it
taking a Type as one of the arguments. This creates a new function to
create the intrinsic we need.
DeltaFile
+658-300clang/test/CodeGen/arm-mve-intrinsics/vcvt.c
+81-0llvm/test/CodeGen/Thumb2/mve-intrinsics/strict-intrinsics.ll
+32-0clang/lib/CodeGen/TargetBuiltins/ARM.cpp
+14-6clang/include/clang/Basic/arm_mve_defs.td
+11-9llvm/lib/Target/ARM/ARMInstrMVE.td
+5-2clang/utils/TableGen/MveEmitter.cpp
+801-3172 files not shown
+808-3188 files

LLVM/project b97d247clang/include/clang/Basic arm_mve_defs.td, clang/test/CodeGen/arm-mve-intrinsics compare.c

[ARM] Introduce intrinsics for MVE vcmp under strict-fp. (#169798)

Similar to #169156 again, this adds intrinsics for strict-fp compare nodes to
make sure they end up as the original instruction.
DeltaFile
+3,030-1,430clang/test/CodeGen/arm-mve-intrinsics/compare.c
+820-0llvm/test/CodeGen/Thumb2/mve-intrinsics/strict-compare.ll
+34-15llvm/lib/Target/ARM/ARMInstrMVE.td
+18-6clang/include/clang/Basic/arm_mve_defs.td
+9-0llvm/include/llvm/IR/IntrinsicsARM.td
+3,911-1,4515 files

LLVM/project 204805fllvm/lib/CodeGen/SelectionDAG DAGCombiner.cpp, llvm/test/CodeGen/AArch64 fp-to-int-to-fp.ll

Address comments
DeltaFile
+165-45llvm/test/CodeGen/AArch64/fp-to-int-to-fp.ll
+42-25llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+62-0llvm/test/CodeGen/AMDGPU/fp-to-int-to-fp.ll
+269-703 files

LLVM/project 1b93f8bclang/include/clang/Basic arm_mve.td, clang/test/CodeGen/arm-mve-intrinsics vrnd.c

[ARM] Introduce intrinsics for MVE vrnd under strict-fp. (#169797)

Similar to #169156 again, this adds intrinsics for strict-fp vrnd nodes to make
sure they end up as the original instruction.
DeltaFile
+426-194clang/test/CodeGen/arm-mve-intrinsics/vrnd.c
+123-0llvm/test/CodeGen/Thumb2/mve-intrinsics/strict-intrinsics.ll
+8-0llvm/include/llvm/IR/IntrinsicsARM.td
+3-0llvm/lib/Target/ARM/ARMInstrMVE.td
+2-1clang/include/clang/Basic/arm_mve.td
+562-1955 files

LLVM/project 66d92d4llvm/test/Examples/Kaleidoscope lit.local.cfg, llvm/test/Examples/OrcV2Examples lit.local.cfg

[LLVM][Examples] Disable broken JIT + plugin tests (AIX, Sparc)

Plugins appear to be broken on AIX, CI fails. There is logic in
CMakeLists for plugins+AIX, but it was never tested before...
Note: when plugins work, also enable tests in Examples/IRTransforms.

There's no Sparc support for JIT tests, so disable the JIT tests in the
examples (copied from ExecutionEngine/lit.local.cfg).
DeltaFile
+7-0llvm/test/Examples/OrcV2Examples/lit.local.cfg
+7-0llvm/test/Examples/Kaleidoscope/lit.local.cfg
+2-0llvm/test/Feature/load_extension.ll
+16-03 files

LLVM/project 755a693llvm/include/llvm/CodeGen SDPatternMatch.h, llvm/unittests/CodeGen SelectionDAGPatternMatchTest.cpp

[DAG] SDPatternMatch - Replace runtime data structures with lengths known at compile time (#172064)

Following the suggestions in #170061, I replaced `SmallVector<SDValue>`
with `std::array<SDValue, NumPatterns>` and `SmallBitVector` with
`Bitset<NumPatterns>`.

I had to make some changes to the `collectLeaves` and
`reassociatableMatchHelper` functions. In `collectLeaves` specifically,
I changed the return type so I could propagate a failure in case the
number of found leaves is greater than the number of expected patterns.
I also added a new unit test that, together with the one already present
in the previous line, checks if the matching fails in the cases where
the number of patterns is less or more than the number of leaves.

I don't think this is going to completely address the increased compile
time reported in #169644, but hopefully it leads to an improvement.
DeltaFile
+20-15llvm/include/llvm/CodeGen/SDPatternMatch.h
+2-0llvm/unittests/CodeGen/SelectionDAGPatternMatchTest.cpp
+22-152 files

LLVM/project 02c2a91llvm/lib/CodeGen/SelectionDAG DAGCombiner.cpp, llvm/test/CodeGen/AArch64 fp-to-int-to-fp.ll

Address comments
DeltaFile
+165-45llvm/test/CodeGen/AArch64/fp-to-int-to-fp.ll
+50-25llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+62-0llvm/test/CodeGen/AMDGPU/fp-to-int-to-fp.ll
+277-703 files

LLVM/project f785ca0mlir/include/mlir/Conversion/AMDGPUToROCDL AMDGPUToROCDL.h, mlir/include/mlir/Conversion/NVGPUToNVVM NVGPUToNVVM.h

[mlir][nvgpu] Move memref memspace attributes conversion to single place (#172156)

Also, some fixes for AMDGPU part for better naming.
DeltaFile
+22-13mlir/lib/Conversion/NVGPUToNVVM/NVGPUToNVVM.cpp
+3-20mlir/lib/Dialect/GPU/TransformOps/GPUTransformOps.cpp
+3-17mlir/lib/Conversion/GPUToNVVM/LowerGpuOpsToNVVMOps.cpp
+1-13mlir/lib/Dialect/NVGPU/TransformOps/NVGPUTransformOps.cpp
+9-2mlir/include/mlir/Conversion/NVGPUToNVVM/NVGPUToNVVM.h
+3-2mlir/include/mlir/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.h
+41-673 files not shown
+45-709 files

LLVM/project 8680feblibcxx/include barrier

[libc++] Use native wait in std::barrier instead of sleep loop (#171041)

For some reason, the current `std::barrier`'s wait implementation polls
the underlying atomic in a loop with sleeps instead of using the native
wait.

This change should also indirectly fix the performance issue of
`std::barrier` described in
https://github.com/llvm/llvm-project/issues/123855.

Fixes #123855
DeltaFile
+1-4libcxx/include/barrier
+1-41 files

LLVM/project 86dc131libcxx/include/__flat_set flat_multiset.h, libcxx/test/libcxx/diagnostics flat_multiset.nodiscard.verify.cpp

[libc++][flat_multiset] Applied `[[nodiscard]]` (#169984)

`[[nodiscard]]` should be applied to functions where discarding the
return value is most likely a correctness issue.

-  https://libcxx.llvm.org/CodingGuidelines.htm
-  https://wg21.link/flat.multiset
DeltaFile
+85-5libcxx/test/libcxx/diagnostics/flat_multiset.nodiscard.verify.cpp
+51-37libcxx/include/__flat_set/flat_multiset.h
+136-422 files

LLVM/project 61f4cc7libcxx/include/__flat_map flat_multimap.h, libcxx/test/libcxx/diagnostics flat_multimap.nodiscard.verify.cpp

[libc++][flat_multimap] Applied `[[nodiscard]]` (#169986)

`[[nodiscard]]` should be applied to functions where discarding the
return value is most likely a correctness issue.

- https://libcxx.llvm.org/CodingGuidelines.htm
- https://wg21.link/flat.multimap
DeltaFile
+87-7libcxx/test/libcxx/diagnostics/flat_multimap.nodiscard.verify.cpp
+48-39libcxx/include/__flat_map/flat_multimap.h
+135-462 files