diff options
author | dkf <donal.k.fellows@manchester.ac.uk> | 2005-11-30 14:59:39 (GMT) |
---|---|---|
committer | dkf <donal.k.fellows@manchester.ac.uk> | 2005-11-30 14:59:39 (GMT) |
commit | 53c04f83d2b2ef25f90e34e7d05273f965790caa (patch) | |
tree | 1b07469f13d8ee2956bcb114e0992788298dc395 /ChangeLog | |
parent | c3ae410bfd9c50b4b93c65bb20d96aca055c8c81 (diff) | |
download | tcl-53c04f83d2b2ef25f90e34e7d05273f965790caa.zip tcl-53c04f83d2b2ef25f90e34e7d05273f965790caa.tar.gz tcl-53c04f83d2b2ef25f90e34e7d05273f965790caa.tar.bz2 |
New TEBC opcode, INST_JUMP_TABLE, for compiling the simple (and common) case of
[switch] into a jump-table. Much faster for long switches.
Also compiler support for generating the new instruction where appropriate.
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 32 |
1 files changed, 23 insertions, 9 deletions
@@ -1,16 +1,30 @@ +2005-11-30 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + + ***POTENTIAL INCOMPATIBILITY*** for bytecode savers/loaders. See below. + + * generic/tclCompCmds.c (TclCompileSwitchCmd): Arrange for very simple + [switch] invokations to be compiled into hash lookups into jump tables; + only a very specific kind of [switch] can be safely compiled this way, + but that happens to be the most common kind. This makes around 5-10% + difference to the speed of execution of clock.test. + * generic/tclExecute.c (TEBC:INST_JUMP_TABLE): New instruction to + allow for jumps to locations looked up in a hashtable. Requires a new + AuxData type, tclJumptableInfoType (supported by the functions + DupJumptableInfo and FreeJumptableInfo in tclCompCmds.c) so anything + that saves bytecode containing this *must* be updated! + 2005-11-30 Kevin Kenny <kennykb@acm.org> - * generic/tclClock.c: Fixed a bad refcount in previous commit - that led to a corrupted heap. Thanks to Miguel Sofer for pointing - out this bug. - + * generic/tclClock.c: Fixed a bad refcount in previous commit that led + to a corrupted heap. Thanks to Miguel Sofer for pointing out this bug. + 2005-11-29 Kevin Kenny <kennykb@acm.org> * generic/tclBasic.c: Moved a big part of [clock format] down * generic/tclClock.c: to the C level in order to make it go faster. * generic/tclInt.h: Preliminary measurements suggest that it * generic/clock.tcl: more than doubles in speed with this change. - + 2005-11-29 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> * generic/tclCmdIL.c (Tcl_LsearchObjCmd): Allow [lsearch -regexp] to @@ -295,7 +309,7 @@ * tests/compExpr-old.test: Updated tests with changed behavior due to addition of bignums. - * tests/expr.test: Portable tests expr-46.13-18 [Bug 1341368] + * tests/expr.test: Portable tests expr-46.13-18 [Bug 1341368] * generic/tclPkg.c: Corrected inconsistencies in the value returned * tests/pkg.test: by Tcl_PkgRequire(Ex) so that the returned @@ -403,9 +417,9 @@ 2005-11-01 Don Porter <dgp@users.sourceforge.net> - * generic/tclTrace.c (TclCheckExecutionTraces): Corrected mistaken - assumption that all command traces are set at the script level. - Report/fix from Jacques H. de Villiers. [Bug 1337941] + * generic/tclTrace.c (TclCheckExecutionTraces): Corrected mistaken + assumption that all command traces are set at the script level. + Report/fix from Jacques H. de Villiers. [Bug 1337941] * tests/unixNotfy.test (1.1,2): Update error message whitespace to match changes in code. |