diff options
Diffstat (limited to 'users/grfn/achilles/src/codegen/mod.rs')
-rw-r--r-- | users/grfn/achilles/src/codegen/mod.rs | 25 |
1 files changed, 0 insertions, 25 deletions
diff --git a/users/grfn/achilles/src/codegen/mod.rs b/users/grfn/achilles/src/codegen/mod.rs deleted file mode 100644 index 8ef057dba04f..000000000000 --- a/users/grfn/achilles/src/codegen/mod.rs +++ /dev/null @@ -1,25 +0,0 @@ -pub mod llvm; - -use inkwell::execution_engine::JitFunction; -use inkwell::OptimizationLevel; -pub use llvm::*; - -use crate::ast::hir::Expr; -use crate::ast::Type; -use crate::common::Result; - -pub fn jit_eval<T>(expr: &Expr<Type>) -> Result<T> { - let context = Context::create(); - let mut codegen = Codegen::new(&context, "eval"); - let execution_engine = codegen - .module - .create_jit_execution_engine(OptimizationLevel::None) - .map_err(Error::from)?; - codegen.codegen_function("test", &[], &expr)?; - - unsafe { - let fun: JitFunction<unsafe extern "C" fn() -> T> = - execution_engine.get_function("eval").unwrap(); - Ok(fun.call()) - } -} |