Expose ssa verification as a regalloc2 option (#102)

Adds the validate_ssa flag to the RegallocOptions struct, enabling ssa validation of inputs before register allocation takes place.
This commit is contained in:
Trevor Elliott
2022-11-29 09:30:59 -08:00
committed by GitHub
parent 25b08c6cff
commit 7f0d0b98d0
7 changed files with 16 additions and 5 deletions

View File

@@ -11,5 +11,6 @@ fuzz_target!(|func: Func| {
let _ = env_logger::try_init();
log::trace!("func:\n{:?}", func);
let env = regalloc2::fuzzing::func::machine_env();
let _out = regalloc2::fuzzing::ion::run(&func, &env, false).expect("regalloc did not succeed");
let _out =
regalloc2::fuzzing::ion::run(&func, &env, false, false).expect("regalloc did not succeed");
});

View File

@@ -40,7 +40,8 @@ fuzz_target!(|testcase: TestCase| {
let _ = env_logger::try_init();
log::trace!("func:\n{:?}", func);
let env = regalloc2::fuzzing::func::machine_env();
let out = regalloc2::fuzzing::ion::run(&func, &env, true).expect("regalloc did not succeed");
let out =
regalloc2::fuzzing::ion::run(&func, &env, true, false).expect("regalloc did not succeed");
let mut checker = Checker::new(&func, &env);
checker.prepare(&out);

View File

@@ -8,7 +8,7 @@ use regalloc2::fuzzing::arbitrary::{Arbitrary, Result, Unstructured};
use regalloc2::fuzzing::cfg::CFGInfo;
use regalloc2::fuzzing::func::{Func, Options};
use regalloc2::fuzzing::fuzz_target;
use regalloc2::fuzzing::ssa::validate_ssa;
use regalloc2::ssa::validate_ssa;
#[derive(Debug)]
struct TestCase {