[Clang][Driver][SPIRV] Support LTO through the llvm-lto tool (#182347)
There is no SPIR-V linker that supports LTO and a proposal to support
basic SPIR-V linking in `lld` was
[rejected](https://github.com/llvm/llvm-project/pull/178749), so support
a basic version of LTO just by calling `llvm-lto` directly from the
SPIR-V Toolchain. `-Xlinker` can be used to specify flags to `llvm-lto`.
This should be enough for our use case.
There is also the `llvm-lto2` tool, but that requires a list of symbol
resolutions in the command line, and we can't compute that in the
driver.
---------
Signed-off-by: Nick Sarnie <nick.sarnie at intel.com>
OpenSSL: install EVP_CIPHER_CTX_get_app_data.3 once
A separate EVP_CIPHER_CTX_get_app_data.3 was added in the OpenSSL 3.5.5
import, but the link to EVP_EncryptInit.3 was still being installed
which stomped on the file and created inconsistent entries in the METALOG.
Reviewed by: emaste
Found by: package_check script in Cirrus-CI
Fixes: 1731fc70f734 ("OpenSSL: update vendor sources to match 3.5.5 content")
Sponsored by: Innovate UK
Differential Revision: https://reviews.freebsd.org/D55332
(cherry picked from commit c4130a8a84e1ce0fc9c05d2b48f83e66ade302aa)
[AMDGPU][SIInsertWaitcnts][NFC] Make Waitcnt members private (#180772)
This patch makes Waitcnt member variables private and replaces their
accesses with calls to set() or get(). This will help us change the
implementation to an a array in the followup patch.
[lldb] Speed up SymbolContextList::AppendIfUnique (#181952)
d7fb086668dff68 changed some calls from SymbolContextList::Append to
SymbolContextList::AppendIfUnique. This has unfortunately caused a huge
slow down in operations involving a large amount of symbol contexts (for
example, trying to autocomplete from an empty input "b <TAB>" will add
every function to the list), since AppendIfUnique scans the entire
symbol context list. Speed this up by adding a hash set to quickly
answer whether a symbol context is on the list or not.
This takes the time from running "b <TAB>" when debugging yaml2obj on my
machine from 600 seconds down to 13, which is about the same as before
d7fb086668dff68.
Note that AppendIfUnique has a logic error, which has been present since
its introduction. This has to do with the behavior controlled by
"merge_symbol_into_function", which will try to merge symbols with
symbol context containing the equivalent function to that symbol.
[23 lines not shown]
[lldb] Export *all* private symbols when using LLDB_EXPORT_ALL_SYMBOLS (#182634)
Export *all* private symbols, from both LLDB and LLVM. The motivation
for this is to be able to create dynamically linked LLDB plugins. These
plugins cannot link any LLDB or LLVM code statically as that results in
duplicated symbols, and instead have to use the ones from libLLDB.
[clang-doc] Display enum type along with enum name in HTML view (#181347)
Displays enum type along with name.
For named variables
Previous output : enum XYZ
Current output : enum XYZ : unsigned int
For unnamed variables
Previous output : enum
Current output : enum : unsigned int
Fixes #166652
[AMDGPU][SIInsertWaitcnts][NFC] Move instr events code into separate function (#180864)
This patch moves the code that finds which events correspond to an
instruction into a separate `getEventsFor(MachineInstr)` function.
[AMDGPU] Pack overflow inreg args into VGPR lanes
When inreg function arguments overflow the available SGPRs, pack multiple values
into lanes of a single VGPR using writelane/readlane instead of consuming one
VGPR per overflow argument.
The feature is behind a flag (default off) and currently only supports the
SelectionDAG path.
Known issue: if the register allocator does not coalesce the COPY between the
writelane chain and the physical call argument register, the resulting v_mov_b32
is EXEC-dependent and will not transfer inactive lanes. This is correct when
EXEC is all-ones (the common case at call sites) but would be incorrect inside
divergent control flow.
[InstCombine] Restrict foldICmpOfVectorReduce to one-use (#182833)
Follow up on 279b3dbe ([InstCombine] Fold icmp (vreduce_(or|and) %x),
(0|-1), #182684) to fix a regression by restricting the fold to one-use.
Regression: https://godbolt.org/z/f38b169MM
[libc][math] Refactor getpayload family functions to header-only (#181824)
Refactors the payload_functions math family to be header-only.
part of: https://github.com/llvm/llvm-project/issues/181823
Target Functions:
- getpayload
- getpayloadbf16
- getpayloadf
- getpayloadf128
- getpayloadf16
Remove WARN_ALL_UNSEEDED_RANDOM kernel config option
This config option goes way back - it used to be an internal debug
option to random.c (at that point called DEBUG_RANDOM_BOOT), then was
renamed and exposed as a config option as CONFIG_WARN_UNSEEDED_RANDOM,
and then further renamed to the current CONFIG_WARN_ALL_UNSEEDED_RANDOM.
It was all done with the best of intentions: the more limited
rate-limited reports were reporting some cases, but if you wanted to see
all the gory details, you'd enable this "ALL" option.
However, it turns out - perhaps not surprisingly - that when people
don't care about and fix the first rate-limited cases, they most
certainly don't care about any others either, and so warning about all
of them isn't actually helping anything.
And the non-ratelimited reporting causes problems, where well-meaning
people enable debug options, but the excessive flood of messages that
nobody cares about will hide actual real information when things go
[24 lines not shown]
dnsmasq: fix DHCP range delete in wizard and related changes #9653
Add config_merge_array() to be able to place settings in the configuration
since push will not overwrite keys and is used for very specific purposes.
[Clang][NFC] Don't redefine __trap macro in tests for PowerPC (#182898)
These `OverflowBehaviorType` tests were failing due to PowerPC already
defining a __trap macro.
We can just remove the __wrap and __trap macros as they are unused in these tests.
Signed-off-by: Justin Stitt <justinstitt at google.com>