Rework data structures: bundles have a SmallVec of ranges, and ranges a SmallVec of uses.

Appears to be a small speed improvement on the highly-artificial
fuzz-generator test inputs; Cranelift tests TBD.
This commit is contained in:
Chris Fallin
2021-05-17 22:19:47 -07:00
parent 5b55948feb
commit f0fbf3aa0c
2 changed files with 573 additions and 1104 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -758,15 +758,6 @@ pub trait Function {
&[] &[]
} }
/// Is the given VReg pinned permanently to a PReg? Note that the
/// input program must not contain constraints that contradict
/// this (e.g., using another VReg with a fixed-reg policy to a
/// given preg at the same time as using a VReg pinned to that
/// preg) or else allocation may be impossible.
fn is_pinned_vreg(&self, _: VReg) -> Option<PReg> {
None
}
// -------------- // --------------
// Spills/reloads // Spills/reloads
// -------------- // --------------