Skip to content

Commit c6b6dfe

Browse files
committed
Use Vec instead of SimpleInstructionArgs type
The underlying ArrayVec needs to be boxed anyways, so there isn't even a performance benefit.
1 parent f54730d commit c6b6dfe

File tree

4 files changed

+8
-153
lines changed

4 files changed

+8
-153
lines changed

src/ast/functions.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
pub use self::args::SimpleInstructionArgs;
21
use crate::ast::data::Constant;
32
use crate::ast::linkage::Linkage;
43
use crate::ast::types::{AbiType, BaseType};
@@ -10,7 +9,6 @@ use std::fmt;
109
use std::fmt::{Display, Formatter, Write};
1110
use std::str::FromStr;
1211

13-
mod args;
1412
mod parse;
1513
#[cfg(test)]
1614
mod test;
@@ -284,7 +282,7 @@ impl_enum_display!(
284282
pub struct SimpleInstruction {
285283
pub span: Span,
286284
pub dest_info: Option<InsnDestInfo>,
287-
pub args: SimpleInstructionArgs,
285+
pub args: Vec<Value>,
288286
pub name: Ident,
289287
}
290288
impl SimpleInstruction {

src/ast/functions/args.rs

Lines changed: 0 additions & 138 deletions
This file was deleted.

src/ast/functions/parse.rs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ use crate::ast::data::Constant;
22
use crate::ast::functions::{
33
CallArgument, CallInstruction, EnvironmentParamDef, FunctionBlock, FunctionBody, FunctionDef,
44
InsnDestInfo, JumpInstruction, JumpInstructionKind, ParamDef, PhiArg, PhiInstruction,
5-
RegularCallArgument, RegularInstruction, RegularParamDef, SimpleInstruction,
6-
SimpleInstructionArgs, ThreadLocalRef, Value, VariadicParamDef,
5+
RegularCallArgument, RegularInstruction, RegularParamDef, SimpleInstruction, ThreadLocalRef,
6+
Value, VariadicParamDef,
77
};
88
use crate::ast::linkage::Linkage;
99
use crate::ast::types::{AbiType, BaseType};
@@ -284,10 +284,8 @@ impl Parse for SimpleInstruction {
284284
let values = Value::parser()
285285
.separated_by(operator!(,).parser())
286286
.at_least(1)
287-
.at_most(SimpleInstructionArgs::LIMIT)
288287
.allow_trailing()
289-
.collect::<Vec<_>>()
290-
.map(|values| SimpleInstructionArgs::try_from(&*values).unwrap());
288+
.collect::<Vec<_>>();
291289
InsnDestInfo::parser()
292290
.or_not()
293291
.then(Ident::parser())

src/ast/functions/test.rs

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use crate::ast::data::Constant;
22
use crate::ast::functions::{
33
CallArgument, CallInstruction, FunctionBlock, FunctionBody, FunctionDef, InsnDestInfo,
44
JumpInstruction, ParamDef, PhiArg, PhiInstruction, RegularCallArgument, RegularInstruction,
5-
RegularParamDef, SimpleInstruction, SimpleInstructionArgs, Value, VariadicParamDef,
5+
RegularParamDef, SimpleInstruction, Value, VariadicParamDef,
66
};
77
use crate::ast::linkage::Linkage;
88
use crate::ast::types::BaseType;
@@ -56,10 +56,7 @@ fn loop_func() -> FunctionDef {
5656
dest: TemporaryName::unspanned("x1"),
5757
ty: BaseType::Word,
5858
}),
59-
args: SimpleInstructionArgs::from([
60-
TemporaryName::unspanned("x").into(),
61-
Value::from(1),
62-
]),
59+
args: vec![TemporaryName::unspanned("x").into(), Value::from(1)],
6360
name: Ident::unspanned("sub"),
6461
})],
6562
terminator: Some(JumpInstruction::JumpNonZero {
@@ -137,14 +134,14 @@ fn variadic_add3() -> FunctionDef {
137134
ty: BaseType::Long,
138135
dest: TemporaryName::unspanned("ap"),
139136
}),
140-
args: SimpleInstructionArgs::from([32.into()]),
137+
args: vec![32.into()],
141138
}
142139
.into(),
143140
SimpleInstruction {
144141
span: Span::MISSING,
145142
dest_info: None,
146143
name: Ident::unspanned("vastart"),
147-
args: SimpleInstructionArgs::from([TemporaryName::unspanned("ap").into()]),
144+
args: vec![TemporaryName::unspanned("ap").into()],
148145
}
149146
.into(),
150147
CallInstruction {

0 commit comments

Comments
 (0)