[LoongArch] Combine rounded vector shifts to VSRLR/VSRAR
Add DAG combines to recognize canonical rounded shift patterns and
lower them to target-specific vector rounded shift instructions.
The combines match vector arithmetic and logical right shifts with
rounding implemented as:
```
add (srl/sra X, shift),
(and (srl X, shift-1), 1)
```
and the shift-by-1 variant:
```
add (srl/sra X, 1),
(and X, 1)
```
[14 lines not shown]
[MC] Change MCContext::getTargetOptions to return a reference. NFC (#194112)
Since #180464, MCAsmInfo stores a non-null MCTargetOptions pointer set
by
TargetRegistry::createMCAsmInfo, and MCContext's constructor asserts
that
MAI->getTargetOptions() is non-null. Return the options by reference
instead of by pointer so callers can drop the null handling.
kgss: de-virtualize kgss_gssd_handle
The RPC client is more of a class rather than an instance. RPCs from
different VNETs are served by the same client. This makes the kgss layer
fully transparent to VIMAGE and not even required to be aware of it.
It is responsibility of the rpcsec_gss module to have curvnet set on the
calling thread when doing RPC calls via kgssapi.
This change should enable proper operation of an NFS server with gssd(8)
in a VIMAGE jail.
PR: 294501
Reviewed by: rmacklem
Differential Revision: https://reviews.freebsd.org/D56562
kgss: remove unnecessary CURVNET_SET() and kgss_gssd_handle checks
These RPC methods correctly acquire the kgss_gssd_handle later with call
to kgss_gssd_client().
Reviewed by: rmacklem
Differential Revision: https://reviews.freebsd.org/D56561
kgss: remove KGSS_VNET_* macros family
The original idea was that something else than VNET(9) might be used for
kgss in jails, but that is very unlikely to happen.
Mechanical change done with sed+grep. No functional change.
Reviewed by: rmacklem
Differential Revision: https://reviews.freebsd.org/D56560
[Clang][CodeGen] Report when an alias points to an incompatible target (#192397)
Add checks to ensure that an alias and its target have compatible types:
- Generate an error if a function alias points to a variable or vice
versa.
- Issue a warning for mismatches in function types.
- Ignore type discrepancies for variables.
This behavior aligns with similar diagnostics in GCC.
Resolves: #47301