mirror of
https://github.com/kmc7468/cs420.git
synced 2025-12-14 22:38:46 +00:00
Fix hw1 fuzzer again
This commit is contained in:
16
bin/fuzz.rs
16
bin/fuzz.rs
@@ -27,4 +27,20 @@ fn main() {
|
||||
if matches.is_present("irgen") {
|
||||
kecc::test_irgen(&unit, Path::new(&input));
|
||||
}
|
||||
|
||||
if matches.is_present("simplify-cfg") {
|
||||
todo!("test simplify-cfg");
|
||||
}
|
||||
|
||||
if matches.is_present("mem2erg") {
|
||||
todo!("test mem2reg");
|
||||
}
|
||||
|
||||
if matches.is_present("deadcode") {
|
||||
todo!("test deadcode");
|
||||
}
|
||||
|
||||
if matches.is_present("gvn") {
|
||||
todo!("test gvn");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,18 @@ args:
|
||||
short: i
|
||||
long: irgen
|
||||
help: Fuzzes irgen
|
||||
- simplify-cfg:
|
||||
long: simplify-cfg
|
||||
help: Performs simplify-cfg
|
||||
- mem2reg:
|
||||
long: mem2reg
|
||||
help: Performs mem2reg
|
||||
- deadcode:
|
||||
long: deadcode
|
||||
help: Performs deadcode elimination
|
||||
- gvn:
|
||||
long: gvn
|
||||
help: Performs gvn
|
||||
- INPUT:
|
||||
help: Sets the input file to use
|
||||
required: true
|
||||
|
||||
24
bin/kecc.rs
24
bin/kecc.rs
@@ -5,7 +5,9 @@ use clap::{crate_authors, crate_description, crate_version, App};
|
||||
#[macro_use]
|
||||
extern crate kecc;
|
||||
|
||||
use kecc::{write, Asmgen, Irgen, Optimize, Parse, Translate, O1};
|
||||
use kecc::{
|
||||
write, Asmgen, Deadcode, Gvn, Irgen, Mem2reg, Optimize, Parse, SimplifyCfg, Translate, O1,
|
||||
};
|
||||
|
||||
fn main() {
|
||||
let yaml = load_yaml!("kecc_cli.yml");
|
||||
@@ -26,6 +28,10 @@ fn main() {
|
||||
Box::new(ok_or_exit!(::std::fs::File::open(output), 1))
|
||||
};
|
||||
|
||||
if matches.is_present("parse") {
|
||||
return;
|
||||
}
|
||||
|
||||
if matches.is_present("print") {
|
||||
write(&unit, &mut output).unwrap();
|
||||
return;
|
||||
@@ -45,6 +51,22 @@ fn main() {
|
||||
|
||||
if matches.is_present("optimize") {
|
||||
O1::default().optimize(&mut ir);
|
||||
} else {
|
||||
if matches.is_present("simplify-cfg") {
|
||||
SimplifyCfg::default().optimize(&mut ir);
|
||||
}
|
||||
|
||||
if matches.is_present("mem2erg") {
|
||||
Mem2reg::default().optimize(&mut ir);
|
||||
}
|
||||
|
||||
if matches.is_present("deadcode") {
|
||||
Deadcode::default().optimize(&mut ir);
|
||||
}
|
||||
|
||||
if matches.is_present("gvn") {
|
||||
Gvn::default().optimize(&mut ir);
|
||||
}
|
||||
}
|
||||
|
||||
let asm = ok_or_exit!(Asmgen::default().translate(&ir), 1);
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
name: kecc
|
||||
args:
|
||||
- parse:
|
||||
long: parse
|
||||
help: Parses the input file
|
||||
- print:
|
||||
short: p
|
||||
long: print
|
||||
@@ -12,6 +15,18 @@ args:
|
||||
short: O
|
||||
long: optimize
|
||||
help: Optimizes IR
|
||||
- simplify-cfg:
|
||||
long: simplify-cfg
|
||||
help: Performs simplify-cfg
|
||||
- mem2reg:
|
||||
long: mem2reg
|
||||
help: Performs mem2reg
|
||||
- deadcode:
|
||||
long: deadcode
|
||||
help: Performs deadcode elimination
|
||||
- gvn:
|
||||
long: gvn
|
||||
help: Performs gvn
|
||||
- output:
|
||||
short: o
|
||||
long: output
|
||||
|
||||
Reference in New Issue
Block a user