Fix hw1 fuzzer again

This commit is contained in:
Jeehoon Kang
2020-03-28 18:29:04 +09:00
parent 938390821f
commit 2a5a5e71ed
21 changed files with 500 additions and 110 deletions

View File

@@ -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");
}
}

View File

@@ -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

View File

@@ -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);

View File

@@ -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