LLVM/project c7f0fd6clang/lib/Driver/ToolChains AMDGPU.h Clang.cpp, clang/test/Driver openmp-offload-gpu.c amdgpu-toolchain.c

[Clang] Correctly handle UBSan libraries for the GPU (#188290)

Summary:
This PR adds the necessary clang driver plumbing to forward UBSan
arguments on the GPU targets. These are currently only forwarded via the
offloading languages if the user has the relevant library installed.

Enables the support in https://github.com/llvm/llvm-project/pull/188289
DeltaFile
+20-0clang/test/Driver/openmp-offload-gpu.c
+12-6clang/lib/Driver/ToolChains/AMDGPU.h
+17-1clang/lib/Driver/ToolChains/Clang.cpp
+7-0clang/test/Driver/amdgpu-toolchain.c
+7-0clang/test/Driver/cuda-cross-compiling.c
+1-1clang/lib/Driver/ToolChains/CommonArgs.cpp
+64-84 files not shown
+66-810 files

LLVM/project 7994ff2clang/include/clang/Basic BuiltinsAMDGPUDocs.td BuiltinsAMDGPU.td, clang/lib/CIR/CodeGen CIRGenBuiltinAMDGPU.cpp

[AMDGPU] Add clang builtin for generic AMDGPU shuffle (#185302)

Summary:
AMDGPU introduced a high level intrinsic for shuffles. The main
advantage of this over the ds_bpermute path is that it is correctly
lowered for w32 / w64 and doesn't require the four byte offset. This PR
adds '__builtin_amdgcn_wave_shuffle' to access it.
DeltaFile
+23-0clang/include/clang/Basic/BuiltinsAMDGPUDocs.td
+7-0clang/test/CodeGenOpenCL/builtins-amdgcn.cl
+4-0clang/include/clang/Basic/BuiltinsAMDGPU.td
+3-0clang/lib/CodeGen/TargetBuiltins/AMDGPU.cpp
+2-1clang/lib/CIR/CodeGen/CIRGenBuiltinAMDGPU.cpp
+39-15 files

LLVM/project 0d4a3bfllvm/test/Transforms/LICM hoist-nounwind.ll

[LICM] Generate test checks (NFC) (#192970)
DeltaFile
+72-15llvm/test/Transforms/LICM/hoist-nounwind.ll
+72-151 files

LLVM/project 17a98cbclang/lib/CodeGen CGDebugInfo.h

[NFC][Clang][DebugInfo] Fix constructor type comment (#192949)

This corrects a constructor comment to say move instead of copy.
DeltaFile
+1-1clang/lib/CodeGen/CGDebugInfo.h
+1-11 files

LLVM/project 578c3aallvm/lib/Target/AArch64 AArch64ISelLowering.cpp, llvm/test/CodeGen/AArch64 fixed-vector-interleave.ll

[AArch64][Isel] Add lowering for fixed-width interleave3 (#192677)
DeltaFile
+169-0llvm/test/CodeGen/AArch64/fixed-vector-interleave.ll
+27-0llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+196-02 files

LLVM/project c3534cfllvm/lib/Target/AMDGPU SILowerI1Copies.cpp AMDGPUGlobalISelDivergenceLowering.cpp

[NFC][AMDGPU] Move PhiLoweringHelper and related types into AMDGPU namespace (#192586)

Move Incoming, createLaneMaskReg, and PhiLoweringHelper into
llvm::AMDGPU namespace to avoid symbol collisions and improve
target-specific isolation. No functional change.
DeltaFile
+23-21llvm/lib/Target/AMDGPU/SILowerI1Copies.cpp
+9-8llvm/lib/Target/AMDGPU/AMDGPUGlobalISelDivergenceLowering.cpp
+2-2llvm/lib/Target/AMDGPU/SILowerI1Copies.h
+34-313 files

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

[lldb] Implement delayed breakpoints

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.

https://github.com/llvm/llvm-project/pull/192910
DeltaFile
+88-8lldb/source/Target/Process.cpp
+30-1lldb/include/lldb/Target/Process.h
+6-6lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+5-3lldb/source/Plugins/Process/Utility/StopInfoMachException.cpp
+4-2lldb/source/Target/ThreadPlanStepOverBreakpoint.cpp
+5-0lldb/source/Target/TargetProperties.td
+138-201 files not shown
+140-227 files

LLVM/project 8f4104elldb/include/lldb/Breakpoint BreakpointSite.h, lldb/include/lldb/Target Process.h

[lldb][NFC] Move BreakpointSite::IsEnabled/SetEnabled into Process

The Process class is the one responsible for managing the state of a
BreakpointSite inside the process. As such, it should be the one
answering questions about the state of the site.

https://github.com/llvm/llvm-project/pull/192910
DeltaFile
+23-29lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+16-7lldb/source/Target/Process.cpp
+6-14lldb/include/lldb/Breakpoint/BreakpointSite.h
+5-5lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp
+10-0lldb/include/lldb/Target/Process.h
+8-0lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
+68-555 files not shown
+76-6411 files

LLVM/project 4265ca3libcxx/include/__iterator wrap_iter.h

[libc++][NFC] Remove `pointer_traits<__wrap_iter>` partial specialization (#178864)

Since commit b5270ba20dc3d84df9d880be11d57667f04c6c28, it was decided
that `__wrap_iter` wasn't intended to perform runtime check, so it's
`operator->` won't check whether the iterator is deferenceable. (See
https://llvm.org/PR178521.)

Currently, `pointer_traits<__wrap_iter>` partial specialization is
provided and makes `__to_address`/`to_address` call the member
`to_address` instead of `operator->`. But given these operations are
equivalent and `__wrap_iter::operator->` is improbable to have
behavioral change in the future, perhaps it would be better to remove
the partial specialization.

The changes have no negative impact on compile time, and sometimes have
a negligible positive impact.

Drive-by: Also remove inclusion of `<__memory/addressof.h>` from
`<__iterator/wrap_iter.h>` as we don't need to call `addressof` or its
equivalent internal version.
DeltaFile
+0-14libcxx/include/__iterator/wrap_iter.h
+0-141 files

LLVM/project 9705f34llvm/docs LangRef.rst

[IR] LangRef: document behavior of double-lifetime.start (#184296)

lifetime.start after lifetime.start is defined to reset the contents of the
allocation to uninitialized memory.
DeltaFile
+11-7llvm/docs/LangRef.rst
+11-71 files

LLVM/project 39f47a1lldb/include/lldb/Breakpoint BreakpointSite.h, lldb/include/lldb/Target Process.h

[lldb][NFC] Move BreakpointSite::IsEnabled/SetEnabled into Process

The Process class is the one responsible for managing the state of a
BreakpointSite inside the process. As such, it should be the one
answering questions about the state of the site.

https://github.com/llvm/llvm-project/pull/192910
DeltaFile
+23-29lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+6-14lldb/include/lldb/Breakpoint/BreakpointSite.h
+12-4lldb/source/Target/Process.cpp
+10-0lldb/include/lldb/Target/Process.h
+5-5lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp
+8-0lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
+64-525 files not shown
+72-6111 files

LLVM/project 41e2bafllvm/include/llvm/ADT APInt.h, llvm/include/llvm/Support KnownBits.h

[KnownBits][APInt] Optimize isConstant (NFC) (#191919)

`isConstant` used is quite often and should be as lightweight as
possible. Add `APInt::isInverseOf` and utilize it for `isConstant`. It
is equivalent to `LHS == ~RHS`, but avoids intermediate allocations.
DeltaFile
+29-0llvm/unittests/ADT/APIntTest.cpp
+11-0llvm/lib/Support/APInt.cpp
+11-0llvm/include/llvm/ADT/APInt.h
+1-3llvm/include/llvm/Support/KnownBits.h
+52-34 files

LLVM/project d242dfcpolly/include/polly/CodeGen IslNodeBuilder.h, polly/lib/CodeGen IslNodeBuilder.cpp

[Polly][NFC] Convert IslNodeBuilder::preloadUnconditionally to isl++ (#192959)
DeltaFile
+8-10polly/lib/CodeGen/IslNodeBuilder.cpp
+7-0polly/lib/External/isl/include/isl/isl-noexceptions.h
+2-2polly/include/polly/CodeGen/IslNodeBuilder.h
+17-123 files

LLVM/project 06a586dlldb/source/Plugins/Process/gdb-remote GDBRemoteCommunicationClient.cpp GDBRemoteCommunicationClient.h, lldb/unittests/Process/gdb-remote GDBRemoteCommunicationClientTest.cpp

[lldb][GDBRemote] Parse MultiBreakpoint+ capability
DeltaFile
+22-0lldb/unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp
+10-0lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
+3-0lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h
+35-03 files

LLVM/project d964f2blldb/include/lldb/Symbol TypeList.h TypeMap.h, lldb/source/Symbol TypeList.cpp TypeMap.cpp

[lldb] Remove commented out code in TypeList and TypeMap (#192955)

Fixes #192774

They are obviously unused and not part of any public API.
DeltaFile
+0-24lldb/source/Symbol/TypeList.cpp
+0-24lldb/source/Symbol/TypeMap.cpp
+0-2lldb/include/lldb/Symbol/TypeList.h
+0-2lldb/include/lldb/Symbol/TypeMap.h
+0-524 files

LLVM/project d7a393emlir/include/mlir/Dialect/Transform/IR Utils.h, mlir/lib/Dialect/Transform/IR Utils.cpp TransformDialect.cpp

[mlir] targeted verification for transform "inlining"

When merging named transform sequences into their include locations,
rely on the InlinerDialectInterface implementation newly added to the
transform dialect instead of the full verification after the fact. This
enables us to only verify aspects of the IR that may change in a way
compatible with the rest of the infra, reducing the overall cost of the
process.
DeltaFile
+99-27mlir/lib/Dialect/Transform/IR/Utils.cpp
+47-31mlir/lib/Dialect/Transform/IR/TransformDialect.cpp
+8-2mlir/include/mlir/Dialect/Transform/IR/Utils.h
+4-5mlir/test/Dialect/Transform/normal-forms.mlir
+158-654 files

LLVM/project 39fbe8bclang/docs ReleaseNotes.rst, clang/lib/Sema SemaExpr.cpp

[Sema] Decay functions/array to pointers in `IncompatiblePointerDiscardsQualifiers` and `IncompatibleOBTKinds` cases (#187038)

This PR adds checks that ensure the compiler has the correct type so it
does not crash when trying to get qualifiers from an incorrect type in
the `IncompatiblePointerDiscardsQualifiers` and `IncompatibleOBTKinds`
cases. It achieves this by performing a decay before accessing pointee
qualifiers.

It also adds a test to ensure that such a bug won't arise again.

Fixes #182534

(same as #183616, unfortunately i forgot to create a new branch and
wiped all changes)
DeltaFile
+18-0clang/test/Sema/incompatible-function-to-ptr-decay.c
+8-2clang/lib/Sema/SemaExpr.cpp
+1-0clang/docs/ReleaseNotes.rst
+27-23 files

LLVM/project a677acfllvm/lib/Target/AMDGPU AMDGPURegBankLegalizeRules.cpp, llvm/test/CodeGen/AMDGPU intrinsic-amdgcn-s-alloc-vgpr.ll

AMDGPU/GlobalISel: RegBankLegalize rules for amdgcn_s_alloc_vgpr (#192937)

From issue #192497
DeltaFile
+58-0llvm/test/CodeGen/AMDGPU/intrinsic-amdgcn-s-alloc-vgpr.ll
+3-0llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
+61-02 files

LLVM/project ea43c3fmlir/lib/Dialect/Linalg/Transforms ShardingInterfaceImpl.cpp, mlir/test/Dialect/Linalg shard-partition.mlir

[mlir][linalg][shard] Fix andi reduction kind in sharding partition (#192381)

linalg sharding now maps arith.andi combiners to bitwise_and (instead of
sum) when creating shard.all_reduce. Adds a shard-partition regression
test that checks the emitted all-reduce uses reduction = bitwise_and for
an andi reduction.
DeltaFile
+38-0mlir/test/Dialect/Linalg/shard-partition.mlir
+1-1mlir/lib/Dialect/Linalg/Transforms/ShardingInterfaceImpl.cpp
+39-12 files

LLVM/project 43ccda2polly/include/polly/CodeGen IslNodeBuilder.h, polly/lib/CodeGen IslNodeBuilder.cpp

[Polly][NFC] Convert IslNodeBuilder::preloadInvariantLoad to isl++ (#192942)

Also fix the wrong lifetime annotation of
`IslNodeBuilder::materializeParameters`
DeltaFile
+18-32polly/lib/CodeGen/IslNodeBuilder.cpp
+2-3polly/include/polly/CodeGen/IslNodeBuilder.h
+20-352 files

LLVM/project 2c1624blldb/source/Plugins/Platform/MacOSX PlatformDarwin.cpp

[lldb][PlatformDarwin] Fix build failure (#192934)

PR #191454 introduced a constructor call that breaks in certain build
configs, e.g., with C++20 - https://godbolt.org/z/hTb8166qG.

This fix mimics what's done to construct an instance of `XcodeSDK::Info`
further up in the same file.
DeltaFile
+3-1lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
+3-11 files

LLVM/project b40c3b7clang/lib/Basic/Targets AArch64.cpp AArch64.h, clang/test/Preprocessor aarch64-target-features.c

[AArch64][clang] Add ACLE macros to support Armv9.7

This patch add the macros for Armv9.7 according to the ACLE[1]

[1] https://github.com/ARM-software/acle/blob/main/main/acle.md
DeltaFile
+37-1clang/lib/Basic/Targets/AArch64.cpp
+32-0clang/test/Preprocessor/aarch64-target-features.c
+6-0clang/lib/Basic/Targets/AArch64.h
+75-13 files

LLVM/project 3c2e65elldb/source/Plugins/Process/gdb-remote ProcessGDBRemote.cpp ProcessGDBRemote.h

[lldb] Override UpdateBreakpointSites in ProcessGDBRemote to use MultiBreakpoint
DeltaFile
+174-0lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+8-0lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
+182-02 files

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

[lldb] Implement delayed breakpoints

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.
DeltaFile
+88-9lldb/source/Target/Process.cpp
+30-1lldb/include/lldb/Target/Process.h
+6-6lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+5-3lldb/source/Plugins/Process/Utility/StopInfoMachException.cpp
+4-2lldb/source/Target/ThreadPlanStepOverBreakpoint.cpp
+5-0lldb/source/Target/TargetProperties.td
+138-211 files not shown
+140-237 files

LLVM/project 2663eaclldb/include/lldb/Breakpoint BreakpointSite.h, lldb/include/lldb/Target Process.h

[lldb][NFC] Move BreakpointSite::IsEnabled/SetEnabled into Process

The Process class is the one responsible for managing the state of a
BreakpointSite inside the process. As such, it should be the one
answering questions about the state of the site.
DeltaFile
+23-29lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+6-14lldb/include/lldb/Breakpoint/BreakpointSite.h
+12-4lldb/source/Target/Process.cpp
+5-5lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp
+10-0lldb/include/lldb/Target/Process.h
+8-0lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
+64-525 files not shown
+72-6111 files

LLVM/project e3aad30lldb/include/lldb/Target Process.h, lldb/source/Target Process.cpp ThreadPlanStepOverBreakpoint.cpp

[lldb] Implement delayed breakpoints
DeltaFile
+83-9lldb/source/Target/Process.cpp
+28-1lldb/include/lldb/Target/Process.h
+4-2lldb/source/Target/ThreadPlanStepOverBreakpoint.cpp
+5-0lldb/source/Target/TargetProperties.td
+120-124 files

LLVM/project a1dcec4lldb/include/lldb/Breakpoint BreakpointSite.h, lldb/include/lldb/Target Process.h

[lldb][NFC] Move BreakpointSite::IsEnabled/SetEnabled into Process

The Process class is the one responsible for managing the state of a
BreakpointSite inside the process. As such, it should be the one
answering questions about the state of the site.
DeltaFile
+23-29lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+6-14lldb/include/lldb/Breakpoint/BreakpointSite.h
+12-4lldb/source/Target/Process.cpp
+10-0lldb/include/lldb/Target/Process.h
+5-5lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp
+8-0lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
+64-525 files not shown
+72-6111 files

LLVM/project 38a505alldb/source/Plugins/Process/gdb-remote GDBRemoteCommunicationClient.cpp GDBRemoteCommunicationClient.h

[lldb][GDBRemote] Parse MultiBreakpoint+ capability
DeltaFile
+10-0lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
+3-0lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h
+13-02 files

LLVM/project 8265e86lldb/include/lldb/Utility StringExtractorGDBRemote.h, lldb/packages/Python/lldbsuite/test/tools/lldb-server gdbremote_testcase.py

[lldbremote] Implement support for MultiBreakpoint packet

This is fairly straightfoward, thanks to the helper functions created in
the previous commit.

https://github.com/llvm/llvm-project/pull/192910
DeltaFile
+59-0lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
+2-0lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h
+2-0lldb/source/Utility/StringExtractorGDBRemote.cpp
+1-0lldb/include/lldb/Utility/StringExtractorGDBRemote.h
+1-0lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py
+0-1lldb/test/API/functionalities/multi-breakpoint/TestMultiBreakpoint.py
+65-16 files

LLVM/project d2ffdc3utils/bazel/llvm-project-overlay/lldb/source/Plugins BUILD.bazel

[Bazel] Fixes 920b203 (#192922)

This fixes 920b203fe2a2ad9f4403e8923b2b06518a46129e.

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