Skip to content
Snippets Groups Projects
Commit f054aa2d authored by Per's avatar Per
Browse files

printing module

parent d69cc691
Branches
No related tags found
No related merge requests found
...@@ -10,7 +10,9 @@ use inkwell::{ ...@@ -10,7 +10,9 @@ use inkwell::{
module::Module, module::Module,
passes::PassManager, passes::PassManager,
types::BasicTypeEnum, types::BasicTypeEnum,
values::{BasicValueEnum, FloatValue, FunctionValue, IntValue, PointerValue}, values::{
BasicValueEnum, FloatValue, FunctionValue, IntValue, PointerValue,
},
FloatPredicate, OptimizationLevel, FloatPredicate, OptimizationLevel,
}; };
use std::collections::HashMap; use std::collections::HashMap;
...@@ -83,9 +85,12 @@ fn jit_compile_sum( ...@@ -83,9 +85,12 @@ fn jit_compile_sum(
fn main() -> Result<(), Box<dyn Error>> { fn main() -> Result<(), Box<dyn Error>> {
let context = Context::create(); let context = Context::create();
let module = context.create_module("expr"); let mut module = context.create_module("expr");
let builder = context.create_builder(); let builder = context.create_builder();
let execution_engine = module.create_jit_execution_engine(OptimizationLevel::None)?; let execution_engine =
module.create_jit_execution_engine(OptimizationLevel::None)?;
// let passmanager = PassManager::create(input: I)
match parse_expr(Span::new( match parse_expr(Span::new(
" "
...@@ -94,7 +99,13 @@ fn main() -> Result<(), Box<dyn Error>> { ...@@ -94,7 +99,13 @@ fn main() -> Result<(), Box<dyn Error>> {
)) { )) {
Ok((_, e)) => { Ok((_, e)) => {
println!("{:?}", &e); println!("{:?}", &e);
let fun_expr = jit_compile_sum(&e, &context, &module, &builder, &execution_engine) let fun_expr = jit_compile_sum(
&e,
&context,
&module,
&builder,
&execution_engine,
)
.ok_or("Unable to JIT compile `expr`")?; .ok_or("Unable to JIT compile `expr`")?;
unsafe { unsafe {
...@@ -103,6 +114,7 @@ fn main() -> Result<(), Box<dyn Error>> { ...@@ -103,6 +114,7 @@ fn main() -> Result<(), Box<dyn Error>> {
} }
_ => panic!(), _ => panic!(),
} }
println!("module: {}", module.print_to_string());
Ok(()) Ok(())
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment