chore: moved chunk_info to common and code cleanup

This commit is contained in:
Madhav Madhusoodanan 2025-08-05 13:27:36 +05:30
parent 76dce27325
commit e84116db8e
4 changed files with 34 additions and 35 deletions

View file

@ -2,7 +2,7 @@ use super::intrinsic::ArmIntrinsicType;
use crate::common::argument::{Argument, ArgumentList};
use crate::common::constraint::Constraint;
use crate::common::intrinsic::Intrinsic;
use crate::common::intrinsic_helpers::{IntrinsicType, IntrinsicTypeDefinition};
use crate::common::intrinsic_helpers::IntrinsicType;
use serde::Deserialize;
use serde_json::Value;
use std::collections::HashMap;

View file

@ -9,8 +9,6 @@ use std::fs::{self, File};
use rayon::prelude::*;
use crate::arm::config::POLY128_OSTREAM_DEF;
use crate::common::SupportedArchitectureTest;
use crate::common::cli::ProcessedCli;
use crate::common::compare::compare_outputs;
use crate::common::gen_c::{write_main_cpp, write_mod_cpp};
@ -19,7 +17,8 @@ use crate::common::gen_rust::{
};
use crate::common::intrinsic::Intrinsic;
use crate::common::intrinsic_helpers::TypeKind;
use config::{AARCH_CONFIGURATIONS, F16_FORMATTING_DEF, build_notices};
use crate::common::{SupportedArchitectureTest, chunk_info};
use config::{AARCH_CONFIGURATIONS, F16_FORMATTING_DEF, POLY128_OSTREAM_DEF, build_notices};
use intrinsic::ArmIntrinsicType;
use json_parser::get_neon_intrinsics;
@ -28,13 +27,6 @@ pub struct ArmArchitectureTest {
cli_options: ProcessedCli,
}
fn chunk_info(intrinsic_count: usize) -> (usize, usize) {
let available_parallelism = std::thread::available_parallelism().unwrap().get();
let chunk_size = intrinsic_count.div_ceil(Ord::min(available_parallelism, intrinsic_count));
(chunk_size, intrinsic_count.div_ceil(chunk_size))
}
impl SupportedArchitectureTest for ArmArchitectureTest {
fn create(cli_options: ProcessedCli) -> Box<Self> {
let a32 = cli_options.target.contains("v7");

View file

@ -8,9 +8,7 @@ impl IntrinsicTypeDefinition for ArmIntrinsicType {
let prefix = self.kind.c_prefix();
let const_prefix = if self.constant { "const " } else { "" };
if let (Some(bit_len), simd_len, vec_len) =
(self.bit_len, self.simd_len, self.vec_len)
{
if let (Some(bit_len), simd_len, vec_len) = (self.bit_len, self.simd_len, self.vec_len) {
match (simd_len, vec_len) {
(None, None) => format!("{const_prefix}{prefix}{bit_len}_t"),
(Some(simd), None) => format!("{prefix}{bit_len}x{simd}_t"),
@ -102,7 +100,7 @@ impl IntrinsicTypeDefinition for ArmIntrinsicType {
}
}
impl ArmIntrinsicType {
impl ArmIntrinsicType {
pub fn from_c(s: &str, target: &str) -> Result<Self, String> {
const CONST_STR: &str = "const";
if let Some(s) = s.strip_suffix('*') {
@ -144,34 +142,36 @@ impl ArmIntrinsicType {
),
None => None,
};
Ok(ArmIntrinsicType{
Ok(ArmIntrinsicType {
data: IntrinsicType {
ptr: false,
ptr_constant: false,
constant,
kind: arg_kind,
bit_len: Some(bit_len),
simd_len,
vec_len,
},
target: target.to_string()})
ptr: false,
ptr_constant: false,
constant,
kind: arg_kind,
bit_len: Some(bit_len),
simd_len,
vec_len,
},
target: target.to_string(),
})
} else {
let kind = start.parse::<TypeKind>()?;
let bit_len = match kind {
TypeKind::Int(_) => Some(32),
_ => None,
};
Ok(ArmIntrinsicType{
Ok(ArmIntrinsicType {
data: IntrinsicType {
ptr: false,
ptr_constant: false,
constant,
kind: start.parse::<TypeKind>()?,
bit_len,
simd_len: None,
vec_len: None,
},
target: target.to_string()})
ptr: false,
ptr_constant: false,
constant,
kind: start.parse::<TypeKind>()?,
bit_len,
simd_len: None,
vec_len: None,
},
target: target.to_string(),
})
}
}
}

View file

@ -22,3 +22,10 @@ pub trait SupportedArchitectureTest {
fn build_rust_file(&self) -> bool;
fn compare_outputs(&self) -> bool;
}
pub fn chunk_info(intrinsic_count: usize) -> (usize, usize) {
let available_parallelism = std::thread::available_parallelism().unwrap().get();
let chunk_size = intrinsic_count.div_ceil(Ord::min(available_parallelism, intrinsic_count));
(chunk_size, intrinsic_count.div_ceil(chunk_size))
}