feat: add constant folding and dead code elimination passes
This commit is contained in:
+9
-1
@@ -5,6 +5,8 @@ use clap::Parser as ClapParser;
|
||||
use crate::frontend::parser::Parser;
|
||||
use crate::frontend::sema::Sema;
|
||||
use crate::middle::builder::MirBuilder;
|
||||
use crate::middle::dce::eliminate_dead_code;
|
||||
use crate::middle::fold::fold_constants;
|
||||
|
||||
pub mod backend;
|
||||
pub mod frontend;
|
||||
@@ -57,7 +59,13 @@ fn main() {
|
||||
exit(1);
|
||||
}
|
||||
|
||||
let mir_module = MirBuilder::build(&typed_module);
|
||||
let mut mir_module = MirBuilder::build(&typed_module);
|
||||
fold_constants(&mut mir_module);
|
||||
let warnings = eliminate_dead_code(&mut mir_module);
|
||||
|
||||
for warning in warnings {
|
||||
eprintln!("Warning: {} at {:?}", warning.message, warning.span);
|
||||
}
|
||||
|
||||
let backend = CraneliftBackend::new();
|
||||
let (ir, obj_bytes) = backend.compile_module(&mir_module);
|
||||
|
||||
Reference in New Issue
Block a user