[clang-tidy] Fix crash on pointer arithmetic with an incomplete type in bugprone-pointer-arithmetic-on-polymorphic-object (#215724)
This commit fixes a crash in clangd / clang-tidy: running
the `bugprone-pointer-arithmetic-on-polymorphic-object` check on code
that does pointer arithmetic on a pointer to an **incomplete type** (a
type that is forward-declared but never defined) makes the matcher hit
an assertion and abort.
AI note: Used AI tools for code analysis and wording polish.
[RISCV] Rename riscv-pre-ra-expand-pseudo (#218106)
From riscv-prera-expand-psuedo. Makes the name more consistent with
other targets (e.g., AMDGPU uses pre-ra) and with our hyphenation in
general.
nuageinit: root should be allowed to log in when disable_root is false
PermitRootLogin is "no" by default and that stopped root from logging in
even though disable_root was set to false during initialization.
Reviewed by: bapt
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D59101
[DAG] Remove trivial VP SDNodes. NFC
This removes the codegen parts of the trivial VP intrinsics. It's quite far reaching, but the general categories of code removed are:
- Removing definitions from VPIntrinsics.def
- Legalization and expansion code
- MatchContext used to match over both VP and non-VP nodes
- Some dead DAGCombines and folds in SelectionDAGBuilder
There are still more things to be cleaned up after this, e.g. removing more of the VPIntrinsic class hierarchy, removing ExpandVectorPredication/moving expansion into other places, removing MatchContext from SDPatternMatch
[DAG] Expand vp.*rem and vp.cttz.elts with non-vp nodes. (#217864)
Trivial VP SDNodes will be removed in an upcoming patch. The division is
still predicated so we avoid UB.
[llc] Register pass plugin callbacks with the new pass manager (#217727)
llc loads the libraries given to `--load-pass-plugin`, but only ever
invokes their
`PreCodeGenCallback`; the plugins' `PassBuilder` callbacks are never
registered, so a pass
provided by a plugin cannot be named in `-passes`. Register them in the
new PM driver,
matching what opt does in `llvm/tools/opt/NewPMDriver.cpp`.
This is visible with LLVM's own example plugin, which opt accepts and
llc rejects:
$ opt -load-pass-plugin=lib/Bye.so -passes=goodbye -disable-output f.ll
$ llc -load-pass-plugin=lib/Bye.so -passes=goodbye f.mir -o /dev/null
unknown pass name 'goodbye'
Claude Code helped me navigate the codebase.