Skip to content

Commit 6e104e0

Browse files
committed
Filter call var assignments
1 parent 8fdcbff commit 6e104e0

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

Diff for: executor/src/witgen/jit/block_machine_processor.rs

+31
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,37 @@ impl<'a, T: FieldElement> BlockMachineProcessor<'a, T> {
198198

199199
result.code = self.try_ensure_block_shape(result.code, &requested_known)?;
200200

201+
let needed_machine_call_variables = result
202+
.code
203+
.iter()
204+
.flat_map(|effect| {
205+
if let Effect::MachineCall(_, _, arguments) = effect {
206+
for a in arguments {
207+
assert!(matches!(a, Variable::MachineCallParam(_)));
208+
}
209+
arguments.clone()
210+
} else {
211+
vec![]
212+
}
213+
})
214+
.collect::<BTreeSet<_>>();
215+
216+
result.code = result
217+
.code
218+
.into_iter()
219+
.filter(|effect| {
220+
if let Effect::Assignment(variable, _) = effect {
221+
if let Variable::MachineCallParam(_) = variable {
222+
needed_machine_call_variables.contains(variable)
223+
} else {
224+
true
225+
}
226+
} else {
227+
true
228+
}
229+
})
230+
.collect();
231+
201232
Ok((result, prover_functions))
202233
}
203234

0 commit comments

Comments
 (0)