Skip to content

Commit

Permalink
fuzzgen: Add stack map variables
Browse files Browse the repository at this point in the history
  • Loading branch information
afonso360 committed Jul 11, 2024
1 parent ab2aae5 commit 45db6cb
Showing 1 changed file with 10 additions and 3 deletions.
13 changes: 10 additions & 3 deletions cranelift/fuzzgen/src/function_generator.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1879,19 +1879,26 @@ where
.iter()
.map(|param| param.value_type)
.zip(builder.block_params(block).iter().copied())
.collect();
.map(|(ty, param)| Ok((ty, param, self.u.arbitrary()?)))
.collect::<Result<Vec<_>>>()?;

// Create a pool of vars that are going to be used in this function
for _ in 0..self.param(&self.config.vars_per_function)? {
let ty = self.u._type((&*self.isa).supports_simd())?;
let value = self.generate_const(builder, ty)?;
vars.push((ty, value));
let uses_stack_map = self.u.arbitrary()?;
vars.push((ty, value, uses_stack_map));
}

for (id, (ty, value)) in vars.into_iter().enumerate() {
for (id, (ty, value, uses_stack_map)) in vars.into_iter().enumerate() {
let var = Variable::new(id);
builder.declare_var(var, ty);
builder.def_var(var, value);

if uses_stack_map {
builder.declare_var_needs_stack_map(var);
}

self.resources
.vars
.entry(ty)
Expand Down

0 comments on commit 45db6cb

Please sign in to comment.