Skip to content

Commit

Permalink
Bump regalloc2 to 0.5.0 (bytecodealliance#5345)
Browse files Browse the repository at this point in the history
* Bump the regalloc2 dependency to 0.5.0
* Replace preg_set_from_machine_env with PRegSet::from
* Vet the regalloc2 update
  • Loading branch information
elliottt authored Nov 29, 2022
1 parent 3b76874 commit f138fc0
Show file tree
Hide file tree
Showing 6 changed files with 13 additions and 27 deletions.
4 changes: 2 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion cranelift/codegen/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ serde = { version = "1.0.94", features = ["derive"], optional = true }
bincode = { version = "1.2.1", optional = true }
gimli = { workspace = true, features = ["write"], optional = true }
smallvec = { workspace = true }
regalloc2 = { version = "0.4.2", features = ["checker"] }
regalloc2 = { version = "0.5.0", features = ["checker"] }
souper-ir = { version = "2.1.0", optional = true }
sha2 = { version = "0.10.2", optional = true }
# It is a goal of the cranelift-codegen crate to have minimal external dependencies.
Expand Down
4 changes: 2 additions & 2 deletions cranelift/codegen/src/machinst/lower.rs
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ use regalloc2::{MachineEnv, PRegSet};
use smallvec::{smallvec, SmallVec};
use std::fmt::Debug;

use super::{preg_set_from_machine_env, VCodeBuildDirection, VRegAllocator};
use super::{VCodeBuildDirection, VRegAllocator};

/// An "instruction color" partitions CLIF instructions by side-effecting ops.
/// All instructions with the same "color" are guaranteed not to be separated by
Expand Down Expand Up @@ -417,7 +417,7 @@ impl<'func, I: VCodeInst> Lower<'func, I> {
Ok(Lower {
f,
flags,
allocatable: preg_set_from_machine_env(machine_env),
allocatable: PRegSet::from(machine_env),
vcode,
vregs,
value_regs,
Expand Down
22 changes: 1 addition & 21 deletions cranelift/codegen/src/machinst/reg.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
use alloc::{string::String, vec::Vec};
use core::{fmt::Debug, hash::Hash};
use regalloc2::{Allocation, MachineEnv, Operand, OperandConstraint, PReg, PRegSet, VReg};
use regalloc2::{Allocation, Operand, OperandConstraint, PReg, PRegSet, VReg};

#[cfg(feature = "enable-serde")]
use serde::{Deserialize, Serialize};
Expand Down Expand Up @@ -38,26 +38,6 @@ pub fn first_user_vreg_index() -> usize {
PINNED_VREGS
}

/// Collect the registers from a regalloc2 MachineEnv into a PRegSet.
/// TODO: remove this once it's upstreamed in regalloc2
pub fn preg_set_from_machine_env(machine_env: &MachineEnv) -> PRegSet {
let mut regs = PRegSet::default();

for class in machine_env.preferred_regs_by_class.iter() {
for reg in class.iter() {
regs.add(*reg);
}
}

for class in machine_env.non_preferred_regs_by_class.iter() {
for reg in class.iter() {
regs.add(*reg);
}
}

regs
}

/// A register named in an instruction. This register can be either a
/// virtual register or a fixed physical register. It does not have
/// any constraints applied to it: those can be added later in
Expand Down
6 changes: 6 additions & 0 deletions supply-chain/audits.toml
Original file line number Diff line number Diff line change
Expand Up @@ -416,6 +416,12 @@ criteria = "safe-to-deploy"
delta = "0.4.1 -> 0.4.2"
notes = "The Bytecode Alliance is the author of this crate."

[[audits.regalloc2]]
who = "Trevor Elliott <telliott@fastly.com>"
criteria = "safe-to-deploy"
delta = "0.4.2 -> 0.5.0"
notes = "The Bytecode Alliance is the author of this crate."

[[audits.rustc-demangle]]
who = "Alex Crichton <alex@alexcrichton.com>"
criteria = "safe-to-deploy"
Expand Down
2 changes: 1 addition & 1 deletion winch/codegen/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ target-lexicon = { workspace = true, features = ["std"] }
# In the next iteration we'll factor out the common bits so that they can be consumed
# by Cranelift and Winch.
cranelift-codegen = { workspace = true }
regalloc2 = "0.4.2"
regalloc2 = "0.5.0"

[features]
x64 = ["cranelift-codegen/x86"]
Expand Down

0 comments on commit f138fc0

Please sign in to comment.