peepmatic: Make peepmatic optional to enable
Rather than outright replacing parts of our existing peephole optimizations passes, this makes peepmatic an optional cargo feature that can be enabled. This allows us to take a conservative approach with enabling peepmatic everywhere, while also allowing us to get it in-tree and make it easier to collaborate on improving it quickly.
This commit is contained in:
@@ -39,6 +39,16 @@ impl SubTest for TestSimplePreopt {
|
||||
.map_err(|e| pretty_error(&comp_ctx.func, context.isa, Into::into(e)))?;
|
||||
let text = &comp_ctx.func.display(isa).to_string();
|
||||
log::debug!("After simple_preopt:\n{}", text);
|
||||
run_filecheck(&text, context)
|
||||
|
||||
// Only actually run the filecheck if peepmatic is *not* enabled,
|
||||
// because it can generate slightly different code (alias a result vs
|
||||
// replace an instruction) than the non-peepmatic versions of peephole
|
||||
// optimizations. Note that the `peepmatic`-based results can be tested
|
||||
// with the `test peepmatic` subtest.
|
||||
if cfg!(feature = "enable-peepmatic") {
|
||||
Ok(())
|
||||
} else {
|
||||
run_filecheck(&text, context)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user