Skip to content

Commit 85b82fa

Browse files
committed
get rid of a dyn to use par_iter
1 parent c45dc7d commit 85b82fa

File tree

2 files changed

+13
-11
lines changed

2 files changed

+13
-11
lines changed

crates/intrinsic-test/src/arm/mod.rs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
use rayon::prelude::*;
2+
13
mod compile;
24
mod config;
35
mod intrinsic;
@@ -8,7 +10,7 @@ use crate::common::SupportedArchitectureTest;
810
use crate::common::cli::ProcessedCli;
911
use crate::common::compare::compare_outputs;
1012
use crate::common::gen_rust::compile_rust_programs;
11-
use crate::common::intrinsic::{Intrinsic, IntrinsicDefinition};
13+
use crate::common::intrinsic::Intrinsic;
1214
use crate::common::intrinsic_helpers::TypeKind;
1315
use crate::common::write_file::{write_c_testfiles, write_rust_testfiles};
1416
use compile::compile_c_arm;
@@ -57,9 +59,7 @@ impl SupportedArchitectureTest for ArmArchitectureTest {
5759
let c_target = "aarch64";
5860

5961
let intrinsics_name_list = write_c_testfiles(
60-
self.intrinsics
61-
.iter()
62-
.map(|i| i as &dyn IntrinsicDefinition<_>),
62+
self.intrinsics.par_iter(),
6363
target,
6464
c_target,
6565
&["arm_neon.h", "arm_acle.h", "arm_fp16.h"],
@@ -88,9 +88,7 @@ impl SupportedArchitectureTest for ArmArchitectureTest {
8888
let toolchain = self.cli_options.toolchain.as_deref();
8989
let linker = self.cli_options.linker.as_deref();
9090
let intrinsics_name_list = write_rust_testfiles(
91-
self.intrinsics
92-
.iter()
93-
.map(|i| i as &dyn IntrinsicDefinition<_>),
91+
self.intrinsics.par_iter(),
9492
rust_target,
9593
&build_notices("// "),
9694
F16_FORMATTING_DEF,

crates/intrinsic-test/src/common/write_file.rs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@ use super::gen_rust::create_rust_test_program;
44
use super::intrinsic::IntrinsicDefinition;
55
use super::intrinsic_helpers::IntrinsicTypeDefinition;
66

7-
pub fn write_c_testfiles<'a, T, I>(
7+
use rayon::prelude::*;
8+
9+
pub fn write_c_testfiles<'a, T, I, E>(
810
intrinsics: I,
911
target: &str,
1012
c_target: &str,
@@ -14,7 +16,8 @@ pub fn write_c_testfiles<'a, T, I>(
1416
) -> std::io::Result<Vec<String>>
1517
where
1618
T: IntrinsicTypeDefinition + Sized + 'a,
17-
I: Iterator<Item = &'a dyn IntrinsicDefinition<T>>,
19+
I: ParallelIterator<Item = &'a E>,
20+
E: IntrinsicDefinition<T> + 'a,
1821
{
1922
std::fs::create_dir_all("c_programs")?;
2023

@@ -38,7 +41,7 @@ where
3841
.collect()
3942
}
4043

41-
pub fn write_rust_testfiles<'a, T, I>(
44+
pub fn write_rust_testfiles<'a, T, I, E>(
4245
intrinsics: I,
4346
rust_target: &str,
4447
notice: &str,
@@ -47,7 +50,8 @@ pub fn write_rust_testfiles<'a, T, I>(
4750
) -> std::io::Result<Vec<String>>
4851
where
4952
T: IntrinsicTypeDefinition + Sized + 'a,
50-
I: Iterator<Item = &'a dyn IntrinsicDefinition<T>>,
53+
I: ParallelIterator<Item = &'a E>,
54+
E: IntrinsicDefinition<T> + 'a,
5155
{
5256
std::fs::create_dir_all("rust_programs")?;
5357

0 commit comments

Comments
 (0)