Skip to content

Commit 794b29b

Browse files
committed
temporarily remove OnceLock
1 parent 56f9077 commit 794b29b

File tree

8 files changed

+19
-31
lines changed

8 files changed

+19
-31
lines changed

cranelift/codegen/src/isa/aarch64/abi.rs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1087,13 +1087,11 @@ impl ABIMachineSpec for AArch64MachineDeps {
10871087
}
10881088
}
10891089

1090-
fn get_machine_env(flags: &settings::Flags, _call_conv: isa::CallConv) -> &MachineEnv {
1090+
fn get_machine_env(flags: &settings::Flags, _call_conv: isa::CallConv) -> MachineEnv {
10911091
if flags.enable_pinned_reg() {
1092-
static MACHINE_ENV: OnceLock<MachineEnv> = OnceLock::new();
1093-
MACHINE_ENV.get_or_init(|| create_reg_env(true))
1092+
create_reg_env(true)
10941093
} else {
1095-
static MACHINE_ENV: OnceLock<MachineEnv> = OnceLock::new();
1096-
MACHINE_ENV.get_or_init(|| create_reg_env(false))
1094+
create_reg_env(false)
10971095
}
10981096
}
10991097

cranelift/codegen/src/isa/pulley_shared/abi.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -474,9 +474,8 @@ where
474474
}
475475
}
476476

477-
fn get_machine_env(_flags: &settings::Flags, _call_conv: isa::CallConv) -> &MachineEnv {
478-
static MACHINE_ENV: OnceLock<MachineEnv> = OnceLock::new();
479-
MACHINE_ENV.get_or_init(create_reg_environment)
477+
fn get_machine_env(_flags: &settings::Flags, _call_conv: isa::CallConv) -> MachineEnv {
478+
create_reg_environment()
480479
}
481480

482481
fn get_regs_clobbered_by_call(

cranelift/codegen/src/isa/riscv64/abi.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -612,9 +612,8 @@ impl ABIMachineSpec for Riscv64MachineDeps {
612612
}
613613
}
614614

615-
fn get_machine_env(_flags: &settings::Flags, _call_conv: isa::CallConv) -> &MachineEnv {
616-
static MACHINE_ENV: OnceLock<MachineEnv> = OnceLock::new();
617-
MACHINE_ENV.get_or_init(create_reg_environment)
615+
fn get_machine_env(_flags: &settings::Flags, _call_conv: isa::CallConv) -> MachineEnv {
616+
create_reg_environment()
618617
}
619618

620619
fn get_regs_clobbered_by_call(

cranelift/codegen/src/isa/s390x/abi.rs

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -904,16 +904,10 @@ impl ABIMachineSpec for S390xMachineDeps {
904904
}
905905
}
906906

907-
fn get_machine_env(_flags: &settings::Flags, call_conv: isa::CallConv) -> &MachineEnv {
907+
fn get_machine_env(_flags: &settings::Flags, call_conv: isa::CallConv) -> MachineEnv {
908908
match call_conv {
909-
isa::CallConv::Tail => {
910-
static TAIL_MACHINE_ENV: OnceLock<MachineEnv> = OnceLock::new();
911-
TAIL_MACHINE_ENV.get_or_init(tail_create_machine_env)
912-
}
913-
_ => {
914-
static SYSV_MACHINE_ENV: OnceLock<MachineEnv> = OnceLock::new();
915-
SYSV_MACHINE_ENV.get_or_init(sysv_create_machine_env)
916-
}
909+
isa::CallConv::Tail => tail_create_machine_env(),
910+
_ => sysv_create_machine_env(),
917911
}
918912
}
919913

cranelift/codegen/src/isa/x64/abi.rs

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ use args::*;
1717
use cranelift_assembler_x64 as asm;
1818
use regalloc2::{MachineEnv, PReg, PRegSet};
1919
use smallvec::{SmallVec, smallvec};
20-
use std::sync::OnceLock;
2120

2221
/// Support for the x64 ABI from the callee side (within a function body).
2322
pub(crate) type X64Callee = Callee<X64ABIMachineSpec>;
@@ -874,13 +873,11 @@ impl ABIMachineSpec for X64ABIMachineSpec {
874873
}
875874
}
876875

877-
fn get_machine_env(flags: &settings::Flags, _call_conv: isa::CallConv) -> &MachineEnv {
876+
fn get_machine_env(flags: &settings::Flags, _call_conv: isa::CallConv) -> MachineEnv {
878877
if flags.enable_pinned_reg() {
879-
static MACHINE_ENV: OnceLock<MachineEnv> = OnceLock::new();
880-
MACHINE_ENV.get_or_init(|| create_reg_env_systemv(true))
878+
create_reg_env_systemv(true)
881879
} else {
882-
static MACHINE_ENV: OnceLock<MachineEnv> = OnceLock::new();
883-
MACHINE_ENV.get_or_init(|| create_reg_env_systemv(false))
880+
create_reg_env_systemv(false)
884881
}
885882
}
886883

cranelift/codegen/src/machinst/abi.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -575,7 +575,7 @@ pub trait ABIMachineSpec {
575575
) -> u32;
576576

577577
/// Get the ABI-dependent MachineEnv for managing register allocation.
578-
fn get_machine_env(flags: &settings::Flags, call_conv: isa::CallConv) -> &MachineEnv;
578+
fn get_machine_env(flags: &settings::Flags, call_conv: isa::CallConv) -> MachineEnv;
579579

580580
/// Get all caller-save registers, that is, registers that we expect
581581
/// not to be saved across a call to a callee with the given ABI.
@@ -1540,7 +1540,7 @@ impl<M: ABIMachineSpec> Callee<M> {
15401540
}
15411541

15421542
/// Get the ABI-dependent MachineEnv for managing register allocation.
1543-
pub fn machine_env(&self) -> &MachineEnv {
1543+
pub fn machine_env(&self) -> MachineEnv {
15441544
M::get_machine_env(&self.flags, self.call_conv)
15451545
}
15461546

cranelift/codegen/src/machinst/compile.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ pub fn compile<B: LowerBackend + TargetIsa>(
6969
RegallocAlgorithm::SinglePass => Algorithm::Fastalloc,
7070
};
7171

72-
regalloc2::run(&vcode, vcode.abi.machine_env(), &options)
72+
regalloc2::run(&vcode, &vcode.abi.machine_env(), &options)
7373
.map_err(|err| {
7474
log::error!(
7575
"Register allocation error for vcode\n{vcode:?}\nError: {err:?}\nCLIF for error:\n{f:?}",
@@ -82,7 +82,8 @@ pub fn compile<B: LowerBackend + TargetIsa>(
8282
// Run the regalloc checker, if requested.
8383
if b.flags().regalloc_checker() {
8484
let _tt = timing::regalloc_checker();
85-
let mut checker = regalloc2::checker::Checker::new(&vcode, vcode.abi.machine_env());
85+
let machine_env = vcode.abi.machine_env();
86+
let mut checker = regalloc2::checker::Checker::new(&vcode, &machine_env);
8687
checker.prepare(&regalloc_result);
8788
checker
8889
.run()

cranelift/codegen/src/machinst/vcode.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -516,7 +516,7 @@ impl<I: VCodeInst> VCodeBuilder<I> {
516516
}
517517

518518
fn collect_operands(&mut self, vregs: &VRegAllocator<I>) {
519-
let allocatable = PRegSet::from(self.vcode.abi.machine_env());
519+
let allocatable = PRegSet::from(&self.vcode.abi.machine_env());
520520
for (i, insn) in self.vcode.insts.iter_mut().enumerate() {
521521
// Push operands from the instruction onto the operand list.
522522
//

0 commit comments

Comments
 (0)