[lldb][docs] Improve documentation typehints (#182892)
Some parts of the docs uses google style docstrings, but the generated
docstrings are note formatted properly.
Add the builtin napoleon extension.
Add typehints to the `SyntheticChildrenProvider` in variable docs.
[AMDGPU] Remove `FeaturePromoteAlloca` (#177636)
It looks like `+promote-alloca` is always enabled, and `-promote-alloca`
is simply used as a switch to toggle the pass.
[HLSL][Matrix] Add implicit type conversions for constant matrix types (#181939)
Fixes #175853
This PR extends implicit type conversion support to Clang's HLSL
frontend for handling ConstantMatrix types in addition to Vectors. The
logic is pretty much identical when handling a ConstantMatrix versus a
Vector so the changes are rather simple.
Assisted-by: claude-opus-4.6
[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