FunctionAttrs: Basic propagation of nofpclass
Perform caller->callee propagation of nofpclass on callsites. As
far as I can tell the only prior callsite to callee propagation here
was for norecurse. This doesn't handle transitive callers.
I was hoping to avoid doing this, and instead get attributor/attributor-light
enabled in the default pass pipeline. nofpclass propagation enabled by
default is the main blocker for eliminating the finite_only_opt global
check in device-libs, but this single level of propagation is most likely
sufficient for that use. Implemnting this here is probably the most expedient
path to removing the control library.
Attributor: Avoid double map lookup in updateAttrMap
This will leave behind the map entry in the unchanged case,
but this seems to not matter. Could erase the newly inserted
entry if that happens, but that also doesn't seem to make a
difference.
Enable the standard set of USB devices from usbdevices.config in
macppc/conf/POWERMAC_G5, like they are in macppc/conf/GENERIC.
Discussed on port-macppc.
[RISCV] Fold shladd into Xqcisls scaled load/store in RISCVMergeBaseOffset (#182221)
We can fold `shxadd\qc.shladd` into base+offset load/store instructions
by transforming the load/store into `Xqcisls` scaled load/store
instructions.
For eg.
```
qc.e.li vreg1, s
shxadd vreg2, vreg3, vreg1
lx vreg4, imm(vreg2)
can be transformed to
qc.e.li vreg1, s+imm
qc.lrx vreg4, vreg1, vreg3, (1-7)
```
[5 lines not shown]