[Lanai] Default to NewPM
Lanai should be fully functional with the NewPM, so try defaulting to
it. Also remove the now duplicate test coverage.
Setting this flag makes both clang and llc default to the NewPM.
Reviewers: jpienaar
Pull Request: https://github.com/llvm/llvm-project/pull/214574
[MSP430] Default to NewPM
MSP430 should be fully complete with the NewPM, so default to it.
This flag makes both clang and llc default to using the NewPM for
CodeGen.
Reviewers: asl
Pull Request: https://github.com/llvm/llvm-project/pull/214573
[CodeGen] Avoid querying allocation order for every CSR alias (#215752)
Profiling tramp3d-v4 on aarch64-O0-g shows ~0.30% of compile-time is
spent in RegisterClassInfo::runOnMachineFunction.
It currently walks every alias of every callee-saved register for every
MachineFunction, doing a virtual call to ignoreCSRForAllocationOrder for
each alias. ARM is the only target that overrides this hook; all other
targets construct a full-sized BitVector and perform the alias traversal
only to fill it with zeroes.
Replace the per-register hook with a target-populated mask. Most targets
leave the mask empty, avoiding the allocation and alias traversal. The
mask is also only consulted after getLastCalleeSavedAlias confirms the
physical register aliases a CSR, so ARM can populate all GPR bits
directly without rediscovering the CSR aliases.
Improves CTMark geomean by -0.10%, with tramp3d-v4 -0.34%.
[2 lines not shown]
thunderbolt: Explicitly read NHI ISR0 register to clear it
This fixes and issue where Pink Sardine controllers were not receiving
interrupts for more than the first command sent on the ring.
Reviewed by: emaste, imp
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D52862
thunderbolt: Explicitly read NHI ISR0 register to clear it
This fixes and issue where Pink Sardine controllers were not receiving
interrupts for more than the first command sent on the ring.
Reviewed by: emaste, imp
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D52862
[SandboxVectorizer] Dispatch LoadStoreVec::runOnRegion on seed kind
runOnRegion() previously assumed its seed slice was always a store chain,
unconditionally casting Bndl[0] to StoreInst. This crashed (assertion in
areConsecutive<StoreInst>) whenever -sbvec-collect-seeds included "loads",
since a load-seeded region's Aux holds LoadInsts.
Add a symmetric top-level path for load-kind seed slices: createVectorLoad()
builds the vector load, and vectorizeLoads() -- unlike a load that merely
feeds a store -- has to handle arbitrary uses, so it replaces each original
load with an extract from the vector load (VecUtils::unpack()) rather than
just discarding it. runOnRegion() determines the seed kind from Bndl[0]
(asserting the slice is homogeneous, which SeedCollection guarantees) and
dispatches to vectorizeStores()/vectorizeLoads() accordingly.
No sub-run search yet: vectorizeStores()/vectorizeLoads() are each still
tried once over the whole seed slice, same as before this commit for
stores. Sub-bundle partitioning for both kinds is a separate follow-up.
[13 lines not shown]