LLVM/project 3f84604llvm/lib/CodeGen/SelectionDAG DAGCombiner.cpp, llvm/test/CodeGen/AArch64 arm64-vmul.ll

[AArch64][DAG] Copy flags when narrowExtractedVectorBinOp-ing (#193446)

The `extract (binop B0, B1), N` fold above already copies flags, use the
same for the `extract (binop (concat X1, X2), Y), N` version. In this
case it is helping copy disjoint or flags.
DeltaFile
+26-26llvm/test/CodeGen/AArch64/arm64-vmul.ll
+2-1llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+28-272 files

LLVM/project af54eb6llvm/lib/Transforms/Vectorize LoopVectorizationPlanner.h

clarify docstring
DeltaFile
+2-2llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
+2-21 files

LLVM/project 8c5452allvm/test/CodeGen/AMDGPU amdgcn.bitcast.1024bit.ll amdgcn.bitcast.512bit.ll, llvm/test/CodeGen/AMDGPU/NextUseAnalysis spill-vreg-many-lanes.mir acyclic-770bb.mir

Merge branch 'main' into users/chapuni/cov/expansion
DeltaFile
+275,101-0llvm/test/CodeGen/AMDGPU/NextUseAnalysis/spill-vreg-many-lanes.mir
+87,987-82,073llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+144,679-0llvm/test/CodeGen/AMDGPU/NextUseAnalysis/acyclic-770bb.mir
+66,293-29,491llvm/test/CodeGen/RISCV/rvv/clmulh-sdnode.ll
+57,682-0llvm/test/CodeGen/AMDGPU/NextUseAnalysis/double-nested-loops-complex-cfg.mir
+27,602-26,665llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
+659,344-138,22929,052 files not shown
+3,679,447-1,341,37629,058 files

LLVM/project 88e5eebclang/test/CodeGen/AArch64/sve-intrinsics acle_sve_bfmmla.c, llvm/lib/IR AutoUpgrade.cpp

[AArch64][llvm][clang] Remove `int_aarch64_sve_bfmmla` and reuse existing def (NFC) (#193970)

Remove the dedicated (superfluous) `int_aarch64_sve_bfmmla` def and
changed `svbfmmla` to use the existing shared fmmla intrinsic instead.

No functional change.
DeltaFile
+10-3mlir/include/mlir/Dialect/ArmSVE/IR/ArmSVE.td
+10-0llvm/test/Bitcode/upgrade-aarch64-sve-intrinsics.ll
+4-4llvm/test/Instrumentation/MemorySanitizer/AArch64/sve-intrinsics-bfloat.ll
+7-0llvm/lib/IR/AutoUpgrade.cpp
+2-2llvm/test/CodeGen/AArch64/sve-intrinsics-bfloat.ll
+2-2clang/test/CodeGen/AArch64/sve-intrinsics/acle_sve_bfmmla.c
+35-114 files not shown
+38-1610 files

LLVM/project efb01c1clang/lib/CodeGen CGDecl.cpp, clang/test/CodeGenCoroutines coro-param-fake-use.cpp

[Clang][Coroutines] Don't emit fake uses for coroutine parameters (#194690)

Fixes issue: https://github.com/llvm/llvm-project/issues/192351

The combination of coroutines with -fextend-variable-liveness has
resulted in use-after-free, caused by the fact that we insert fake uses
of coroutine parameters at the end of the coroutine. While this is fine
for normal functions, in coroutines these variables are stored in the
coroutine frame, which is freed before the end of the function; this
results in us loading from the deleted frame.

This patch fixes this by no longer emitting fake uses for most coroutine
parameters. Since coroutine parameters will be saved back to the frame
when we suspend, and currently may not be optimized out, fake uses are
not needed in this case, and so by not emitting them we avoid dealing
with the complexity of updating fake uses in the CoroSplit pass. The
exception to this is 'this', which is not saved to the frame.
DeltaFile
+42-0clang/test/CodeGenCoroutines/coro-param-fake-use.cpp
+7-2clang/lib/CodeGen/CGDecl.cpp
+49-22 files

LLVM/project 0c092fcllvm/lib/Transforms/Vectorize LoopVectorizationPlanner.cpp

clang-format
DeltaFile
+2-2llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.cpp
+2-21 files

LLVM/project 74036b6llvm/lib/CodeGen/SelectionDAG DAGCombiner.cpp, llvm/test/CodeGen/AArch64 arm64-vmul.ll

[AArch64][DAG] Copy flags when narrowExtractedVectorBinOp-ing

The `extract (binop B0, B1), N` fold above already copies flags, use the same for
the `extract (binop (concat X1, X2), Y), N` version. In this case it is helping
copy disjoint or flags.
DeltaFile
+26-26llvm/test/CodeGen/AArch64/arm64-vmul.ll
+2-1llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+28-272 files

LLVM/project f5eb7a9lldb/include/lldb/Target Process.h, lldb/source/Plugins/Process/Windows/Common ProcessWindows.h

[lldb] Disable delayed breakpoints on Windows (#195241)

Tests started failing on a mysterious way there, potentially related to:
https://github.com/llvm/llvm-project/issues/191222
DeltaFile
+7-0lldb/include/lldb/Target/Process.h
+2-0lldb/source/Plugins/Process/Windows/Common/ProcessWindows.h
+1-1lldb/source/Target/Process.cpp
+10-13 files

LLVM/project 21de0fbllvm/lib/Target/AArch64 AArch64InstrInfo.td, llvm/test/CodeGen/AArch64 arm64-vmul.ll

[AArch64] Use add_like for UMLAL / SMLAL (#194139)

Similar to the others, this allows us to generate UMLAL and SMLAL from
add-like disjoint ors. There are some cases where we lose the disjoint
from the or, those are being fixed separately (#193446).
DeltaFile
+90-90llvm/test/CodeGen/AArch64/arm64-vmul.ll
+4-4llvm/lib/Target/AArch64/AArch64InstrInfo.td
+94-942 files

LLVM/project 455140bllvm/lib/Transforms/Vectorize LoopVectorize.cpp LoopVectorizationPlanner.cpp

[LV] Use isLegalMaskedLoadOrStore for interleaved accesses too (NFC)

isLegalMaskedLoadOrStore is now the central place for querying target
capabilities for masked accesses. Access pattern legality checks are
hoisted outside of it.
DeltaFile
+4-6llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+0-4llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.cpp
+4-102 files

LLVM/project 808936bllvm/lib/Transforms/Vectorize LoopVectorizationPlanner.cpp LoopVectorize.cpp

[LV] Introduce isLegalMaskedLoadOrStore (NFC)

This simplifies legality checks, and eventually will become the single
point querying TTI hooks for masked ld/st. Currently, legality checks
for interleaved accesses still query TTI directly.
DeltaFile
+13-13llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.cpp
+2-12llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+3-9llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
+18-343 files

LLVM/project 746750dllvm/lib/Target/X86 X86ISelLowering.cpp

[X86] LowerMINMAX_REDUCE - consistently use the generic LowerVECREDUCE as fallback for unsupported cases (#195235)
DeltaFile
+4-20llvm/lib/Target/X86/X86ISelLowering.cpp
+4-201 files

LLVM/project d25549dutils/bazel/llvm-project-overlay/libc BUILD.bazel

[Bazel] Fixes f973fa0 (#195229)

This fixes f973fa07d473e236b67fa7cea876e7bc9519749c.

Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
DeltaFile
+26-0utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+26-01 files

LLVM/project bade13fllvm/test/CodeGen/AArch64 call-rv-marker.ll reduce-or.ll

[AArch64][GlobalISel] Normalize and cleanup test check lines. NFC (#195234)
DeltaFile
+400-452llvm/test/CodeGen/AArch64/call-rv-marker.ll
+409-420llvm/test/CodeGen/AArch64/reduce-or.ll
+408-419llvm/test/CodeGen/AArch64/reduce-and.ll
+399-410llvm/test/CodeGen/AArch64/reduce-xor.ll
+164-414llvm/test/CodeGen/AArch64/mul_pow2.ll
+41-61llvm/test/CodeGen/AArch64/bool-ext-inc.ll
+1,821-2,1763 files not shown
+1,880-2,2759 files

LLVM/project 4487a39llvm/lib/Target/AArch64 AArch64ISelLowering.cpp, llvm/test/CodeGen/AArch64 sbc.ll

[AArch64] Extend SBC combine to handle CSET HI (#192708)

The `performSubWithBorrowCombine` previously only matched `CSET LO`
(unsigned <).
This extends it to also handle `CSET HI` (unsigned >) by swapping the
`SUBS` operands, since `a > b` is equivalent to `b < a`.

This resolves the FIXME left in the test from #165271.
DeltaFile
+193-5llvm/test/CodeGen/AArch64/sbc.ll
+21-3llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+214-82 files

LLVM/project 8eff63forc-rt/include/orc-rt-c WrapperFunction.h

[orc-rt] Add missing #include <stdint.h> (#195227)
DeltaFile
+1-0orc-rt/include/orc-rt-c/WrapperFunction.h
+1-01 files

LLVM/project 483f772lldb/source/Plugins/Process/gdb-remote ProcessGDBRemote.cpp

fixup! use breakpoint_infos size
DeltaFile
+1-1lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+1-11 files

LLVM/project 5c83a39lldb/source/Plugins/Process/gdb-remote GDBRemoteClientBase.cpp ProcessGDBRemote.cpp

fixup! cosmetic changes
DeltaFile
+2-2lldb/source/Plugins/Process/gdb-remote/GDBRemoteClientBase.cpp
+2-1lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+1-1lldb/source/Plugins/Process/gdb-remote/GDBRemoteClientBase.h
+5-43 files

LLVM/project 68d1c40lldb/tools/debugserver/source DNB.cpp

[lldb][debugserver] ifdef guard around newer CPU_TYPEs (#195225)

The uses of the new CPU_SUBTYPEs depends on building with a newer SDK
that we don't have on Intel CI bots. Put idef guards around them,
debugserver won't be
working with these CPUs either way.
DeltaFile
+6-0lldb/tools/debugserver/source/DNB.cpp
+6-01 files

LLVM/project 594f8b9lldb/source/Plugins/Process/gdb-remote ProcessGDBRemote.cpp

fixup! don't fallback on all packets
DeltaFile
+21-11lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+21-111 files

LLVM/project 90d63delldb/source/Plugins/Process/gdb-remote ProcessGDBRemote.cpp GDBRemoteClientBase.cpp

fixup! make helper method to send packet
DeltaFile
+3-21lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+17-0lldb/source/Plugins/Process/gdb-remote/GDBRemoteClientBase.cpp
+5-0lldb/source/Plugins/Process/gdb-remote/GDBRemoteClientBase.h
+25-213 files

LLVM/project 60ccbc8lldb/source/Plugins/Process/gdb-remote ProcessGDBRemote.h ProcessGDBRemote.cpp

fixup! use map typedef
DeltaFile
+2-4lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
+2-3lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+4-72 files

LLVM/project 23a92b6lldb/include/lldb/Utility GDBRemote.h, lldb/source/Plugins/Process/gdb-remote ProcessGDBRemote.cpp ProcessGDBRemote.h

[lldb] Override UpdateBreakpointSites in ProcessGDBRemote to use MultiBreakpoint

This concludes the implementation of MultiBreakpoint by actually using
the new packet to batch breakpoint requests.

https://github.com/llvm/llvm-project/pull/192910
DeltaFile
+192-0lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+8-0lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
+4-0lldb/source/Utility/GDBRemote.cpp
+3-0lldb/include/lldb/Utility/GDBRemote.h
+207-04 files

LLVM/project 776ee6flldb/include/lldb/Target Process.h, lldb/source/Plugins/Process/Utility StopInfoMachException.cpp

[lldb] Implement delayed breakpoints (#192971)

This patch changes the Process class so that it delays *physically*
enabling/disabling breakpoints until the process is about to
resume/detach/be destroyed, potentially reducing the packets transmitted
by batching all breakpoints together.

Most classes only need to know whether a breakpoint is "logically"
enabled, as opposed to "physically" enabled (i.e. the remote server has
actually enabled the breakpoint). However, lower level classes like
derived Process classes, or StopInfo may actually need to know whether
the breakpoint was physically enabled. As such, this commit also adds a
"IsPhysicallyEnabled" API.

The following PRs are related to the MultiBreakpoint feature:

* https://github.com/llvm/llvm-project/pull/192910
* https://github.com/llvm/llvm-project/pull/192914
* https://github.com/llvm/llvm-project/pull/192915

    [4 lines not shown]
DeltaFile
+115-5lldb/source/Target/Process.cpp
+41-0lldb/test/API/functionalities/breakpoint/delayed_breakpoints/TestDelayedBreakpoint.py
+39-0lldb/include/lldb/Target/Process.h
+6-6lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+5-3lldb/source/Plugins/Process/Utility/StopInfoMachException.cpp
+7-0lldb/test/API/functionalities/breakpoint/delayed_breakpoints/main.c
+213-147 files not shown
+230-2113 files

LLVM/project f973fa0libc/src/sys/mman mlock.h mlock2.h, libc/src/sys/mman/linux CMakeLists.txt

[libc][NFC] Replace <sys/mman.h> with proxy headers in mman (#195164)

Replaced direct <sys/mman.h> includes in sys/mman entrypoint headers
with granular proxy headers (hdr/types/size_t.h). The mmap.h entrypoint
header retains its transitive sys/mman.h include, keeping tests working.

Updated mremap.cpp and posix_madvise.cpp to include
hdr/sys_mman_macros.h for mman macros used directly.
DeltaFile
+4-2libc/src/sys/mman/linux/CMakeLists.txt
+1-2libc/src/sys/mman/mlock.h
+2-1libc/src/sys/mman/mlock2.h
+1-2libc/src/sys/mman/msync.h
+1-1libc/src/sys/mman/mincore.h
+1-1libc/src/sys/mman/mprotect.h
+10-99 files not shown
+19-1615 files

LLVM/project 4b4cd2blldb/source/Plugins/Process/Windows/Common ProcessWindows.cpp

fixup! also change windows call to breakpointsiteneabled
DeltaFile
+1-1lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp
+1-11 files

LLVM/project a7c9725lldb/source/Plugins/DynamicLoader/MacOSX-DYLD DynamicLoaderDarwin.cpp

[lldb][Darwin] add 0x prefix on a hex value log message (#195223)
DeltaFile
+2-2lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.cpp
+2-21 files

LLVM/project 9f26ed4lldb/source/Target Process.cpp

fixup! Also delay initial breakpoint creation
DeltaFile
+9-1lldb/source/Target/Process.cpp
+9-11 files

LLVM/project c5a1f1alldb/test/API/functionalities/breakpoint/delayed_breakpoints TestDelayedBreakpoint.py main.c

fixup! Add test
DeltaFile
+41-0lldb/test/API/functionalities/breakpoint/delayed_breakpoints/TestDelayedBreakpoint.py
+7-0lldb/test/API/functionalities/breakpoint/delayed_breakpoints/main.c
+3-0lldb/test/API/functionalities/breakpoint/delayed_breakpoints/Makefile
+51-03 files

LLVM/project 965b4eblldb/source/Target Process.cpp

fixup! cosmetic changes
DeltaFile
+7-6lldb/source/Target/Process.cpp
+7-61 files