From 51561285d3e592c60b4343473ee7da0ff9557e20 Mon Sep 17 00:00:00 2001 From: Trevor Elliott Date: Wed, 9 Nov 2022 11:31:56 -0800 Subject: [PATCH] Add a From<&MachineEnv> impl for PRegSet (#101) --- src/lib.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index 06e96ed..52135fd 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -242,6 +242,26 @@ impl Iterator for PRegSetIter { } } +impl From<&MachineEnv> for PRegSet { + fn from(env: &MachineEnv) -> Self { + let mut res = Self::default(); + + for class in env.preferred_regs_by_class.iter() { + for preg in class { + res.add(*preg) + } + } + + for class in env.non_preferred_regs_by_class.iter() { + for preg in class { + res.add(*preg) + } + } + + res + } +} + /// A virtual register. Contains a virtual register number and a /// class. ///