MCPcopy Create free account
hub / github.com/Amanieu/regalloc3 / resolve_subclasses

Function resolve_subclasses

src/debug_utils/generic_reginfo/parse.rs:330–343  ·  view source on GitHub ↗

The text format has superclasses, conver those into subclasses which are needed by `GenericRegInfo`.

(
    classes: &mut PrimaryMap<RegClass, RegClassData>,
    superclasses: &SecondaryMap<RegClass, RegClassSet>,
)

Source from the content-addressed store, hash-verified

328/// The text format has superclasses, conver those into subclasses which are
329/// needed by `GenericRegInfo`.
330fn resolve_subclasses(
331 classes: &mut PrimaryMap<RegClass, RegClassData>,
332 superclasses: &SecondaryMap<RegClass, RegClassSet>,
333) {
334 // Propagate sub-classes backwards. This works because superclasses always
335 // have a lower index than subclasses.
336 for class in classes.keys().rev() {
337 classes[class].sub_classes.insert(class);
338 let sub_classes = classes[class].sub_classes;
339 for superclass in superclasses[class] {
340 classes[superclass].sub_classes |= sub_classes;
341 }
342 }
343}
344
345impl GenericRegInfo {
346 /// Parses a textual register description into a [`GenericRegInfo`].

Callers 1

parseMethod · 0.85

Calls 2

keysMethod · 0.45
insertMethod · 0.45

Tested by

no test coverage detected