Version 2 (modified by rurban, 5 years ago)

--

  • look at using clang
  • modifying our ops and modify clang to compile our ops to LLVM IR snipits
  • then build a translator that reads our bytecode and generates LLVM IR using the LLVM IR op snipits generated in the step above.
  • then integrate the generated LLVM IR into a new LLVMJIT runloop
  • I would copy the slow run loop and then modify it to use LLVM IR, using the current jit runloop as a reference.
  • that is a really rough outline but it gives you the large pieces.
see docs/jit.pod for old jit info
see src/jit/i386/emit.h