Version 2 of tclquadcode

Updated 2016-08-06 21:27:56 by dkf

Package for compiling Tcl bytecode into LLVM IR (and hence to native code). Depends on tclbdd and llvmtcl. May form the basis for the fastest path of the Tcl execution engine in 9.0; performance is good, but dependencies are complex.

Code

https://core.tcl.tk/tclquadcode
https://chiselapp.com/user/kbk/repository/tclquadcode

Performance

This package can sometimes make code that is stunningly faster than standard Tcl. Seriously fast. It depends on what the code is doing though.

Performance Category General Speedup Expected
Numeric code: integers 20 to 25 times
Numeric code: floating point around 10 times
String code often about 50%; sometimes less
Structure code: lists and dicts around 2 times
Error handling around 2 times
Global variables probably no big change
I/O code no significant change (not a design objective)

Note that optimisations can also be applied between procedures (provided all relevant procedures are compiled at once). This may make some code get an even greater acceleration.