19 projects tagged "Code Generators"
CMUCL is a free, high performance implementation of the Common Lisp programming language which runs on most major Unix platforms. It mainly conforms to the ANSI Common Lisp standard. CMUCL provides a sophisticated native code compiler; a powerful foreign function interface; an implementation of CLOS; the Common Lisp Object System; which includes multimethods and a metaobject protocol; a source-level debugger and code profiler; and an Emacs-like editor implemented in Common Lisp. CMUCL is maintained by a team of volunteers collaborating over the Internet, and is mostly in the public domain.
Pin is an ATOM-like instrumentation tool for Linux executables. It allows arbitrary code (written in C or C++) to be injected at arbitrary places in an executable. Unlike Atom, Pin does not perform the instrumentation statically by rewriting the executable, but rather dynamically by adding instrumentation while the executable is running. Currently supported platforms include IA-32, Intel Xscale, and Itanium processors.
The RDVIS tool helps programmers pin-point the sources of cache misses and poor temporal locality in their source code. The visualization often directs the experienced programmer towards the necessary program transformations within a few minutes. The tool consists of two parts: a GUI that visualizes the low temporal locality patterns, and a patched GCC compiler to extract the low-locality patterns from programs.
"jscpp" is an ANSI C preprocessor and language parser that can analyze and instrument C code. Currently, its most prominent application is to add tracing to existing C programs simply by recompiling and linking it with the "jscc" compiler frontend. The standard tracing shows when a function is entered or left along with the parameters passed or return values. It is also possible to trace each source line and watch read/write access to simple variables. Tracing is achieved by instrumenting the source code before calling the system compiler. The program is modular and can be easily extended to other kinds of source code modifications.