[RISCV] Rename nf->nfields in MC layer. NFC (#179365)
The RISC-V vector spec uses 'nf' to refer to the encoded value of
nfields. Doing the same in the MC layer make it more clear that
!add(nfields, -1) is converting from nfields to the encoded nf. I plan
to sink this !add down one level in a follow up patch.
I might do the same rename throughout tablegen, but I haven't reviewed
yet.
[RISCV] Add common base classes for loads/stores in RISCVInstrFormatsV.td. NFC (#179329)
Only bits 24-20 have a different meaning between the different loads and
stores, vs2, rs2, or lumop/sumop.
[clang-tidy] Check inherited constructors in bugprone-argument-comment (#179105)
Currently, C++11 inherited constructors are not checked. For example:
```cpp
struct Base {
explicit Base(int val) {}
};
struct Over : public Base {
using Base::Base;
};
int main() {
Base b{/*wrong=*/2}; // checked
Over o{/*wrong=*/3}; // NOT checked right now
}
```
[7 lines not shown]
[lldb] Fix variable access in old SBFrames after inferior function calls (#178823)
When a user holds an SBFrame reference and then triggers an inferior
function
call (via expression evaluation or GetExtendedBacktraceThread),
variables in
that frame become inaccessible with "register fp is not available"
errors.
This happens because inferior function calls execute through
ThreadPlanCallFunction, which calls ClearStackFrames() during cleanup to
invalidate the unwinder state. ExecutionContextRef objects in the old
SBFrames
were tracking StackFrameLists via weak_ptr, which became stale when
ClearStackFrames() created new instances.
The fix uses stable StackFrameList identifiers that persist across
ClearStackFrames():
- ID = 0: Normal unwinder frames (constant across all instances)
[35 lines not shown]
[AMDGPU] Allow hoising of V_READFIRSTLANE_B32 for uniform operand
readfirstlane can be moved across control flow for uniform inputs.
The MachineInstr::NoConvergent attribute allows hoisting
which is otherwise prohibited for a convergent instruction.
[AMDGPU] Return two MMOs for load-to-lds and store-from-lds intrinsics
Accurately represent both the load and the store part of those
intrinsics.
The test changes seem to be mostly fairly insignificant changes caused by
subtly different scheduler behavior.
commit-id:0269189c
[AMDGPU] Add scheduling DAG mutation for hazard latencies (#170075)
Improve waitcnt merging in ML kernel loops by increasing latencies on
VALU writes to SGPRs.
Specifically this helps with the case of V_CMP output feeding V_CNDMASK
instructions.
[CodeGen] Refactor targets to override the new getTgtMemIntrinsic overload (NFC) (#175844)
This is a fairly mechanical change. Instead of returning true/false,
we either keep the Infos vector empty or push one entry.
[BasicBlockUtils] Fix dominator tree update for entry block in splitBlockBefore() (#178895)
06dfbb50d70eea4ae38d655842626a0b9b224d5c fixed dominator update for
entry block in `SplitBlockPredecessors()`, this patch fixes dominator
tree update for entry block in `splitBlockBefore()` with
`UpdateAnalysisInformation()`.
[compiler-rt][common] Don't unmap stacks not mapped by the runtime
When the sanitizer hasn't mapped the alternate signal stack, but the
host program has (like LLVM), the runtime still tries to unilaterally
unmap the alternate stack. Instead, the runtime should just check if
it's actually mmaped the alternate stack, and only unmap it if it has.
workflows/commit-access-review: Use a GitHub App access token instead of llvmbot
This replaces the use of an access token associated with the llvmbot
account with one that is generated by a GitHub App. This is slightly
better, because it eliminates the need to periodically rotate the
llvmbot tokens, which is difficult to do, since it requires sharing
a password and 2fa code among all the admins.
The tokens generated by the app automatically expire after an hour, and
the private key that is used to request it can be easily rotated by
an LLVM Organization owner. Also, since a single private key can
be used to generate many tokens, there is only one secret to rotate
instead of many.
[InstCombine] Preserve fdiv metadata on fneg folds (#179157)
Copy metadata from the original fdiv when folding fneg into fdiv or
hoisting fneg above fdiv. This keeps !fpmath (and other metadata)
intact, preventing !fpmath loss seen in libclc tanpi function. fneg only
flips sign bit, so it does not affect precision.
[clang-tidy][NFC] Fix incorrect `list.rst` modification by `add_new_check.py` (#179297)
We have observed unexpected and extensive modifications to `list.rst` in
a few Pull Requests. After some investigation I found that
`add_new_check.py` was misclassifying existing checks, leading to
instability in the generated documentation list.
More specifically:
- The script relies on `http-equiv=refresh` meta tags to identify alias
checks, which is missing in several existing checks, causing them to be
incorrectly listed as regular checks.
- The script fails to detect fix-its in checks that use CamelCase helper
methods.
With this patch, running `add_new_check.py` now generates a stable and
correct `list.rst` consistent with the actual codebase state.