[AMDGPU] Handle `s_setreg_imm32_b32` targeting `MODE` register
On certain hardware, this instruction clobbers VGPR MSB `bits[12:19]`, so we need to restore the current mode.
[RISCV] Improve load/store pairing for Xqcilsm instructions in RISCVLoadStoreOptimizer (#174612)
If we did not pair two viable `Xqcilsm` load/store instructions in
`RISCVLoadStoreOptimizer` we iterated over the second instruction when
looking for other pairs to merge. This leads to us missing out on
opportunities where the second instruction could have been the start of
another potential pair that could have been merged.
[libclc] Add support for `nvptx64-nvidia-cuda` triple (#174611)
Summary:
The OS here is the standard CUDA support target, which is the ABI used
for all of the same intrinsics the `nvidiacl` target uses. These can be
aliases asn `cuda` in the triple is the canonical form for most all GPU
compute.
[lldb] Update LLDB DAP documentation. (#172580)
This adds a new page to lldb.llvm.org that includes a user guide for
lldb-dap.
The overall structure for documentation:
* https://lldb.llvm.org/resources/lldbdap.html - represents the user
facing documentation for lldb-dap, a high level overview of lldb-dap and
a place we can point users to for basic usage information.
* https://lldb.llvm.org/resources/lldbdap-contributing.html - represents
the contributing documentation for lldb-dap.
* llvm-project/lldb/tools/lldb-dap/README.md - The lldb-dap VSCode
Extension specific documentation.
This is a first pass at the documentation, I expect to expand on it
further as needed.
[X86][CIR]Implement handling for F16 halfs to float conversion builtins (#173572)
Related to: #167765
This PR implements-
`BI__builtin_ia32_vcvtph2ps_mask`
`BI__builtin_ia32_vcvtph2ps256_mask`
`BI__builtin_ia32_vcvtph2ps512_mask`
[llvm][formatters] Add LLDB data-formatter for llvm::PointerIntPair (#173261)
Depends on:
* https://github.com/llvm/llvm-project/pull/173238
(only last commit relevant for review)
This patch revives the `llvm::PointerIntPair` LLDB data-formatter. The
previous version was commented out because it relied on expression
evaluation and was hence slow/brittle. The formatter in this PR doesn't
rely on evaluating expressions.
Drive-by change:
* removes the `llvm::PointerUnion` formatter which was also commented
out. A future version of it will look very different than it does now,
so there's no point in keeping it because the diff won't be helpful in a
review.
[Clang] treat fixed-underlying enum constants as the enumerated type in C23 to follow the spec (#172211)
Fixes #172118
---
This patch resolves an issue where C23 fixed-underlying enum constants
were incorrectly treated as the underlying integer type instead of the
enumeration type.
According to C23 `6.7.2.2p15`:
> The enumeration member type of an enumerated type with a fixed
underlying type is the same as the type itself.
[clang-doc] Make sidebar sections collapsible (#174531)
Collapsible lists are achieved via `<details>` and their child
`<summary>` tags. `<details>` tags allow for a section to be designated
as collapsible, while the `<summary>` tag is used as the sidebar
section's header. This approach was chosen over making the lists
stateful through various CSS properties.
This patch also refactors the `<li>` tag structure of sidebar sections.
Previously, the section header and list items were in separate `<li>`
tags without sharing a parent. Now, the header and items are under a
single `<li>` tag which makes more sense semantically.
[clang] Reference-count `ModuleCache` non-intrusively (#164889)
The `ModuleCache` class is currently reference-counted intrusively. As
explained in https://github.com/llvm/llvm-project/pull/139584, this is
problematic. This PR uses `std::shared_ptr` to reference-count
`ModuleCache` instead, which clarifies what happens to its lifetime when
constructing `CompilerInstance`, for example. This also makes the
reference in `ModuleManager` non-owning, simplifying the ownership
relationship further. The
`ASTUnit::transferASTDataFromCompilerInstance()` function now accounts
for that by taking care to keep it alive.
[OpenMP] Remove special handling of implicit clauses in decomposition
Applying implicit clauses should not cause any issues. The only exception
is that "simd linear(x)" could imply a "firstprivate", and that clause is
not allowed on the simd construct.
Add a check for that specific case, and apply all implicit clauses as if
they were explicit.
[BOLT] Remove unnecessary dependency. NFC (#174645)
There's no need for a full definition of `BinaryBasicBlock` in
`MCPlusBuilder.h`. Use `InstructionListType::iterator` instead of
`BinaryBasicBlock::iterator` in `findMemcpySizeInBytes()`.