From 05efcfba2b19a7b8b2d1048226d0bb0a8f9ca088 Mon Sep 17 00:00:00 2001 From: sirasistant Date: Fri, 12 Jan 2024 12:33:11 +0000 Subject: [PATCH] feat: experimental optimization --- noir/compiler/noirc_evaluator/src/ssa/acir_gen/mod.rs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/noir/compiler/noirc_evaluator/src/ssa/acir_gen/mod.rs b/noir/compiler/noirc_evaluator/src/ssa/acir_gen/mod.rs index a1c96a3cd232..bc3dff63fe8a 100644 --- a/noir/compiler/noirc_evaluator/src/ssa/acir_gen/mod.rs +++ b/noir/compiler/noirc_evaluator/src/ssa/acir_gen/mod.rs @@ -2428,8 +2428,7 @@ impl Context { } } -// We can omit the element size array for arrays which have elements of size 1 and do not contain slices. -// TODO: remove restriction on size 1 elements. +// We can omit the element size array for arrays which don't contain arrays or slices. fn can_omit_element_sizes_array(array_typ: &Type) -> bool { if array_typ.contains_slice_element() { return false; @@ -2438,5 +2437,5 @@ fn can_omit_element_sizes_array(array_typ: &Type) -> bool { panic!("ICE: expected array type"); }; - types.len() == 1 && types[0].flattened_size() == 1 + !types.iter().any(|typ| typ.contains_an_array()) }