diff --git a/CMakeLists.txt b/CMakeLists.txt index 2ee6351c..30e3f9cd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -31,9 +31,4 @@ add_subdirectory(utest) # reminder: must come last: docs targets depend on all the other library/utest targets add_subdirectory(docs) -# ---------------------------------------------------------------- -# docs targets depend on all the other library/utest targets -# -#add_subdirectory(docs) - # end CMakeLists.txt diff --git a/include/xo/jit/Jit.hpp b/include/xo/jit/Jit.hpp index f983fb2e..5130b844 100644 --- a/include/xo/jit/Jit.hpp +++ b/include/xo/jit/Jit.hpp @@ -15,7 +15,7 @@ # include "llvm/ExecutionEngine/Orc/IRCompileLayer.h" # include "llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h" # include "llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h" -# include "llvm/ExecutionEngine/Orc/Shared/ExecutorSymbolDef.h" +# include "llvm/ExecutionEngine/Orc/Shared/ExecutorSymbolDef.h" // need llvm18 # include "llvm/ExecutionEngine/SectionMemoryManager.h" # include "llvm/IR/DataLayout.h" # include "llvm/IR/LLVMContext.h" diff --git a/src/jit/MachPipeline.cpp b/src/jit/MachPipeline.cpp index 850d0801..d45f03db 100644 --- a/src/jit/MachPipeline.cpp +++ b/src/jit/MachPipeline.cpp @@ -604,6 +604,8 @@ namespace xo { return ir_builder.CreateUDiv(args[1], args[2]); case llvmintrinsic::fp_add: return ir_builder.CreateFAdd(args[1], args[2]); + case llvmintrinsic::fp_sub: + return ir_builder.CreateFSub(args[1], args[2]); case llvmintrinsic::fp_mul: return ir_builder.CreateFMul(args[1], args[2]); case llvmintrinsic::fp_div: @@ -954,6 +956,11 @@ namespace xo { llvm::IRBuilder<> & ir_builder) { switch(expr->extype()) { + case exprtype::define: + case exprtype::assign: + case exprtype::sequence: + case exprtype::convert: + break; case exprtype::constant: return this->codegen_constant(ConstantInterface::from(expr)); case exprtype::primitive: diff --git a/src/jit/activation_record.cpp b/src/jit/activation_record.cpp index 7b1228e6..5d0fd3ad 100644 --- a/src/jit/activation_record.cpp +++ b/src/jit/activation_record.cpp @@ -10,7 +10,7 @@ namespace xo { using std::cerr; using std::endl; - activation_record::activation_record(const ref::rp & lm) + activation_record::activation_record(const rp & lm) : lambda_{lm}, binding_v_(lm->n_arg()) { diff --git a/src/jit/type2llvm.cpp b/src/jit/type2llvm.cpp index e5c07cac..8bfb2a3b 100644 --- a/src/jit/type2llvm.cpp +++ b/src/jit/type2llvm.cpp @@ -205,9 +205,12 @@ namespace xo { } /*struct_td_to_llvm_type*/ llvm::PointerType * - type2llvm::pointer_td_to_llvm_type(xo::ref::brw llvm_cx, - TypeDescr pointer_td) + type2llvm::pointer_td_to_llvm_type(xo::ref::brw llvm_cx + , TypeDescr pointer_td + ) { + (void)pointer_td; + assert(pointer_td->is_pointer()); #ifdef OBSOLETE