From 128fb157b302f0f0881844fc7a2fa5653c74a197 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C5=99emysl=20Janouch?= Date: Thu, 22 Dec 2016 22:58:20 +0100 Subject: Initial commit --- interpreters/README.adoc | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 interpreters/README.adoc (limited to 'interpreters/README.adoc') diff --git a/interpreters/README.adoc b/interpreters/README.adoc new file mode 100644 index 0000000..ecde608 --- /dev/null +++ b/interpreters/README.adoc @@ -0,0 +1,15 @@ +This directory contains several Brainfuck interpreters in various states of +sophistication, from the simplest approach to an optimizing JIT compiler: + + * `bf.c` is the stupidest one and the oldest by far + * `bf-faster-loops.c` precomputes loop jumps + * `bf-optimizing.c` improves on that by changing `[-]+` loops into assignments + * `bf-jit.c` adds JIT compilation for Intel x86-64 + * `bf-jit-opt.c` tries a bit harder to avoid looping on the current value + * `bf-jit-unsafe.c` abolishes all boundary checks when moving across the tape + * `bf-jit-unsafe-opt.c` makes use of immediate offsets to modify values + +I recommend using a tool such as 'meld' to view the differences. + +Just run `make` in this directory to have them all built, and append +`CPPFLAGS=-DDEBUG` to get dumps of the IR for the more sophisticated JITs. -- cgit v1.2.3