I have committed the changes to HLVM that bring it up to date with respect to the new LLVM 2.6 release: http://hlvm.forge.ocamlcore.org/ This required handling of llcontexts and the injection of a call to the new Llvm_executionengine.initialize_native_target function (that is undocumented) *before* the JIT EE is created, otherwise LLVM resorts to the LLVM interpreter which breaks at run-time because it does not fully implement the IR generated by HLVM. I've also replaced the garbage collector with a more conventional in-heap mark-sweep GC. This makes HLVM 2.6x faster than before at allocating functional data structures but HLVM remains 10x slower than OCaml when there are many short-lived values (e.g. list-based 10-queens). My benchmark results indicate that the improvement most likely to give the largest performance improvement here would be the creation of a nursery generation (and not the removal of the shadow stack). HLVM still thrashes OCaml on numerical code, of course. -- Dr Jon Harrop, Flying Frog Consultancy Ltd. http://www.ffconsultancy.com/?e