A trace-based JIT for brainfuck
… in the same ballpark as the old version, performance-wise, but still lags somewhat.
|BrainF.h||Implement backedge limiting, and blacklisting. Trace-extension is now…|
|BrainFCodeGen.cpp||Stub out the beginnings of trace extension. Also, fix a bug where we …|
|BrainFInterpreter.cpp||Be more aggressive about detecting hot traces. Also, introduce a|
|BrainFOpcodes.cpp||Implement backedge limiting, and blacklisting. Trace-extension is now…|
|BrainFTraceRecorder.cpp||Implement backedge limiting, and blacklisting. Trace-extension is now…|
|BrainFVM.h||Get rid of the executed flag in favor of setting the mode directly fr…|
|Makefile||Activate the direct-threaded interpreter, and disable the tracer unti…|
|README||Add a README.|
|bench.bf||Initial import of a tracing brainfuck JIT.|
|mandelbrot.b||Add a longer-running testcase.|
|test.bf||Initial import of a tracing brainfuck JIT.|
This is an example trace-based JIT for Brainfuck, using LLVM as its code generation engine. To compile it, simply drop this directory within llvm/examples in an LLVM source tree, and do `make` in that directory.