[lldb][test] Move DAP processes to own group to avoid random SIGHUPs (#195816)
On macOS, LLDB's test suite randomly receives SIGHUP signals that stop
the test suite early. The source of these SIGHUP's seems to be a bug in
the kernel (most likely job control).
The exact steps for reproducing this are not clear, but I have a set of
three tests of which two need to run concurrently for this to trigger:
* TestDAP_runInTerminal
* TestDAP_launch_io_integratedTerminal
* TestDAP_launch_stdio_redirection_and_console
I was also running UBSan on this build which may or may not be necessary
to make this random failure more persistent.
When these tests run, macOS job control will send SIGHUP to the process
group of the spawned subprocesses in that test. As LIT is in the same
process group, it also receives the SIGHUP and shuts down.
[8 lines not shown]
[llvm][tools] Extend llvm-objdump to support nested OffloadBinaries (#185425)
Extends llvm-objdump to print the information of images contained in
nested OffloadBinaries. For example, for a binary compiled with #185413
it shows
```
$llvm-objdump --offloading ./a.out
./a.out: file format elf64-x86-64
OFFLOADING IMAGE [0]:
kind elf
arch
triple spirv64-intel
producer openmp
image size 43104 bytes
[Nested OffloadBinary format detected]
Number of inner images: 1
kind spir-v
[13 lines not shown]
[X86][GlobalISel] Support globals in pic mode (#170038)
Introduce G_WRAPPER_RIP it is the same node as in DAG. It is required to
make legalization possible when a load from stub is required to obtain a
pointer to a global value. It allows to avoid manual selection in
X86InstructionSelector.
Also added a missing check on X86SelectAddress failure.
[DAG] canCreateUndefOrPoison - poison generating flags / out of range shift amounts only generate poison (#196489)
Matches ValueTracking / GISel implementations - although testing options are limited until DAG has actual uses of UndefPoisonKind::UndefOnly
[lldb-dap] Fix build when using precompiled header and Xcode generator. (#196366)
When building with precompiled headers and Xcode as a generator, It adds
`obj.lldbDAP.dir/${BUILD_TYPE}/cmake_pch.xxx` but does not generate one
causing the build to fail.
This might have to do with `add_llvm_library` adding a source file
`Dummy.c` to any object it creates if using Xcode as a generator and
`lldbDAP` object not declaring it's LINK_LIBS and LINK_COMPONENTS.
[libclc] Use spirv[64]-mesa-mesa3d triple in README.md (#196483)
Now that #194607 landed we use a normalized triple in the README for the
SPIRV targets. Before `spirv-mesa3d-` and `spirv64-mesa3d-` were being
used and those will be normalized to `spirv-unknown-mesa3d` and
`spirv64-unknown-mesa3d` by the following command in
`runtimes/CMakeLists.txt` with this command:
```console
$ clang --target=spirv-mesa3d- -print-target-triple
spirv-unknown-mesa3d
```
This is because in `llvm/lib/TargetParser/Triple.cpp` the term `mesa3d`
is recognized as an OS and placed in third position. The install path
for `libclc.spv` there ends up in `spirv-unknown-mesa3d/libclc.spv`.
With this change we suggest to use triples that "survive" the
normalization:
[7 lines not shown]
filesystems/mergerfs: Fix build with newer Clang/libc++
The vendored fmt header uses malloc/free without including the
appropriate declarations, causing builds to fail on recent
FreeBSD -CURRENT toolchains.
Add the missing <cstdlib> include to libfuse/include/fmt/format.h.
Notified by: pkg-fallout
(cherry picked from commit e60f6672636217373c1f86a19ccd168ac18c721a)
filesystems/mergerfs: Fix build with newer Clang/libc++
The vendored fmt header uses malloc/free without including the
appropriate declarations, causing builds to fail on recent
FreeBSD -CURRENT toolchains.
Add the missing <cstdlib> include to libfuse/include/fmt/format.h.
Notified by: pkg-fallout
[Dexter][NFC] Add split step-data collection methods for DAP (#196350)
This patch adds some extra state collection methods to DebuggerBase and
implements them for DAP only. These methods are used to fetch a
stacktrace without variable information, and to populate variable
information into a StepIR containing only a stacktrace. These methods
are currently unused, making this patch NFC, but this is a necessary
precursor to the new script model, where we examine the stacktrace to
determine what variable info we will collect.
As part of the stacktrace-collection function, we also fetch the
instruction address for each stack frame, if it is made available by the
debugger; to enable this, this patch adds a new value with default
`None` to `FrameIR`.
[AArch64][SME] Elide private ZA setup when possible (#196090)
In private ZA functions without any instructions that require "active"
ZA we can omit all ZA setup (and saves/restores). This is equivalent to
removing the `__arm_new("za/zt0")` attribute when ZA state is unused.
[AArch64] Reflect cost of integer sub-reductions. (#194594)
The cost of sub-reductions is either the cost of *mlslb + *mlslt, or the
cost of a dot operation with 2 negations:
```
partial_reduce_umls acc, lhs, rhs
<=> -partial_reduce_umla -acc, lhs, rhs
```
(codegen for this was added by #186809)
The cost-model was previously a bit of a hack, since sub-reductions were
expanded and therefore expensive, although we made the expansion cost
artifically cheaper so that it would still be a candidate for cdot
instructions.