@@ -48,7 +48,8 @@ pub fn prove_execution(
4848 dot_products,
4949 vm_multilinear_evals,
5050 public_memory_size,
51- memory,
51+ non_zero_memory_size,
52+ memory, // padded with zeros to next power of two
5253 } = info_span ! ( "Witness generation" ) . in_scope ( || {
5354 let execution_result = execute_bytecode (
5455 bytecode,
@@ -62,10 +63,9 @@ pub fn prove_execution(
6263 } ) ;
6364
6465 let public_memory = & memory[ ..public_memory_size] ;
65- let private_memory = & memory[ public_memory_size..] ;
66- let log_memory = log2_ceil_usize ( memory. len ( ) ) ;
66+ let private_memory = & memory[ public_memory_size..non_zero_memory_size ] ;
67+ let log_memory = log2_strict_usize ( memory. len ( ) ) ;
6768 let log_public_memory = log2_strict_usize ( public_memory. len ( ) ) ;
68- let padded_memory = padd_with_zero_to_next_power_of_two ( & memory) ; // TODO avoid this padding
6969
7070 let n_cycles = full_trace[ 0 ] . len ( ) ;
7171 let log_n_cycles = log2_strict_usize ( n_cycles) ;
@@ -215,7 +215,7 @@ pub fn prove_execution(
215215
216216 let base_pols = [
217217 vec ! [
218- padded_memory . as_slice( ) ,
218+ memory . as_slice( ) ,
219219 full_trace[ COL_INDEX_PC ] . as_slice( ) ,
220220 full_trace[ COL_INDEX_FP ] . as_slice( ) ,
221221 full_trace[ COL_INDEX_MEM_ADDRESS_A ] . as_slice( ) ,
@@ -724,7 +724,7 @@ pub fn prove_execution(
724724 } ) ;
725725 }
726726
727- let poseidon_folded_memory = fold_multilinear ( & padded_memory , & memory_folding_challenges) ;
727+ let poseidon_folded_memory = fold_multilinear ( & memory , & memory_folding_challenges) ;
728728
729729 let mut poseidon_poly_eq_point = EF :: zero_vec ( max_n_poseidons * 8 ) ;
730730 for ( i, statement) in poseidon_lookup_statements. iter ( ) . enumerate ( ) {
@@ -977,7 +977,7 @@ pub fn prove_execution(
977977 ) ;
978978 let base_memory_pushforward = compute_pushforward (
979979 & base_memory_indexes,
980- padded_memory . len ( ) ,
980+ memory . len ( ) ,
981981 & base_memory_poly_eq_point,
982982 ) ;
983983
@@ -989,8 +989,8 @@ pub fn prove_execution(
989989 ] ;
990990
991991 let extension_dims = vec ! [
992- ColDims :: padded( memory . len ( ) , EF :: ZERO ) , // memory
993- ColDims :: padded( memory . len ( ) . div_ceil( VECTOR_LEN ) , EF :: ZERO ) , // memory (folded)
992+ ColDims :: padded( non_zero_memory_size , EF :: ZERO ) , // memory
993+ ColDims :: padded( non_zero_memory_size . div_ceil( VECTOR_LEN ) , EF :: ZERO ) , // memory (folded)
994994 ColDims :: padded( bytecode. instructions. len( ) , EF :: ZERO ) , // bytecode
995995 ] ;
996996
@@ -1009,7 +1009,7 @@ pub fn prove_execution(
10091009
10101010 let base_memory_logup_star_statements = prove_logup_star (
10111011 & mut prover_state,
1012- & padded_memory ,
1012+ & memory ,
10131013 & base_memory_indexes,
10141014 base_memory_lookup_statement_1. value
10151015 + memory_poly_eq_point_alpha * base_memory_lookup_statement_2. value
0 commit comments