Home

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

957 ancestors of [ab1141938f]

2017-08-06
15:36
[ab1141938f] Closed-Leaf: Push the return code across the function boundary. Not yet working. (user: dkf, tags: mistake)
10:32
[4401285e32] Start of branch hunting problems with non-error [return] calls. (user: dkf, tags: returncode-bug, broken)
2017-07-29
11:27
[3c5bafd097] Better use of API. Extend to support changes in int-api. (user: dkf, tags: trunk)
2017-07-23
21:17
[76da08214e] Split things up a bit more internally to keep method size down. (user: dkf, tags: trunk, minor change)
12:14
[b2242736f9] Move the variable and callframe implementations out to their own file. (user: dkf, tags: trunk)
11:54
[0915d690aa] Minor tweaks. (user: dkf, tags: trunk)
10:56
[3bfaafe6a7] Changes from namspace-variables branch that are reasonably meaningful elsewhere. (user: dkf, tags: trunk)
2017-07-07
12:52
[57baf130c3] Added tests for string hashing. Key test features: callframes, namespace variables, math, [scan %c] and [binary scan]. (user: dkf, tags: trunk)
2017-07-03
10:14
[d1dbb6df59] Basic support for [global], [variable] and [namespace upvar] commands. (user: dkf, tags: trunk)
2017-07-02
23:06
[4ddcd68805] Finished code issuer for upvar. Not yet generated by quadcode engine. (user: dkf, tags: namespace-variables)
16:11
[e32cbf5f43] Add descriptive comments for more builder methods. (user: dkf, tags: namespace-variables)
15:37
[9cf6622f71] Need to follow variable links when reading or writing. (user: dkf, tags: namespace-variables)
2017-07-01
19:47
[f58eccaca7] Add code to allow variable binding to fail (user: kbk, tags: namespace-variables)
08:05
[2dd141efab] Variable binding implementation function done. Something not working. (user: dkf, tags: namespace-variables)
2017-06-28
23:01
[4e68c6df02] Most of the error handling machinery on the implementation side. (user: dkf, tags: namespace-variables)
22:36
[a824df10bf] Define the variable lookup functions. (user: dkf, tags: namespace-variables)
18:51
[3cb89fef73] Basic type signatures of implementation functions. (user: dkf, tags: namespace-variables)
09:34
[d817e69c7a] Machinery for code issue. Still needs implementations. (Can varname lookup fail?) (user: dkf, tags: namespace-variables)
08:45
[c7a2aa057f] Work around bug in older release of 8.6 (user: dkf, tags: namespace-variables)
2017-06-27
23:49
[a82c0275b3] Resolve inadvertent fork (user: kbk, tags: namespace-variables)
22:33
[5e6b1a7c87] OOPS: Forgot to add aliases.tcl. (user: kbk, tags: namespace-variables)
18:46
[6968dde9a9] merge trunk (user: dkf, tags: namespace-variables)
18:46
[2d672d3dca] Fix a spot that wasn't using the namespace path right. (user: dkf, tags: trunk)
02:18
[801e909810] Add demos for 'namespace upvar' and make a bunch of niggling changes in support of namespace variable testing. (user: kbk, tags: namespace-variables)
01:08
[de509d61a1] Closed-Leaf: Merge trunk and correct 'infant mortality' typos in analysis of namespace variables (and other proc effects) (user: kbk, tags: kbk-namespace-variables)
00:51
[5d4e019513] Oops - correct misspelt -errorinfo (user: kbk, tags: trunk)
00:45
[ed477e79d4] Add the failed procedure to the backtrace from specializer operations (user: kbk, tags: trunk)
2017-06-24
10:57
[972e702bf1] Implementation of synthetic Tcl callframes, allowing compiled code to call many more standard Tcl commands. (user: dkf, tags: trunk)
10:54
[adaedf59a8] Closed-Leaf: An actual working argument synthesis scheme that doesn't overuse reference counting and doesn't misuse the C stack frame. (user: dkf, tags: callframe-impl)
2017-06-23
23:16
[e06a820668] Working towards completing the basic callframe support. (user: dkf, tags: callframe-impl)
03:35
[9893a019b4] Code works again for procs that do not use nonlocal variables - ready to start debugging the ones that do. (user: kbk, tags: kbk-namespace-variables)
03:04
[4d8021b2c3] Merge callframe-impl and start on some of the FIXME's. NOT WORKING (user: kbk, tags: kbk-namespace-variables, not-working)
2017-06-12
00:58
[b569ee9109] Remove use/def of the callframe from 'invoke' instructions when the invoked code cannot access the caller's frame at all. (user: kbk, tags: callframe-impl)
2017-06-11
05:06
[2e6d84f46a] merge trunk (user: dkf, tags: callframe-impl)
2017-06-10
17:35
[dda382ae60] Prepare for new version of llvmtcl. (user: dkf, tags: trunk)
2017-06-06
19:22
[e27adddd5f] Generate local Tcl variables in a true on-stack LVT rather than in a ckalloc()ed hash table. (user: dkf, tags: callframe-impl)
19:16
[3abcf6b767] Closed-Leaf: Add comment about key feature of one procedure; it is *NOT* to be compiled. (user: dkf, tags: dkf-improved-proc-metadata)
19:14
[5f0d2b9a5b] Remove a bit of the debugging machinery that was unnecessary. (user: dkf, tags: dkf-improved-proc-metadata)
19:12
[a4369d511d] Force creation of debugging delegate for type in internal function signature. (user: dkf, tags: dkf-improved-proc-metadata)
19:08
[17f2b1e74a] Strip some unnecessary code. (user: dkf, tags: minor change, dkf-improved-proc-metadata)
19:01
[351c3f697a] LocalCache structures are refcounted; remember to increment on use! (user: dkf, tags: dkf-improved-proc-metadata)
01:09
[15b0db31bb] Rationalize the callframe-elimination code a little bit. (user: kbk, tags: callframe-impl)
00:33
[c7f3940a8f] Eliminate callframe allocation/deallocation from procs that are known not to use the callframe at all. (user: kbk, tags: callframe-impl)
2017-06-05
01:10
[ffb94761a7] Update to the current callframe implementation (user: kbk, tags: kbk-namespace-variables, not working)
01:08
[352c2285f9] Merge in the refactoring of callframe data motion. (user: kbk, tags: kbk-namespace-variables, not working)
00:11
[f187bb549f] Begin merging incrementally up to current callframe implementation. (user: kbk, tags: kbk-namespace-variables, not working)
2017-06-04
17:10
[34cc0dd981] Working towards better metadata generation (user: dkf, tags: not working, dkf-improved-proc-metadata)
11:08
[3258ec1305] merge trunk (user: dkf, tags: callframe-impl)
11:07
[b1ff0849e1] Removed unreachable methods now that 'purify' exists. (user: dkf, tags: trunk)
02:59
[7a7195c5f5] Correct specializer logging to silence it when it's not turned on (user: kbk, tags: callframe-impl)
02:55
[f77f4de1f4] merge trunk: attempt at more disciplined node splitting (user: kbk, tags: callframe-impl)
02:49
[ba388913d7] Tidy up [a2a91411dd] - remove no-longer-used code (user: kbk, tags: trunk)
02:45
[a2a91411dd] Merge kbk-less-nodesplit: Attempt at more disciplined node splitting logic (user: kbk, tags: trunk)
02:39
[566a36d4e2] Closed-Leaf: Fixed bug that kept code from splitting on IMPURE (user: kbk, tags: kbk-less-nodesplit)
01:58
[0cde061e97] Changes to node splitting to constrain splitting to phi's whose merged results have types that inform downstream decisions. (user: kbk, tags: kbk-less-nodesplit)
2017-06-03
10:31
[dd976d6de3] Corral the slowest compilation off in the name of getting a little speed during normal testing. (user: dkf, tags: minor change, callframe-impl)
2017-06-02
20:06
[1183b74b93] Working towards not needing callframes in all cases. (user: dkf, tags: callframe-impl)
2017-05-31
20:37
[5a1002d67a] Work around for bug in slightly older Tcl 8.6. (user: dkf, tags: minor change, callframe-impl)
2017-05-30
13:29
[998eabdc54] merge trunk (user: dkf, tags: callframe-impl)
02:49
[43425a5758] Merge in some significant optimizations to data motion to and from callframes. (user: kbk, tags: callframe-impl)
02:40
[f7f046450c] Closed-Leaf: Refactor control of data motion to and from the callframe. All tests now pass with the exception of four changed error dictionaries. (user: kbk, tags: kbk-callframe-motion)
2017-05-29
22:46
[e81f42ea1d] Fix the thing that my check in my previous commit was put in to catch. Ooops. (user: dkf, tags: trunk)
19:38
[0fdcff1361] Merge fixes to code generation for unconditional failures. (user: kbk, tags: kbk-callframe-motion)
19:35
[7f968bed5e] Closed-Leaf: Repair infinite loop in compilation of 'mrtest', caused by promotion of FAIL to FAIL STRING in procedure return types. Added code to optimize 'jumpMaybe' when a FAIL reaches it, because the unreachable code starts having NOTHING types for values, which cannot be compiled. Added some instrumentation to the specializer. (user: kbk, tags: kbk-callframe-fixes)
08:42
[0797bc8f18] merge trunk (user: dkf, tags: callframe-impl)
08:24
[50e4691642] Add some type sanity checking; there are quite a few places where function types can't be used in other types. (user: dkf, tags: trunk)
02:06
[053faeabbd] Merge kbk-callframe-motion: repair 'varargs' to work with callframes. (user: kbk, tags: kbk-namespace-variables)
02:02
[cd31f6b8c0] merge dkf-callframe-impl: repair 'varags' pass (user: kbk, tags: kbk-callframe-motion)
01:57
[1facb9b83c] Correct varargs to examime the 'invoke' quadcode taking into account the callframe args - and do a major drive-by refactoring. Now passes the 'cos' and 'xsum' tests. Fix for ticket [2fb4388b96]. (user: kbk, tags: callframe-impl)
2017-05-27
17:11
[1d6cb9af0a] Make the cos-related commands all compile again by applying critical fix for default handling. (user: dkf, tags: callframe-impl)
16:40
[a5a49b87eb] merge trunk (user: dkf, tags: callframe-impl)
2017-05-26
08:40
[bddfdfe9b7] Added TclOO API. Shorten many type names. (user: dkf, tags: trunk)
08:37
[87bd77bbbc] Add TclOO internal API. Slightly better stub table definitions. (user: dkf, tags: tcl-api)
2017-05-23
09:50
[dfab654aa1] Add TclOO public functions. Refactor the Tcl API declaration mapping code. (user: dkf, tags: tcl-api)
2017-05-22
08:51
[5279ec9d42] merge trunk (user: dkf, tags: tcl-api)
08:50
[b2fe57d7b6] Shorten many type names and remove useless redefinitions. (user: dkf, tags: tcl-api)
04:18
[7199a45325] Start working on support for 'variable', 'namespace upvar', 'global', and 'upvar #0'. Code is not working as yet. Next steps toward making it work are to rework the FIXME's in callframe.tcl, and eliminate 'callframeNop' once it's done its job. Then comes implementation of 'nsupvar', 'upvar', 'variable' quadcodes, and implementation of the 'loadStk' and friends in translate.tcl (user: kbk, tags: kbk-namespace-variables, not working)
2017-05-21
22:55
[60da56484d] merge trunk: remove use of other passes from copyprop (user: kbk, tags: kbk-callframe-motion)
22:54
[77e043898f] merge trunk: remove use of other passes from copyprop (user: kbk, tags: callframe-impl)
22:49
[06ed6d7b96] It's a bad practice to invoke passes from other passes, and copyprop doesn't care about dead code cleanup, so remove the cleanup optimizations from its head. (user: kbk, tags: trunk)
21:37
[abd70c7494] merge trunk - pick up Tcl API additions (user: kbk, tags: kbk-callframe-motion)
21:34
[5bb434eda6] merge trunk - pick up new Tcl API defs (user: kbk, tags: callframe-impl)
21:30
[84998bf23a] Fix typo in declaration of Tcl_DbCkalloc (user: kbk, tags: trunk)
15:51
[6b8592a4b6] Clean up the type declarations by implementing a scheme letting them happen 'simultaneously', getting rid of many void* values in the process. (user: dkf, tags: tcl-api)
10:01
[5a61f0db3b] Added definitions from Tcl's internal API. (user: dkf, tags: trunk)
10:00
[ab08f69afd] Another tranche of internal API (user: dkf, tags: tcl-api)
2017-05-20
19:35
[dce3d345c1] merge dkf-callframe-impl; fix for [e1f697c808] (user: kbk, tags: kbk-callframe-motion)
19:33
[f05421f9df] merge trunk; fix for [e1f697c808] (user: kbk, tags: callframe-impl)
19:16
[4d2382ff32] merge code from dkf-callframe-impl, including the simplification of 'extractCallFrame'. Update 'cfProducer' to handle the additional dereference required to locate the operation that actually produced the frame. (user: kbk, tags: kbk-callframe-motion)
19:08
[0fa06190a8] accept the changes from dkf-simplify-callframe (user: kbk, tags: callframe-impl)
17:27
[44c7741c26] Another tranche of internal API (user: dkf, tags: tcl-api)
17:12
[c5caf68f2b] merge trunk (user: dkf, tags: tcl-api)
16:47
[7f1baa9fc1] Another tranche of internal API (user: dkf, tags: tcl-api)
14:19
[3f2faab2d6] [e1f697c808] Fix compilation result type of commands that only yield Tcl errors. (user: dkf, tags: trunk)
13:39
[6126b0c7f6] merge dkf-callframe-impl (user: dkf, tags: kbk-callframe-motion)
13:37
[a44383f5f2] Closed-Leaf: An alternate approach to CALLFRAME handling that untuples the CALLFRAME type as soon as possible. (user: dkf, tags: dkf-callframe-impl)
08:18
[f2e7834438] merge trunk (user: dkf, tags: dkf-callframe-impl)
08:17
[b72caf8964] About 7% acceleration in the quadcode transformer by changing how shared variables are handled. This is because it is quite a bit faster to use the variable resolver in TclOO than it is to use [my variable]. (user: dkf, tags: trunk)
07:21
[46abd31cc7] Redo the type widening so that it doesn't get so awful. (user: dkf, tags: dkf-callframe-impl)
2017-05-19
21:51
[3f580223cb] merge dkf-callframe-impl (user: kbk, tags: kbk-callframe-motion)
21:48
[b30d5235b8] Closed-Leaf: Merge trunk (user: kbk, tags: kbk-bug-e1f697c808)
08:25
[9218c64ce6] merge trunk (user: dkf, tags: dkf-callframe-impl)
08:22
[d1240091e0] Added definitions for much of the remaining Tcl API. (user: dkf, tags: trunk)
08:20
[6c8693dd16] Internal API and call attribute tweaking. (user: dkf, tags: tcl-api)
2017-05-18
23:55
[49aa9ba778] Merge trunk (user: kbk, tags: kbk-bug-e1f697c808)
23:38
[7f77b6974a] Another tranche of Tcl's API (user: dkf, tags: tcl-api)
08:46
[25a234d851] Another tranche of Tcl's API (user: dkf, tags: tcl-api)
2017-05-16
22:15
[72b4c1b4dd] Another tranche of Tcl's API (user: dkf, tags: tcl-api)
08:42
[ead48dfe8b] Another tranche of Tcl's API (user: dkf, tags: tcl-api)
2017-05-14
23:16
[e016cb6dc3] Add a nanopass to remove 'moveFromCallFrame' and 'moveToCallFrame' when it is known that (a) an invoked command doesn't use/modify the variable being moved, or (b) the value being moved to the callframe is already there. The code includes characterization of the effect of a great many of Tcl's builtin commands on the caller's variables. (user: kbk, tags: kbk-callframe-motion)
17:46
[b96224cf75] Another tranche of Tcl's API (user: dkf, tags: tcl-api)
16:59
[5219c0900a] Another tranche of Tcl's API (user: dkf, tags: tcl-api)
16:03
[2335c968a4] Another tranche of Tcl's API (user: dkf, tags: tcl-api)
13:57
[0ee077fe05] merge trunk (user: dkf, tags: tcl-api)
12:13
[30bdc52a01] merge trunk (user: dkf, tags: dkf-callframe-impl)
10:02
[4976822fe2] [5800594ba4] Add hard error in case this ever comes up again. (user: dkf, tags: trunk)
03:49
[2ea9177c1f] If a procedure always throws an error, change its return type from a bald FAIL to FAIL STRING. Otherwise, there are several issues with trying to generate code for its callers. (user: kbk, tags: kbk-bug-e1f697c808)
2017-05-13
21:39
[8b82804231] Bug [5800594ba4] - Do not emit widening instructions whose target is a literal (user: kbk, tags: trunk)
21:26
[a314fc6fcc] toss out obsolete code (user: kbk, tags: trunk)
21:14
[7d469bcdc0] Complete rework of SSA repair. Node splitting and type narrowing are now much simpler, and the SSA repair technique is much more like a 'black box' that is agnostic to the specific program transformation that damaged SSA. (user: kbk, tags: trunk)
21:10
[f1db21a01e] Closed-Leaf: Fix stupid bug in SSA repair that caused phi nodes to be mislinked (user: kbk, tags: kbk-ssa-repair)
18:47
[a89601c4ce] Make node splitting use the 'black box' SSA repair. NOT WORKING - powmul2 infinite loop? (user: kbk, tags: kbk-ssa-repair)
14:29
[327019999e] Added testcase (for [5800594ba4]) that highlights issues with widening of literals. (user: dkf, tags: trunk)
08:11
[44fa79e9a9] Fixes to handling of IMPURE and reference count management problems that that exposed. (user: dkf, tags: trunk)
2017-05-12
21:55
[48585a0c71] merge trunk (user: kbk, tags: kbk-ssa-repair)
08:23
[11bb40a048] Closed-Leaf: Corrections to reference count handling for narrowToType when working with IMPURE types. (user: dkf, tags: fixing-impure2-issues)
03:06
[f7580cf32d] Return to aggressive copy propagation for temporaries. Adopt a new theory of SSA repair that reconstructs SSA for specific variables by renaming only the affect variable and tracing uses upward to their reaching defs, adding phis as necessary. Temporarily bypass node splitting/jump threading, because it is not yet using the new approach to SSA repair. New algorithms should not require Conventional SSA for the repairs, so efforts to preserve it have been abandoned. (user: kbk, tags: kbk-ssa-repair)
2017-05-11
08:02
[534f624da1] merge trunk (user: dkf, tags: fixing-impure2-issues)
08:01
[58dbacc6fe] Add capability to suppress inlining of some macro implementation functions. (user: dkf, tags: trunk)
07:59
[ef569cfebf] Fix refcount handling for copying of constants. (user: dkf, tags: fixing-impure2-issues)
2017-05-10
07:26
[1715597d9b] Fix refcount handling with constants in vectors (user: dkf, tags: fixing-impure2-issues)
2017-05-09
07:26
[63dc044805] Fix for debugging prints when applied to STRING? types. (user: dkf, tags: fixing-impure2-issues)
2017-05-08
19:24
[32add5260b] Fix silly error. (user: dkf, tags: fixing-impure2-issues)
2017-05-07
17:27
[121519fdcf] Working on fixing the issues with compiling impure2. (user: dkf, tags: fixing-impure2-issues)
2017-05-02
18:41
[2d11c0a858] Tinkering with errortest2. !!BUG!! errortest2-caller currently uncompileable. (user: dkf, tags: trunk)
09:40
[4abaf40456] Factor out the code to run the demos from the demos themselves. (user: dkf, tags: trunk)
07:18
[0ce9320ff8] merge trunk (user: dkf, tags: dkf-callframe-impl)
2017-04-24
13:56
[93e7b76578] Silence some 'puts' calls in non-debug mode. (user: dkf, tags: trunk)
2017-04-22
15:37
[8cafd1d034] Generate correct Tcl line numbers in LLVM IR debugging info. (user: dkf, tags: trunk)
15:23
[570f3ec2e5] Improve the generation of source information in warnings. (user: dkf, tags: trunk, minor change)
12:37
[29b9c473e9] merge trunk (user: dkf, tags: dkf-callframe-impl)
2017-04-19
19:49
[d91216509e] Uncomment the test (which now passes) (user: dkf, tags: trunk, minor change)
19:41
[8414358591] [7c599d4029] Switch to using typecodes in tcl function names so that we can have two versions of something with the same LLVM implementation type. (user: dkf, tags: trunk)
2017-04-15
20:03
[6064e6b5e8] Reinsert critical [source] calls lost in merge. (user: dkf, tags: dkf-callframe-impl)
18:38
[df89ed8fb8] merge trunk (user: dkf, tags: dkf-callframe-impl)
18:02
[982ee9ab19] Merge in changes to specializer order of operations so that node splitting does not create un-analyzed procedure instances. (user: kbk, tags: trunk)
17:57
[22976e49d6] Closed-Leaf: Cosmetic changes to nodesplit.tcl (user: kbk, tags: kbk-bug-7c599d4029)
17:34
[86e33b69b3] Finish renaming 'typeunroll' to 'nodesplit' (user: kbk, tags: kbk-bug-7c599d4029)
17:27
[f504469463] Start to expunge the name, 'typeunroll', in favour of 'nodesplit'. (user: kbk, tags: kbk-bug-7c599d4029)
17:20
[3d0f7aee3a] Remove unused 'typeunroll' method (user: kbk, tags: kbk-bug-7c599d4029)
17:12
[fa0b850c48] Update the bug-7c599d4029 case to demonstrate problem with quadcode type algebra (user: kbk, tags: kbk-bug-7c599d4029)
16:48
[364120427c] Refactor specializer so that the order of operations respects the fact that node splitting may change types of invoked procedures. (user: kbk, tags: kbk-bug-7c599d4029)
15:30
[ea85afde7b] Make dead code elimination and copy propagation track whether they have changed the program. (user: kbk, tags: kbk-bug-7c599d4029)
14:57
[4b9267fa69] merge trunk (user: kbk, tags: kbk-bug-7c599d4029)
14:52
[9428105279] Make 'cleanupNarrow' track whether it has modified the program. (user: kbk, tags: kbk-bug-7c599d4029)
11:58
[f19b7c2814] Move more of codegen.tcl into a separate file. Mark all files in codegen/ as UTF-8 for Emacs. (user: dkf, tags: trunk)
2017-04-14
19:15
[73b3d6f437] Refactor worklist management in preparation for big refactor of node splitting (user: kbk, tags: kbk-bug-7c599d4029)
16:12
[29e3d534df] Further simplification to type unrolling: consolidate a method to find a single node to split and split it. (user: kbk, tags: kbk-bug-7c599d4029)
16:00
[062b737ea8] Remove misguided hack that tried to keep node splitting from running on incomplete type information (user: kbk, tags: kbk-bug-7c599d4029)
15:54
[572788f99a] Refactor 'removeSplitMarkers' out of 'typeunroll' (user: kbk, tags: kbk-bug-7c599d4029)
15:40
[a5d36d8a81] Place cleanup optimizations into a single method (user: kbk, tags: kbk-bug-7c599d4029)
15:10
[9dcbbe3832] Refactor the placement of split markers out of typeunroll in preparation for bigger refactor of unrolling. (user: kbk, tags: kbk-bug-7c599d4029)
2017-04-08
19:53
[799df0d1dd] Don't fold a copy-to-temp together with a phi. (user: kbk, tags: kbk-bug-7c599d4029)
2017-03-25
15:13
[c32e63b7cc] Adapt to changes to what instructions deal with CALLFRAMEs and add some more diagnostic warnings. (user: dkf, tags: dkf-callframe-impl)
08:14
[23ec9d57a9] merge trunk (user: dkf, tags: dkf-callframe-impl)
08:13
[482ae5b3be] A bunch of corrections to support functions, developed originally on the dkf-callframe-impl branch. (user: dkf, tags: trunk)
06:34
[4e1c23c371] More work on type conversions. (user: dkf, tags: dkf-callframe-impl)
2017-03-22
08:44
[6dbda5c9fe] Fix silly mistakes and change to arguments to 'return'. (user: dkf, tags: dkf-callframe-impl)
06:25
[ac26b5fb55] Rewrite the injected printers to use Tcl's API usually, for better output. (user: dkf, tags: not working, dkf-callframe-impl)
2017-03-19
07:18
[021b966ed9] merge callframe branch; code is broken by this once again (user: dkf, tags: not working, dkf-callframe-impl)
06:58
[250e218e6a] And getting the reference count handling right seems to make it work. (user: dkf, tags: dkf-callframe-impl)
2017-03-18
19:04
[15ed35ed76] With a little help from that code, we've passed a test! More still to do... (user: dkf, tags: not working, dkf-callframe-impl)
17:38
[c5454c155a] Critical fix to implementation of offsetof method. (user: dkf, tags: trunk)
17:36
[b32f55a148] Import interesting bits from dkf-global-read branch (user: dkf, tags: dkf-callframe-impl)
16:58
[88d1d542ba] No longer crashes... (user: dkf, tags: not working, dkf-callframe-impl)
2017-03-17
09:24
[748311765b] Threading the information more to where it belongs. (user: dkf, tags: not working, dkf-callframe-impl)
06:26
[06b1dc1092] Starting to assemble the metadata during module initialisation. (user: dkf, tags: not working, dkf-callframe-impl)
2017-03-14
18:23
[76f0cf747a] whoops: don't fold a copy-temp-to-var together with a phi (user: kbk, tags: mistake)
16:01
[24c1c594d9] Closed-Leaf: Merge trunk: peephole optimization of 'copy to variable from temp' (user: kbk, tags: callframe)
15:59
[5d203eae6b] Peephole optimization for 'copy to variable from temp' (user: kbk, tags: trunk)
03:37
[ce19fcbe9a] Merge trunk - change to fix small bug that made copy propagation violate Conventional SSA (user: kbk, tags: callframe)
03:36
[1a0a2c2bdc] Fix typo that caused some killing assignments to be missed, violating Conventional SSA (user: kbk, tags: trunk)
01:34
[6ac5b3d569] Merge trunk: rename temps whose live ranges do not intersect, allowing for better copy propagation. (user: kbk, tags: callframe)
01:33
[1a0e986689] Rename temps whose live ranges do not intersect, to allow for more aggressive copy propagation. (user: kbk, tags: trunk)
2017-03-13
03:46
[a63f47c0b2] Merge trunk, to get code that has better source variable identification and control of live ranges. Fix a bug in 'widen' that crashed on 'return' if a return value needed to be widened. (user: kbk, tags: callframe)
02:52
[200cbdce60] Merge in changes to copy propagation that force source variable names to be preserved and ensure that at most one version of any value is live at any point in the program (the Conventional SSA property). (user: kbk, tags: trunk)
02:47
[4cefa69f56] Closed-Leaf: Adjust copy propagation to kill the maximum number of copies that will still preserve the property that no variable's live range crosses a phi for another copy of that variable (Conventional-SSA form). Performance of 'impure' and the FlightAware benchmarks is now restored. (user: kbk, tags: kbk-refactor-copyprop)
2017-03-12
21:04
[c98c9ec9cc] Rearrange copy propagation so that source variables are always identified. Still has a performance bug in that safe copies around 'instanceOf' and 'narrowToType' are not folded. (user: kbk, tags: kbk-refactor-copyprop)
09:00
[3abe56cd62] Use more of Tcl's machinery. Actually do the variable placement. (user: dkf, tags: not working, dkf-callframe-impl)
2017-03-11
21:03
[85ac9e1d12] Preserve variable names through widening operations (user: kbk, tags: trunk)
17:45
[c2a8ca6a10] D'oh! Make the translator keep track of the name of the proc it's compiling! (user: kbk, tags: trunk)
10:26
[53a1ec6206] Working towards frame creation. (user: dkf, tags: not working, dkf-callframe-impl)
08:34
[8abd4c694a] Add debug decls. (user: dkf, tags: not working, dkf-callframe-impl)
08:17
[b4f6d411fd] Push the frame handling code through another level of the code generator. (user: dkf, tags: not working, dkf-callframe-impl)
2017-03-05
20:25
[a7112f0b47] Fix things that recent changes broke. (user: dkf, tags: minor change, not working, dkf-callframe-impl)
12:24
[25977eee2c] merge callframe branch (user: dkf, tags: dkf-callframe-impl)
04:41
[825e74e8e3] support for [regsub] (user: kbk, tags: callframe)
04:03
[c5ce4dc2c0] Add partial support for [lsort] (user: kbk, tags: callframe)
2017-03-04
20:55
[bf8242a174] Add support for [dict keys] and [regexp]. Move the store-load peephole optimization out of 'narrow' into 'cleanupCallFrameMotion' because doing it early misses opportunities to kill 'moveFromCallFrame' instructions. (user: kbk, tags: callframe)
17:06
[56516707ae] Fix some overlooked callframe refs in 'returnCode' and 'returnOptions' (user: kbk, tags: callframe)
16:37
[d619516e22] Remove actual I/O from the callframe demo, and add missing tcl::dict::values to the builtin command table (user: kbk, tags: callframe)
16:25
[32ceda9d40] merge trunk; fix channel leak in 'parseBuiltinsTxt' demo (user: kbk, tags: callframe)
16:15
[a487af5c87] 'invoke', by default, should result in FAIL STRING (user: kbk, tags: trunk)
16:12
[dc0c58c363] Remove some FIXME comments from stuff that's fixed. (user: kbk, tags: trunk)
2017-02-28
04:13
[72d2924bfd] Add new files missing from previous commit (user: kbk, tags: callframe)
04:07
[4aac9ac511] Add a pass that removes 'moveToCallFrame' and 'moveFromCallFrame' for variables that are known not to be consumed by/produced in a given invocation. (user: kbk, tags: callframe)
2017-02-26
01:52
[dc7a238870] Merge trunk: implementations of 'resolveCmd' and 'originCmd' quadcodes. (user: kbk, tags: callframe)
01:51
[4239bec35b] Merge trunk: implementations of 'resolveCmd' and 'originCmd' quadcodes. (user: kbk, tags: kbk-impure)
01:48
[0c99bf7722] Added implementations of 'resolveCmd' and 'originCmd' quadcodes (and test cases), which will be needed for callframe testing. (user: kbk, tags: trunk)
2017-02-25
18:02
[86ec362dc6] Working towards a first implementation of callframes. (user: dkf, tags: not working, dkf-callframe-impl)
18:01
[ce1eada8ce] Type corrections in docs. (user: dkf, tags: callframe)
15:49
[bf86b5f2f4] More updates to my notes. (user: dkf, tags: callframe)
2017-02-23
15:48
[036dccb0dc] Updated the notes. (user: dkf, tags: callframe)
2017-02-22
21:18
[0283626768] add table of builtin functions (user: kbk, tags: callframe)
04:39
[a1f5d76f1b] Answer some of Donal's questions in his 2017-02-11 note regarding callframes (user: kbk, tags: callframe)
04:34
[43ddda402f] Correct return type of 'invoke' operations in the presence of callframes (user: kbk, tags: callframe)
04:09
[bcbb7c22ef] Fix a bug where the 'return' operation tried to widen the callframe rather than the return value (user: kbk, tags: callframe)
03:43
[19123d148a] Merge current IMPURE branch (user: kbk, tags: callframe)
03:40
[fd465a19d6] Merge mark. (user: kbk, tags: kbk-impure)
03:40
[685bd8a5fb] Merge changes for IMPURE parameters and to remove premature type unrolling. (user: kbk, tags: trunk)
03:39
[c83e14fa23] Remove premature type unrolling from the specialiser. Add code to handle transmission of IMPURE parameters to compiled procedures. (user: kbk, tags: kbk-impure)
2017-02-20
16:36
[077a7aaf73] merge mark (user: kbk, tags: kbk-impure)
16:35
[c5410ff1b2] Merge changes to generate thunks for the EMPTY return type and to keep hexadecimal type codes from showing up in contexts where they're compared as strings. (user: kbk, tags: trunk)
16:34
[a07514e624] Keep hexadecimal typecodes from leaking out of types.tcl, and add thunk generation for the EMPTY return type. (Allows for some additional demonstration codes.) (user: kbk, tags: kbk-impure)
03:40
[2589e4c7f1] merge mark (user: kbk, tags: kbk-impure)
03:40
[053f97df49] Merge kbk-impure branch - basic block cloning is now implemented, giving significant speedup to cases like 'xsum2', 'msrange' and 'impure', where values of different types converge in the program. (user: kbk, tags: trunk)
03:14
[daa3fdec8b] deadcode: be much more aggressive about pruning worthless phi operations. (user: kbk, tags: kbk-impure)
2017-02-19
22:47
[2352a59d7f] Fix bugs in resolving interprocedural dependencies during loop unrolling (user: kbk, tags: kbk-impure)
20:27
[54c6d0489d] Avoid runaways by constraining how many copies may be introduced by splitting a basic block (user: kbk, tags: kbk-impure)
2017-02-15
20:54
[68b8d45ad1] All test cases pass once more, but only by virtue of a hideous hack inside typeunroll to keep it below a certain number of splits. The five cases, lcmRange, linesearch::getAllLines2, qsort, wordcounter2 and xsum2 all appear to go into runaway behaviour, growing program size exponentially (and perhaps not even converging). (user: kbk, tags: kbk-impure)
03:57
[4bdc54e7fd] NOT WORKING: Fix bugs to make a few more test cases compile (user: kbk, tags: kbk-impure, not working)
2017-02-13
03:27
[13076603e0] Allow a few more procs from ::linesearch (user: kbk, tags: kbk-impure, not working)
02:58
[97d781d5db] NOT WORKING: continued work on loop unrolling for data type analysis. Passes many more tests, and speeds up 'impure' by 30x (user: kbk, tags: kbk-impure, not working)
2017-02-12
04:06
[e2dd4e6ce1] NOT WORKING: Further debugging of node splitting (user: kbk, tags: kbk-impure, not working)
2017-02-11
13:21
[2cdefc473f] Added some notes on implementing a CALLFRAME. (user: dkf, tags: callframe)
2017-02-08
01:35
[90db1fcf7d] NOT WORKING: considerably more work on node splitting, but not finished. (user: kbk, tags: kbk-impure, not working)
2017-01-25
04:04
[0618577d44] Basic block splitting - identify the initial sets. Much more work to go here! (user: kbk, tags: kbk-impure)
01:35
[2eaa1486ab] merge further work on IMPURE handline (user: kbk, tags: callframe)
2017-01-24
02:04
[231dad0bc1] Merge mark (user: kbk, tags: kbk-impure)
02:03
[c9dfa64f05] Merge in changes to eliminate the BOOLWORD data type in favour of IMPURE BOOLEAN (user: kbk, tags: trunk)
02:00
[b0fee59756] Remove the BOOLWORD data type - it's just an IMPURE BOOLEAN (user: kbk, tags: kbk-impure)
2017-01-22
06:37
[3dbb7d1baf] oops: remove console dribble (user: kbk, tags: minor change, kbk-impure)
06:23
[46cc1a89c6] Separate the string-compare and numeric-compare parts of comparison operators, and correct the type errors that arise. (user: kbk, tags: kbk-impure)
2017-01-21
19:17
[cb098090c6] Merge mark (user: kbk, tags: kbk-impure)
19:17
[a89a734883] Merge in the implementation of IMPURE objects. (user: kbk, tags: trunk)
19:14
[3568a798b4] Complete (?) the implementation of the 'IMPURE' type. Restore 'uplus', which must have the side effect of purifying an impure argument. Suspect that there may be memory leakage in the 'impure' handling? (user: kbk, tags: kbk-impure)
17:40
[4d48a00e0e] Now [uplustest] runs, but fails as unary plus semantics not right yet. (user: dkf, tags: kbk-impure)
2017-01-19
09:03
[d430ba6853] Work around incompatibility with some revisions of Tcl 8.6. (user: dkf, tags: minor change, kbk-impure)
2017-01-17
03:49
[87f91db133] Remove a little bit of console dribble, and add the callframe to 'return' operations. (user: kbk, tags: callframe)
2017-01-16
19:48
[5c0d321e61] merge kbk-impure (user: kbk, tags: callframe)
19:47
[efcb016e7f] merge trunk (user: kbk, tags: kbk-impure)
2017-01-15
15:50
[c99a5954ba] Deprecate @debug-value and switch to using named sections for the module init function. (user: dkf, tags: trunk)
12:57
[9f60d78d45] Generate llvm.dbg.value annotations by implication. (user: dkf, tags: trunk)
2017-01-14
10:12
[8bbe3907b7] merge trunk (user: dkf, tags: kbk-impure)
2017-01-13
13:52
[28824a512e] Greatly improved generation of debugging metadata, supporting LLVM 3.8. (user: dkf, tags: trunk)
13:47
[8aceacd07a] Closed-Leaf: merge trunk (user: dkf, tags: dkf-llvm3.8-metadata-broken)
13:45
[7eecd30e91] Much better mechanism for generation of valid debugging metadata, now with fewer hacks! (user: dkf, tags: dkf-llvm3.8-metadata-broken)
13:44
[8fcb75bc5f] Closed-Leaf: Fix for generation of debugging information. Now correct, provided right llvmtcl version used. (user: dkf, tags: dkf-towards-doing-debugging-right)
2017-01-11
22:16
[46a8ade53d] Working towards getting debug metadata handling done the LLVM way. (user: dkf, tags: dkf-towards-doing-debugging-right)
2017-01-09
04:22
[8e4200acb3] merge trunk; improve tracing; make quadcode.tcl try to find out information about builtins (user: kbk, tags: callframe)
03:28
[901523ebae] SSA generation must not fail in the presence of unreachable code. (user: kbk, tags: kbk-impure)
2017-01-08
02:04
[c042455d72] Merge mark (user: kbk, tags: callframe)
02:03
[d91c391c1d] Merge trunk (user: kbk, tags: kbk-impure)
02:02
[1f2861675f] Pass quadcode logging options through the LLVM configuration. (user: kbk, tags: trunk)
01:34
[ca2e310318] merge trunk (user: kbk, tags: kbk-impure)
01:28
[71bac167a7] Turn off generation of @debug-value for now. It messes up dead variable elimination, and is pretty worthless since the code issuer doesn't understand it. (user: kbk, tags: trunk)
2017-01-07
19:19
[996ca57a46] Add store-load peephole optimization to the callframe management (user: kbk, tags: callframe)
2017-01-05
04:32
[02f28f9bf9] Initial sketch of callframe management at 'invoke' - not working, but at least shows the opcodes (user: kbk, tags: callframe)
2017-01-04
01:59
[0a03f41f22] Add notes about how constant jumps SHOULD be handled. (user: kbk, tags: kbk-impure)
01:25
[7da15439d0] merge trunk, remove console dribble (user: kbk, tags: kbk-impure)
01:21
[d248a45c23] Make interprocedural specialization and varargs work again. 'uplustest' is now the only demo failing to build (because it needs FAIL IMPURE). (user: kbk, tags: kbk-impure)
2017-01-03
17:06
[1636394572] Put helper procedures for types where they belong. (user: dkf, tags: dkf-llvm3.8-metadata-broken)
02:53
[e20a4d618d] Major refactoring of quadcode optimization, in preparation for node splitting. STILL DOES NOT WORK - at least three bugs: (a) varargs are broken, (b) interprocedural analysis is broken, (c) FAIL IMPURE is not handled. Demo cases depending on these bugs are commented out in the commit. (user: kbk, tags: kbk-impure)
2017-01-02
17:33
[299e27483e] Add in support for debug info about (C) arrays, and reorganise the code to declare the Tcl API types. (user: dkf, tags: dkf-llvm3.8-metadata-broken)
2017-01-01
19:11
[0cb5935dc5] merge trunk (user: dkf, tags: dkf-llvm3.8-metadata-broken)
19:07
[c47e1105be] Rearranging where debugging code belongs. (user: dkf, tags: trunk)
2016-12-31
14:15
[3e86ce7d9a] Fix by explicit installation of the function list. Requires llvmtcl update. (user: dkf, tags: dkf-llvm3.8-metadata-broken)
00:25
[6f7dbbbeba] This exposes the brokenness of the debugging metadata handling. (user: dkf, tags: dkf-llvm3.8-metadata-broken)
00:20
[883e2c849b] Avoid problems with debug metadata in LLVM 3.8 by stripping it. Will do as interim approach. (user: dkf, tags: trunk)
2016-12-30
01:04
[70256622bf] Fix a typo in a paper reference [SG95] for [SGL95]. (user: kbk, tags: kbk-impure)
00:48
[844f3bedb5] Merge mark (user: kbk, tags: kbk-impure)
00:47
[08d9daefec] Merge code for IMPURE objects. Some tests become slower. See doc/20161227impure-plan.txt for a plan to make them faster again. (user: kbk, tags: trunk)
00:29
[6d1c23a91a] Sreedhar and Gao algorithm for iterated dominance frontier. (user: kbk, tags: kbk-impure)
2016-12-29
17:57
[473ed73891] Fix crash in dropping refs to impure objects (user: kbk, tags: kbk-impure)
17:41
[8a09c39b5b] Stop drooling on the console. (user: kbk, tags: kbk-impure)
17:38
[8c73f85e04] Add level number in dominator tree, not yet used for anything (user: kbk, tags: kbk-impure)
17:27
[e142ea9b6b] Merge trunk and resolve conflicts in debugging data generation (user: kbk, tags: kbk-impure)
16:53
[12c4ef44d8] Add working notes on IMPURE - which implies modification to an SSA flowgraph, a complicated bit of work (user: kbk, tags: trunk)
16:51
[eebdf5b930] Add missing SVG version of the type algebra diagram (user: kbk, tags: trunk)
2016-12-28
18:05
[ffaa1a08a4] Cleaning up the debugging type system a bit. (user: dkf, tags: trunk)
2016-12-27
16:46
[afb4918584] Documenting the debugging API better. Some minor cleanup. (user: dkf, tags: trunk)
2016-12-22
16:33
[32b60b6507] Further improvement to debugging generation, making it reasonably accurate for the standard library. (user: dkf, tags: trunk)
08:31
[fd2a22a4d8] Improve the generation of debugging information for thunks, to work around LLVM 3.8 issue. (user: dkf, tags: trunk)
2016-12-18
03:03
[cd0f30783b] Add an IMPURE type schema, which forces the system to remember the string rep of a noncanonical object. (user: kbk, tags: kbk-impure)
2016-12-16
18:46
[04d9a61297] Add some missing working notes from early 2016 (user: kbk, tags: trunk)
2016-12-15
22:46
[3f948e7bcd] Introduce code to keep track of the list of commands being compiled. Remove insane 'upvar 3' that accessed the list' (user: kbk, tags: trunk)
20:56
[e983950548] Add flightawarebench::test 5 5 2 to the slow demos (user: kbk, tags: trunk)
2016-12-11
16:36
[01ca11f042] Ensure that we error on instructions issued after a terminator. (user: dkf, tags: trunk)
2016-12-01
08:29
[8bb3474f9d] Rearrange where IncrRefCount happens in strcat code. (user: dkf, tags: trunk, minor change)
2016-11-30
20:03
[6fdc75a4c4] Correction to refcount management in strcat. (user: dkf, tags: trunk)
2016-11-27
19:06
[d4eb573de6] Use the right level parameter... (user: dkf, tags: trunk)
18:59
[1008f066e8] Improve inter-procedural invoke handling to stop it from leaking into third-party code. (user: dkf, tags: trunk)
2016-11-26
16:37
[6011bb265b] Corrections to object reference count management, noticeable with 'invoke'. (user: dkf, tags: trunk)
2016-11-20
13:37
[d66f906937] Tweak code generation path for [string cat] where first argument is a non-string. (user: dkf, tags: trunk)
2016-11-19
11:06
[80e23bd14a] Extend Tcl API coverage to Tcl_Panic(). (user: dkf, tags: trunk)
2016-11-17
16:30
[d97e8922b0] Fix bug in increment compilation. Working towards second of FlightAware performance challenges. (user: dkf, tags: trunk)
2016-11-16
20:16
[97730a8a55] Added mechanism to stop slow test cases from being normally run. (user: dkf, tags: trunk)
20:03
[a951f54c8a] Added test case from the FlightAware benchmark suite. Fix bug found in testing. (user: dkf, tags: trunk)
14:01
[eb9948752e] Added more test cases, work around bug that that exposed. (user: dkf, tags: trunk)
2016-11-14
16:27
[269a1ff611] More testing of calling out. Fix a couple of minor bugs exposed in the process. (user: dkf, tags: trunk)
2016-11-12
14:57
[589576287d] Added an example of sorting using quicksort. (user: dkf, tags: trunk)
13:35
[febaf76f23] Added another example, necessesitating improvements to mod compilation. (user: dkf, tags: trunk)
2016-09-24
17:50
[02c85466cb] Correct usage of getelementptr. Mostly cosmetic problems, but some latent bugs. (user: dkf, tags: trunk)
15:01
[eb2f5aae8b] merge trunk (user: dkf, tags: tcl-api)
2016-09-20
08:32
[231c6e85bc] Add a couple more test cases. (user: dkf, tags: trunk, minor change)
08:25
[a59d59c497] [61ad268634] Make the non-string comparison operators behave correctly when applied to STRINGs that look numeric. (user: dkf, tags: trunk)
08:18
[dd5594ecd8] Closed-Leaf: merge trunk (user: dkf, tags: bug-61ad268634)
07:30
[01b9eac3dd] Some cleaning up of Call usage, constant handling and warnings. (user: dkf, tags: trunk)
2016-09-19
19:05
[4d1f961e4b] Clean up some warning machinery. (user: dkf, tags: bug-61ad268634)
17:13
[4c4a5e72e5] Fix collision in Tcl_Obj constant management. (user: dkf, tags: bug-61ad268634)
2016-09-18
16:05
[bc5ee74861] Fixed some of the problems. (user: dkf, tags: bug-61ad268634)
11:53
[0b87c61aa2] merge trunk (user: dkf, tags: bug-61ad268634)
11:52
[327721c415] More neating up of call protocol. (user: dkf, tags: trunk, minor change)
11:50
[ed9c4cfc98] Better performance. Triggering a bug elsewhere. (user: dkf, tags: bug-61ad268634)
11:21
[48a7b57e01] Semantically correct now, but performance stinks (user: dkf, tags: bug-61ad268634)
11:03
[3ddaee4f10] Demonstrate that comparisons are wrong when the type is believed to be STRING. (user: dkf, tags: bug-61ad268634)
10:58
[fc67fdb705] Remove some bits of junk. (user: dkf, tags: trunk, minor change)
2016-09-16
08:57
[40be7aa056] More factoring out of stuff. (user: dkf, tags: trunk)
2016-09-13
15:56
[ae2ba52b89] Remove detailed internal timing; the operations it studies are really fast now. (user: dkf, tags: trunk)
2016-09-10
14:40
[ee1b9692db] Cleaning up code to be less squirrelly. Allow {} as alias for NULL in API calls. (user: dkf, tags: trunk)
12:39
[81129c0d62] merge trunk (user: dkf, tags: tcl-api)
2016-09-08
10:30
[ab5cc6c33b] Updated the README. (user: dkf, tags: trunk, minor change)
2016-09-07
15:11
[bfd5c33fad] Fix syntax errors and add check for double index use in stub table import. (user: dkf, tags: tcl-api)
14:57
[4996430eac] merge trunk (user: dkf, tags: tcl-api)
2016-09-06
10:04
[1d75496357] More cleaning up and simplifying. (user: dkf, tags: trunk)
07:29
[d8e13a63f0] Added default names to most results of API calls to reflect Tcl internal use. (user: dkf, tags: trunk)
2016-09-04
11:51
[dae243c84d] [0616bcf08e] Fix type casting problem triggered by lack of standard functions for some types. (user: dkf, tags: trunk)
11:41
[28f73ea4fd] Closed-Leaf: Adding more implementations of types for basic math casts fixes. Also added closely-related version of demo code. (user: dkf, tags: bug-0616bcf08e)
2016-09-03
12:24
[115a3531ad] [0616bcf08e] Commit code to demonstrate bug to tree. (user: dkf, tags: bug-0616bcf08e)
2016-09-01
07:08
[ed6dc39088] Added some more macros to make accessing a Tcl_HashTable easier. (user: dkf, tags: trunk)
2016-08-31
19:55
[7720e9140a] Extending Tcl API linkage and adding offsetof to basic toolbox. (user: dkf, tags: trunk)
2016-07-31
14:06
[8693aacef0] Added generation of debugging information and more complete handling of Tcl's internal types. (user: dkf, tags: trunk, major change)
13:18
[60accb7695] Closed-Leaf: merge trunk (user: dkf, tags: dkf-debugging-metadata)
2016-06-26
07:39
[822b964976] Added a smaller demonstration script that's easier for other people to grok. (user: dkf, tags: trunk)
2016-06-25
12:08
[81e1dcbf89] Added definition of package; update demo code to formally use package. (user: dkf, tags: trunk)
2016-06-14
07:22
[ea34371d0f] Allow use of globs in arguments to [LLVM optimise]. (user: dkf, tags: trunk)
2016-05-28
08:58
[fa6d469756] Mark which arguments to Tcl API functions are read-only. (user: dkf, tags: trunk)
2016-05-22
15:25
[7f96120fa1] Working on extending the API bindings. (user: dkf, tags: tcl-api)
13:53
[20e87e325a] merge trunk (user: dkf, tags: minor change, dkf-debugging-metadata)
13:50
[6c641efdf9] Tweak to how Tcl API calls are annotated. (user: dkf, tags: trunk, minor change)
11:06
[293b2a357c] Make the nonnull constraints less ugly. (user: dkf, tags: dkf-debugging-metadata)
10:47
[e59df685d2] merge trunk (user: dkf, tags: dkf-debugging-metadata)
2016-05-16
08:30
[dc2ab00abc] Update to llvmtcl 8.6.2 and use nonnull attributes. This substantially speeds up the LLVM optimisation phase. (user: dkf, tags: trunk)
2016-05-02
11:39
[dc6a49a0ab] merge trunk (user: dkf, tags: dkf-debugging-metadata)
11:31
[4483e1ba93] Allow the use of literals that can be strings or booleans as strings. (user: dkf, tags: trunk)
11:31
[824ed9e5de] Closed-Leaf: And it now lets me fix the mrtest::calc example. (user: dkf, tags: dkf-boolword)
11:24
[05464f35cd] This seems to be working. Refcount management is just refcount management of the contained string. (user: dkf, tags: dkf-boolword)
10:38
[e6734745c7] Starting trying to handle awkward maybe-boolean values. (user: dkf, tags: dkf-boolword)
2016-03-20
15:32
[76979a00d9] merge trunk (user: dkf, tags: dkf-debugging-metadata)
15:30
[1158dcbf57] Correct handling of all of [string is], and debug analysis code coverage analyser. (user: dkf, tags: trunk)
15:29
[42ff011433] Closed-Leaf: One more test case, with a surprising outcome but works correctly. (user: dkf, tags: minor change, dkf-analysing-which-stdlib-functions-used)
15:25
[8270c29566] Faster way of handling impure numeric type tests. (user: dkf, tags: dkf-analysing-which-stdlib-functions-used)
2016-03-15
10:51
[373508ccf0] Support non-strict [string is int/double]. Needs performance tuning. (user: dkf, tags: dkf-analysing-which-stdlib-functions-used)
2016-03-13
16:40
[6ba30caf8e] Stop playing so many games with function names. Remove unused operation. Add more checks for [string is]. (user: dkf, tags: dkf-analysing-which-stdlib-functions-used)
2016-03-02
10:40
[139d8cf86f] Working on figuring out what is dead code and what is not. (user: dkf, tags: dkf-analysing-which-stdlib-functions-used)
2016-02-29
18:37
[6d0abe9f7a] merge trunk (user: dkf, tags: dkf-debugging-metadata)
18:14
[5267528150] Faster implementation of jump tables. (user: dkf, tags: trunk)
14:26
[6332913358] merge trunk (user: dkf, tags: dkf-debugging-metadata)
13:31
[060ae116cc] Implementation of ZEROONE not in terms of INT but in terms of a bit. (user: dkf, tags: trunk)
10:20
[3cdca3d112] Mark booleans as booleans, and ZEROONE is a boolean. (user: dkf, tags: minor change, dkf-debugging-metadata)
2016-02-28
15:48
[c00cc6380f] Closed-Leaf: merge trunk; prevent accidental jump table merging (user: dkf, tags: dkf-jumptable)
15:36
[524019c5bd] merge trunk (user: dkf, tags: dkf-debugging-metadata)
13:48
[0ca6a4b88d] Closed-Leaf: merge trunk (user: dkf, tags: minor change, dkf-real-ZEROONE-type)
12:23
[aaf858ac25] Inline a few more bits from the scripted parts of llvmtcl. (user: dkf, tags: trunk, minor change)
12:12
[be80dabc55] It's much faster to optimise everything at once, just once. So stop being silly. (user: dkf, tags: trunk, minor change)
11:39
[d31a177f35] The bool() function needs an optimal path. (user: dkf, tags: dkf-real-ZEROONE-type)
10:52
[0ca081032a] Making the widenTo implementation less weird to get rid of an edge case elsewhere. (user: dkf, tags: minor change, dkf-real-ZEROONE-type)
08:33
[94d3e0cb4c] More tweaking arising from having the cleaner ZEROONE type. (user: dkf, tags: minor change, dkf-real-ZEROONE-type)
08:11
[2785dc2a52] Remove unused method. (user: dkf, tags: dkf-real-ZEROONE-type)
2016-02-22
13:14
[d03f151632] Fix many comments. (user: dkf, tags: minor change, dkf-real-ZEROONE-type)
10:48
[685bdbed31] Implementation of ZEROONE not in terms of INT but in terms of a bit. Works, but many comments need to be fixed. (user: dkf, tags: dkf-real-ZEROONE-type)
2016-02-18
18:57
[19d4e64dd9] Cleaning up some of the handling of booleans in the code generator. (user: dkf, tags: trunk, minor change)
2016-02-17
19:07
[e6946a4df1] Yet more removal of now-unused code. Improved some comments. (user: dkf, tags: trunk, minor change)
2016-02-15
20:02
[8d5c128bd3] Remove some unused/unnecessary variables. (user: dkf, tags: trunk, minor change)
2016-02-07
19:01
[8ce8a87ccd] Added some Tcl manpage-style documentation. Updated package to load right files. (user: dkf, tags: trunk)
2016-02-03
09:50
[089485836e] A faster jumptable; less overhead of object management makes a difference. (user: dkf, tags: dkf-jumptable)
2016-02-02
14:27
[eb2b097144] Allow optimizer to combine reads from 'constants'. (user: dkf, tags: trunk)
12:02
[076540ddea] merge trunk (user: dkf, tags: dkf-debugging-metadata)
2016-02-01
09:41
[a6a50f0a6c] Working on a better way of doing the jump table. This version isn't it... (user: dkf, tags: dkf-jumptable)
09:01
[7ab3d47598] Reduce some duplication in the code. Revisit the macro-like parts of the Tcl API. (user: dkf, tags: trunk, minor change)
2016-01-27
09:52
[f5c786617c] Splitting up the code a bit more, for sanity's sake. (user: dkf, tags: trunk, minor change)
2016-01-25
20:04
[4d7185498b] Rename the implementation-internal 'path' type to 'vector' and manage its lifetime better. (user: dkf, tags: trunk, minor change)
09:04
[cee099084e] Move the intermediate level instruction issuers to their correct file. (user: dkf, tags: trunk, minor change)
01:10
[14923d1963] Clean up the code generator quite a bit, and make catch-of-call work more as expected. (user: dkf, tags: trunk)
2016-01-22
20:08
[9f9d26fba3] Small tweaks to make the code cleaner. Heavy numeric code gets some benefit from more efficient union tags. (user: dkf, tags: trunk)
2016-01-20
10:19
[811fae03a4] Some small simplifications of code. (user: dkf, tags: trunk, minor change)
2016-01-18
00:19
[a6b1218504] Add widening from integer types and DOUBLE to NUMERIC (it wasn't there before). Make math functions polymorphic so that int(INT) and double(DOUBLE) won't come up as undefined. Add a couple of trivial varargs tests to the demos. Remove type inference from the end of the initial quadcode transformation. It doesn't work in the presence of specialization, and in any event was there only for compile-time performance. Add specialization of variadic procedures. (user: kbk, tags: trunk)
2016-01-17
22:18
[77caa1bff7] merge trunk (user: dkf, tags: dkf-debugging-metadata)
2016-01-15
00:45
[b07e47eb78] Switch to using the interprocedural specializer to drive quadcode generation and LLVM translation. (user: dkf, tags: trunk, major change)
00:41
[144b283954] Closed-Leaf: Clean out code not needed now we have the interprocedural quadcode system. (user: dkf, tags: dkf-interprocedural)
2016-01-14
12:42
[57e24ca013] Fix type errors in implementations of math operators between INTs and NUMERICs. (user: dkf, tags: dkf-interprocedural)
2016-01-13
09:49
[e711e18ec2] Fix silly error; [mrtest::calc] now works. (user: dkf, tags: dkf-interprocedural)
2016-01-12
09:59
[43cbc2196b] Nearly got the interprocedural stuff functioning correctly. (user: dkf, tags: dkf-interprocedural)
2016-01-11
11:31
[c489811c8c] Working on improving the model of how the thunk and the compiled function connect to each other. (user: dkf, tags: dkf-interprocedural)
03:09
[bf61cb5ccb] Merge fixes for determining types of foreign functions (user: kbk, tags: dkf-interprocedural)
03:07
[c67ca34366] Add type checking on the parameters to the builtin functions (user: kbk, tags: trunk)
2016-01-10
12:09
[6af070a2c7] Enough to be able to compile simple cases. (user: dkf, tags: dkf-interprocedural)
2016-01-08
14:59
[bc1164ed74] Even better error trace. (user: dkf, tags: minor change, dkf-interprocedural)
14:51
[70cb29c229] merge trunk (user: dkf, tags: minor change, dkf-interprocedural)
14:50
[b87430323e] Better handling of error traces. (user: dkf, tags: trunk)
14:49
[d26a8a2637] Fix simple error. (user: dkf, tags: dkf-interprocedural)
2016-01-07
18:37
[fc8d981107] Working on converting to use the new style interprocedural compiler. Still broken in many ways. (user: dkf, tags: dkf-interprocedural)
18:19
[d64b9a65f1] Disable printed message. (user: dkf, tags: trunk, minor change)
16:02
[bc32b5b60a] Whitespace (user: dkf, tags: trunk, minor change)
11:18
[b75f045c24] merge trunk (user: dkf, tags: minor change, dkf-debugging-metadata)
11:17
[6d23c1599f] Fix bug in list indexing code. (user: dkf, tags: trunk, minor change)
10:00
[53bd04972e] D'oh! (user: dkf, tags: minor change, dkf-debugging-metadata)
09:58
[f2ec06f36a] Use the @debug-value info rather than guessing it. Actual information generated virtually identical. (user: dkf, tags: dkf-debugging-metadata)
09:39
[c608c21ff6] Add directives to the quadcode to identify the mapping between values in the quadcode and names of variables in the Tcl source. (user: dkf, tags: dkf-debugging-metadata)
09:27
[9db7250a10] merge trunk (user: dkf, tags: dkf-debugging-metadata)
09:26
[6c640c59e9] Much stronger handling of the domains of functions, cleaning up the mess of uplus. (user: dkf, tags: trunk)
01:40
[6a11c2fe27] Remove redundant 'isInstance' checks (user: kbk, tags: kbk-domain-check)
2016-01-06
17:31
[97fca2ced2] Purge uplus, which is no longer used. (user: dkf, tags: kbk-domain-check)
17:18
[85a95241c5] Fix bug in [math::ln_Gamma] exception generation. (user: dkf, tags: minor change, kbk-domain-check)
11:40
[b3a6995def] More documenting, more tidying, more trying to make the code comprehensible. (user: dkf, tags: kbk-domain-check)
00:43
[52bf644e44] Cleaning up and commenting. (user: dkf, tags: kbk-domain-check)
2016-01-05
01:13
[55a43e7e21] Add widening of return values to the formal return type of the proc. (user: kbk, tags: kbk-domain-check)
2016-01-04
23:35
[08833f726d] fix basic block linkage in constjump, and move sortbb to where it will do some good. (user: kbk, tags: kbk-domain-check)
20:22
[7672f8cf7c] Implement checkArithDomain for DOUBLE and INT types too. (user: dkf, tags: kbk-domain-check)
20:19
[6807dbd307] Forgot the basic block generation part. (user: dkf, tags: minor change, kbk-domain-check)
20:18
[4ce8cb8183] Implement throwArithDomainError (user: dkf, tags: kbk-domain-check)
20:07
[fe63609523] First pass at implementing missing quadcodes, enough to make demo.tcl all work. (user: dkf, tags: kbk-domain-check)
11:30
[a9c51502f7] Tinkering with describing Tcl types. (user: dkf, tags: dkf-debugging-metadata)
04:20
[0c4c722952] Comment out faling demos, and tidy up quadcodes.txt (user: kbk, tags: kbk-domain-check)
04:18
[197b203768] Comment out faling demos, and tidy up quadcodes.txt (user: kbk, tags: kbk-domain-check)
2016-01-03
22:43
[6d3f2b34c0] Add a pass to untangle the insane code that the bytecode system produces for && and || operators. The type check in 'ln_Gamma' now correctly deduces the type of the variable. (user: kbk, tags: kbk-domain-check)
06:26
[95d296a8d0] OOPS: another missing file in the repo (user: kbk, tags: kbk-domain-check)
05:25
[77daad917a] Narrowing of types that are determined by [string is] (user: kbk, tags: kbk-domain-check)
03:52
[522a2af004] Remove dribble, and remove bad arith domain check for comparison operators. (user: kbk, tags: kbk-domain-check)
03:49
[abe1b2fedc] Expand type calculus to accommodate [string is] - INT32 and EMPTY types (user: kbk, tags: kbk-domain-check)
03:38
[fd686fac5a] Oops - missing quadcode/abbreviate.tcl (user: kbk, tags: kbk-domain-check)
02:13
[d8314ab077] merge trunk (user: kbk, tags: kbk-domain-check)
02:09
[1b34097d09] Add 'stringIs' quadcodes for the numeric types, and do the bytecode machinations needed to identify them. These quadcodes are not yet implemented! (user: kbk, tags: kbk-domain-check)
2016-01-02
21:39
[94b31db52f] merge trunk (user: dkf, tags: dkf-debugging-metadata)
21:36
[b9b15a4bfe] Added missing implementations of binary operations where one argument is a DOUBLE. They were there in the type logic, but not implemented. Permits a more naturalistic math::ln_Gamma example. (user: dkf, tags: trunk)
18:35
[908c1d89ec] Corrections to local variable annotation. Make [math::ln_Gamma] slightly more realistic. (user: dkf, tags: dkf-debugging-metadata)
17:56
[b4facd76b4] Annotate local variables with their debugging information. (user: dkf, tags: dkf-debugging-metadata)
17:30
[c70f8c54c1] Starting to push annotations into generated functions. (user: dkf, tags: dkf-debugging-metadata)
16:12
[7647f540e6] Allow, but not yet actually do, setting of code locations. (user: dkf, tags: dkf-debugging-metadata)
03:03
[56855d5260] NOT WORKING: Attempt to implement the 'numericType' quadcode, and generate code for a much less stripped-down 'ln_gamma' procedure (user: kbk, tags: kbk-domain-check)
2016-01-01
22:54
[0e58d05109] Better ways of binding standard channels. Better way of controlling argument aliasing. (user: dkf, tags: minor change, dkf-debugging-metadata)
2015-12-30
17:47
[d34e969c56] Sort the code to be more sensibly ordered. (user: dkf, tags: minor change, dkf-debugging-metadata)
17:14
[119f7b6740] Fix the documentation. (user: dkf, tags: minor change, dkf-debugging-metadata)
17:08
[900be8b9f0] Add variable debug info; outside-in at the moment. Required forcing all functions to be explicitly validated, which in turn triggered quite a bit of cleaning up of the code. (user: dkf, tags: dkf-debugging-metadata)
02:35
[073735f34f] Closed-Leaf: Add directives to the quadcode to identify the mapping between values in the quadcode and names of variables in the Tcl source. (user: kbk, tags: kbk-source-var-id)
2015-12-26
16:17
[6ba046ec6c] Generation of debug data no longer fails and the types are mostly correct. (user: dkf, tags: dkf-debugging-metadata)
2015-12-24
20:19
[17faaab34d] Working on integrating new capabilities in llvmtcl 3.6.1 for debugging metadata. (user: dkf, tags: dkf-debugging-metadata)
18:05
[c6cb1694f5] make type-dependent optimizations run in the specializer. (They may have to run earlier, because they can affect a return type!) (user: kbk, tags: kbk-domain-check)
02:47
[f126bfeb40] Remove the 'uplus' opcode and add the three new operations for type checking. (user: kbk, tags: kbk-domain-check)
2015-12-23
20:29
[93c63d3fd5] Remove most redundant aritmetic type checks (user: kbk, tags: kbk-domain-check)
17:56
[1eae9a1e70] Generate instructions to do type checking on the operands of the arithmetic and bitwise Boolean operations (user: kbk, tags: kbk-domain-check)
2015-12-19
11:36
[96265733fe] Limit [Type] usage. Limit LLVM API usage. Add @before method to Builder. (user: dkf, tags: trunk)
11:34
[d0ca0117b4] Closed-Leaf: Corrections to null issuing. Add @before method to Builder. (user: dkf, tags: dkf-limiting-type-usage)
03:18
[22e023a73d] Merge in changes to eliminate more 'exists' checks (user: kbk, tags: trunk)
03:16
[d2acf711dc] Closed-Leaf: quick update to quadcodes.txt for changes to 'throwIfNotExists' (user: kbk, tags: kbk-transform-speedup)
02:45
[1b9f9e4b56] Added a 'deadjump' optimization to eliminate jumpTrue and jumpFalse on a constant condition. Not sure it's worthwhile, but at least it works. (user: kbk, tags: kbk-transform-speedup)
2015-12-18
18:40
[e0a44e146c] Add peephole optimization of 'exists' flowing directly into conditional jump. Add explicit variable names to throw(If)NotExists, because aggressive copy propagation can lose the variable entirely. Fix a problem where basic block coalescence loses a throwNotExists. (user: kbk, tags: kbk-transform-speedup)
16:21
[a40649aeb9] merge mark (user: kbk, tags: kbk-transform-speedup)
16:18
[b171f19169] Rebase dkf's changes to scope down use of llvmtcl API (user: kbk, tags: dkf-limiting-type-usage)
16:15
[055ae6d063] Rebase dkf's changes to scope down the use of [Type] (user: kbk, tags: dkf-limiting-type-usage)
16:09
[4279efff35] Merge in rewrite of quadcode transformations that is a substantial speedup (and yields clearer intermediate code, to boot) (user: kbk, tags: trunk)
15:53
[a4b0eb2f3e] Remove smartass hack. (user: dkf, tags: minor change, kbk-transform-speedup)
15:37
[9d233f7322] merge mark (user: kbk, tags: kbk-transform-speedup)
15:28
[752b4da1d2] OOPS! Add codegen/flatten.tcl (user: kbk, tags: kbk-transform-speedup)
14:46
[9943999441] Closed-Leaf: Scoping down use of llvmtcl API. (user: dkf, tags: minor change, limiting-Type-usage)
14:42
[261d7c807d] Scoping down the use of [Type]. (user: dkf, tags: limiting-Type-usage)
2015-12-17
23:44
[866d14b2f4] Closed-Leaf: Merge in reimplemented quadcode-to-quadcode transformations. These are no longer dependent on Datalog and are much faster. (user: kbk, tags: mistake)
23:43
[61b574bdb7] move flattening out into its own file. (user: kbk, tags: kbk-transform-speedup)
23:37
[4462174e66] move type widening back to widen.tcl where it belongs and delete the obsolete typeinf.tcl (user: kbk, tags: kbk-transform-speedup)
23:32
[230e61abb6] Move the rest of type inference out to types.tcl (user: kbk, tags: kbk-transform-speedup)
22:58
[a8b6f5b388] move unkillable into deadcode (user: kbk, tags: kbk-transform-speedup)
22:23
[5304afa29a] Pull out 'liveranges'. Still need to break up the incredibly bad method that computes the liveness. (user: kbk, tags: kbk-transform-speedup)
21:28
[367a8ab3c9] Remove a superfluous 'bborder' from 'bbVarsExist' (user: kbk, tags: kbk-transform-speedup)
21:24
[8f4d52ab3e] Split off variable existence checks into a separate file (user: kbk, tags: kbk-transform-speedup)
21:02
[f183f7e89e] Split out ud- and du-chaining, and make 'quads-list-vars' a thing of the past. (user: kbk, tags: kbk-transform-speedup)
20:34
[069dcd0b37] Tidy up SSA (user: kbk, tags: kbk-transform-speedup)
20:17
[430f266a6c] Further reorganization: SSA broken out into its own file again. (user: kbk, tags: kbk-transform-speedup)
19:51
[22f0246e9d] Start breaking up transformer.tcl into separate files for the passes again, to keep the file sizes halfway sane. (user: kbk, tags: kbk-transform-speedup)
19:28
[cd4f0a04c5] Make specializer work again. (user: kbk, tags: kbk-transform-speedup)
18:28
[574514c69d] merge trunk (user: kbk, tags: kbk-transform-speedup)
15:31
[fc9d17b784] [bf8b6fd9e9] Make div and mod generate errors to match Tcl semantics. (user: dkf, tags: trunk)
15:05
[7fb09b236d] merge trunk (user: kbk, tags: kbk-transform-speedup)
09:43
[640aec4d59] Closed-Leaf: Make 'div' and 'expon' produce the right errors. (user: dkf, tags: erroring-div)
00:35
[30f811e497] More shoveling out now-obsolete code (user: kbk, tags: kbk-transform-speedup)
00:20
[2195167585] More wholesale shoveling out of now-obsolete code. (user: kbk, tags: kbk-transform-speedup)
00:14
[00ad2e766d] Remove the Datalog-dependent code. (user: kbk, tags: kbk-transform-speedup)
00:08
[4f2cedf8f3] Copy all literals before they arrive at phi, because otherwise code is emitted prior to the phi's appearance but in the same basic block. (user: kbk, tags: kbk-transform-speedup)
2015-12-16
23:56
[e54e9eac84] add a missing case in doExists - nextest2/nextest3 now work. (user: kbk, tags: kbk-transform-speedup)
23:29
[5cec633560] Handle unreachable quadcode, and rework phi yet again for correct ref counts. Liveness now needs to come after type analysis. Now down to three failing tests: switchfail (misplaced phi), nextest2/3 (crash in 'flatten') (user: kbk, tags: kbk-transform-speedup)
11:45
[3b8b2859b6] Make expon able to generate errors. (user: dkf, tags: erroring-div)
03:29
[e594d0067f] Add type widening, and rewire into demo.tcl. 8 test cases fail to build or execute. (user: kbk, tags: kbk-transform-speedup)
2015-12-15
23:35
[55c142cae7] [bf8b6fd9e9] Make div and mod able to generate errors. (user: dkf, tags: erroring-div)
19:05
[a46404e5bd] Split the methods that connect to LLVM further out of the rest of the compiler. This is a prelude to eventually converting these to C or C++. (user: dkf, tags: trunk)
13:24
[5dab8e0700] Work in progress: fixing bugs in the new quadcode transformations. (user: kbk, tags: kbk-transform-speedup)
01:32
[20e14dc7d6] Add type inference. Clean up ud- and du-chains of deleted code. Modify compile.tcl to allow literals to flow into phi. (user: kbk, tags: kbk-transform-speedup)
2015-12-14
23:14
[e1d3ac89bc] First step of splitting the code issuer to be usable with the new quadcode creator. (user: dkf, tags: trunk)
15:02
[8cd80da3dd] Pull some of the data type logic into transformer.tcl in preparation for doing the data type analysis there. (user: kbk, tags: kbk-transform-speedup)
01:25
[739dece8b3] Scaffolding: flatten code back to linear quadcode. Alas, breaks type inference because of literals at phi that need widening. (user: kbk, tags: kbk-transform-speedup)
2015-12-13
20:40
[8f4ae860fe] Better commentary about the instance variables (user: kbk, tags: minor change, kbk-transform-speedup)
05:04
[9bece5ebc9] Removed a missed piece of console dribble (user: kbk, tags: kbk-transform-speedup)
05:03
[4a34606660] Fix a bad typo in liveVariables, and add some defensive code to it. (user: kbk, tags: kbk-transform-speedup)
04:08
[50c9dd6851] Remove dead phi instructions from the heads of basic blocks (user: kbk, tags: kbk-transform-speedup)
2015-12-12
18:31
[ab3fbc7b1d] Live variable ranges and memory management (user: kbk, tags: kbk-transform-speedup)
17:05
[fd99a9df5c] Fix [array set] to work in all circumstances. (user: dkf, tags: trunk)
16:15
[d978bf403a] Closed-Leaf: Add another special case. (user: dkf, tags: minor change, fix-array-set)
11:51
[1208f3b58e] Better fixes for the [array set] code that handle the other edge cases. (user: dkf, tags: fix-array-set)
03:26
[46369cc287] Fully qualify command names wherever possible (user: kbk, tags: kbk-transform-speedup)
03:12
[49878edda4] dead variable analysis, better debugging, and fix a problem where doExists overwrote its own results (user: kbk, tags: kbk-transform-speedup)
02:02
[3aab7808bf] Make [array set] work. (user: dkf, tags: fix-array-set)
01:15
[501e46f823] Restore predecessor, ud-chain, du-chain after dead basic block elimination (user: kbk, tags: kbk-transform-speedup)
00:32
[0fd0e56717] Add ud- and du-chaining, rudimentary optimization of variable existence checks, and removal of unreachable or empty basic blocks. (user: kbk, tags: kbk-transform-speedup)
2015-12-11
14:48
[fa0e20f86f] propagate [info exists] information (user: kbk, tags: kbk-transform-speedup)
02:59
[ff47d45802] critical edge splitting (user: kbk, tags: kbk-transform-speedup)
2015-12-10
05:48
[239a545a22] SSA and copy propagation with discrete basic blocks - not even close to working, but progress being made. (user: kbk, tags: kbk-transform-speedup)
02:12
[5d0913005c] Basic block partition and dominators. Nothing else is even close to working! (user: kbk, tags: kbk-transform-speedup)
02:10
[cdb53e26af] Basic block partition and dominators. Nothing else is even close to working! (user: kbk, tags: kbk-transform-speedup)
2015-12-09
00:39
[a9a88fe2ac] Open a branch for speeding up quadcode-to-quadcode transformations (user: kbk, tags: kbk-transform-speedup)
00:37
[3e35e39966] Merge in the type specializer for interprocedural analysis. Nothing calls it yet, but it seems Mostly Harmless to have it on trunk. (user: kbk, tags: trunk)
00:33
[5a7d3d24f7] Closed-Leaf: Merge trunk and correct the check for a void return type (user: kbk, tags: kbk-interprocedural)
2015-12-08
19:22
[6b46e5a9df] Fix various problems with reference counting of literals. (user: dkf, tags: trunk)
19:19
[74df155395] Closed-Leaf: Some minor cleanup. (user: dkf, tags: minor change, bug-literal-reference-counts)
10:35
[8c31b90c61] Fix more reference count problems. Make the compiler less annoying to read (necessary for making this debugging sane). (user: dkf, tags: bug-literal-reference-counts)
2015-12-07
03:56
[20fd15d7ff] Further refactoring. Demos run, mrexample.tcl now generates plausible bytecode. Next comes integration with the code issuer. (user: kbk, tags: kbk-interprocedural)
2015-12-06
19:20
[4b7d28e033] merge trunk (user: kbk, tags: kbk-interprocedural)
19:16
[ba51829bd1] Continue refactoring toward type specialization of procedures. (user: kbk, tags: kbk-interprocedural)
2015-12-04
15:44
[6e0b2599b6] A little bit further with the reference count debugging. Not yet perfect. (user: dkf, tags: bug-literal-reference-counts)
2015-12-03
14:42
[9e22666b4c] Missed a spot which could be simplified. (user: dkf, tags: minor change, bug-literal-reference-counts)
13:54
[0836ac873f] Fixing refcount issues. Cleaning up llvm.assume usage. (user: dkf, tags: bug-literal-reference-counts)
2015-12-02
06:26
[036b659a77] Re-enable failing test. (user: dkf, tags: trunk, minor change)
2015-12-01
14:29
[18933148ed] re-enable failing test (user: kbk, tags: minor change, kbk-interprocedural)
14:01
[349822df99] Corrected the type magic for generating code for FAIL results. (user: dkf, tags: kbk-interprocedural)
13:29
[0c1785e583] better formatting of type of procedure in quadcode.tcl's display. (user: kbk, tags: kbk-interprocedural)
13:17
[1e14efcc7b] Fix return type of unknown commands (user: kbk, tags: kbk-interprocedural)
08:55
[568a836af0] merge trunk (user: dkf, tags: minor change, kbk-interprocedural)
08:55
[89524543b7] Less confusing error message from StoreResult method. (user: dkf, tags: trunk, minor change)
03:21
[f7fee5e9c5] clean up errors in merge (user: kbk, tags: kbk-interprocedural)
03:10
[2d60767885] Rather nasty merge with trunk (user: kbk, tags: kbk-interprocedural)
02:49
[ab62aeddd4] Add some comments to the specializer, so that I can look at it without feeling ill. (user: kbk, tags: kbk-interprocedural)
2015-11-30
20:18
[554d2cf6a3] Support [string is boolean] and friends. (user: dkf, tags: trunk)
20:17
[e6ad7021c8] Closed-Leaf: merge trunk (user: dkf, tags: minor change, boolean-test)
20:05
[0cbf0e9b9e] Add in ability to call normal Tcl commands. (user: dkf, tags: trunk)
20:02
[93c58158fe] Closed-Leaf: Fix broken 'jumpMaybeNot'. (user: dkf, tags: general-call)
19:56
[7cb1ebdd32] merge trunk (user: dkf, tags: minor change, general-call)
19:53
[31a9854f5a] More improvements to the performance tester. (user: dkf, tags: trunk, minor change)
03:03
[216254acfe] Added, temporarily, an example of mutually recursive procedures (user: kbk, tags: kbk-interprocedural)
03:02
[4efba5cacb] Further progress toward type specialization - not working at all! (user: kbk, tags: kbk-interprocedural)
2015-11-29
13:24
[7d74d1583e] Improved self-tuning analysis. Split up test cases to be better for timing of compiled code. (user: dkf, tags: trunk)
12:41
[de48d136d1] More doodlings about interprocedural analysis (user: kbk, tags: kbk-interprocedural)
2015-11-28
23:02
[25d50528e7] merge trunk (user: dkf, tags: minor change, boolean-test)
22:59
[9440749245] Reenable compilation of wordcounter example. (user: dkf, tags: trunk, minor change)
20:10
[712603a02c] merge trunk (user: kbk, tags: kbk-interprocedural)
20:08
[98e3477e48] Further refactoring to bring more of type analysis into the quadcode::database object. (user: kbk, tags: kbk-interprocedural)
16:13
[cfd3564020] Added a way to filter the running of demos with the -just option. (user: dkf, tags: trunk)
16:12
[f05804dcdc] Closed-Leaf: Added a way to filter the running of demos with the -just option. (user: dkf, tags: filtered-demo-running)
2015-11-27
17:17
[9aa525891c] Add an error case for a misplaced throwNotExists (user: kbk, tags: kbk-interprocedural)
15:18
[4989e32331] Rationalize the call graph a tiny bit. (user: kbk, tags: kbk-interprocedural)
11:40
[a12921cb95] Improved semantics of 'not' — based on better capabilities elsewhere — let me fix things neatly. (user: dkf, tags: boolean-test)
06:22
[38b949230b] Fix inappropriate font size in callgraph diagram for 'transform' (user: kbk, tags: kbk-interprocedural)
05:52
[4a68b016f7] Put a callgraph of the 'transform' method in the documentation (user: kbk, tags: kbk-interprocedural)
2015-11-26
18:33
[6bae877038] Some first doodlings toward interprocedural type inference (user: kbk, tags: kbk-interprocedural)
15:01
[8b9f58d563] merge trunk (not yet working) (user: dkf, tags: boolean-test)
2015-11-25
19:27
[e0438a481a] listIndexImm has zero effect on stack depth (user: kbk, tags: trunk)
16:40
[c2c9f039a8] Add a 'jumpMaybeNot' quadcode to reduce the jumpiness of error cases. (user: kbk, tags: trunk)
16:13
[1a762ea2db] merge trunk and resolve conflicts (user: kbk, tags: general-call)
15:53
[de22447b95] Support for nonexistent variables merged from kbk-unset branch (user: kbk, tags: trunk)
15:52
[4feb1aa5b4] Closed-Leaf: Fix code issuing for throwNotExists, and make a drive-by fix for two-arg builtin mathfuncs. All tests pass again. (user: kbk, tags: kbk-unset)
09:29
[dfa89e5a81] Factor out the bulk of the invoke issuer for clarity. Allow invoked thing to be a function reference. (user: dkf, tags: general-call)
2015-11-24
15:28
[2ceb738098] merge trunk (user: dkf, tags: minor change, general-call)
14:26
[8409287968] Flip the sense of a test. Doh! (user: dkf, tags: minor change, kbk-unset)
09:53
[348f39bcb0] Speed up testing by only running the tests we are optimising. (user: dkf, tags: minor change, kbk-unset)
09:52
[592d5a6ce6] merge trunk (user: dkf, tags: minor change, kbk-unset)
09:51
[b27ddc46d5] Better error tracking when hitting problems in code generation. (user: dkf, tags: trunk)
09:49
[3efc0a37de] Corrections to the widenTo implementation. (user: dkf, tags: kbk-unset)
03:14
[836b8418c7] Update NEXIST handling enough to make the existing tests pass. Add 'nextest1', which, alas, does not pass. :( (user: kbk, tags: kbk-unset)
2015-11-23
13:32
[1f9cad96c8] Need the extract of the payload as well. (user: dkf, tags: minor change, kbk-unset)
10:56
[8e2b0e1771] Generate a bit more efficient code. (user: dkf, tags: minor change, kbk-unset)
09:42
[0bfbdc671b] Suggested implementation of quadcodes. (user: dkf, tags: kbk-unset)
01:36
[c41d612b5f] Restore runnability of demo.tcl after a botched merge of the trunk. (user: kbk, tags: kbk-unset)
01:15
[3a8175984d] Speed up insertExistenceAssertions by an order of magnitude or so. (user: kbk, tags: kbk-unset)
2015-11-22
19:41
[bcc1fcf55a] Checkpoint in code dealing with nonexistent values. Added quadcodes 'initIfNotExists,' 'throwIfNotExists,' 'throwNotExists' to the repertoire. Not yet implemented in the back end, so quadcode containing these will fail to compile. Added debug output to copyprop. Removed 'existcheck.tcl' - nonexistence is now handled by compiling in checks for existence at every variable reference and then optimizing away the unused ones. Added 'determineExists.tcl' to determine whether values exist and optimize away existence checks where possible. Added to 'deadcode.tcl' an optimization to remove jumps to pc+1. Changed 'edit.tcl' to preserve exception ranges. Rewrote 'existAssert.tcl' to run before tidyJumps. (user: kbk, tags: kbk-unset)
2015-11-21
23:51
[c454bd5045] silence dribble (user: kbk, tags: kbk-unset)
16:53
[e7b0f1c419] Use some existing constants. (user: dkf, tags: minor change, general-call)
16:44
[ae604a0dfd] merge trunk (user: dkf, tags: minor change, general-call)
12:38
[eae051251a] Make code a bit easier to understand by removing some of the argument packing. (user: dkf, tags: trunk, minor change)
2015-11-20
09:04
[c2d31381e0] Make failures from called commands work. (user: dkf, tags: general-call)
2015-11-18
18:53
[81d1eac0ef] Start of work on solving the general call problem. This is enough for calling standard Tcl commands that do not examine the call stack and do not produce errors; much more work needed though... (user: dkf, tags: general-call)
09:30
[8db14f207e] Better safety in parameter access. Add Tcl_EvalObjv to the understood API. (user: dkf, tags: trunk, minor change)
2015-11-17
08:24
[57ff1a5e1e] Start of making this into a real package. (user: dkf, tags: trunk)
2015-11-15
23:57
[a7436192f2] Fix typo. (user: dkf, tags: trunk, minor change)
23:54
[c369d66b71] Factor out direct access to low-level API to be in fewer files and behind better checking, so as to avoid more hard crashes in development. (user: dkf, tags: trunk)
18:32
[3f07a503e9] Added more safety guards. Split the gluing of Tcl into LLVM out into its own file. (user: dkf, tags: trunk)
2015-11-14
02:25
[01b3a6df4d] merge trunk (user: kbk, tags: kbk-unset)
2015-11-13
09:20
[20ad2f3d06] Remove now-unused classical stack generation code. (user: dkf, tags: trunk)
09:15
[76cbce0b97] Split most of the basic block manipulation code into its own method, for clarity. (user: dkf, tags: trunk)
08:46
[bbc3bb7aca] Split most of the basic block manipulation code into its own method, for clarity. (user: dkf, tags: trunk)
01:24
[ed314922df] merge trunk (user: kbk, tags: kbk-unset)
01:20
[d2dff91791] Substantial tidying up of quadcode transformations merged from kbk-unset branch (user: kbk, tags: trunk)
01:17
[c4147c5c37] Further tidying - don't pass members as parameters to methods (user: kbk, tags: kbk-unset)
2015-11-12
06:20
[ce974b304d] MAJOR REFACTOR: Break up quadcode.tcl into many files, each of more manageable size and scope. Reorganize so that quadcode analysis happens inside a 'quadcode::database' class and the global namespace is considerably less polluted. (user: kbk, tags: kbk-unset)
2015-11-11
21:59
[646e55476b] Another piece of tinkering with a comment. (user: dkf, tags: trunk, minor change)
04:10
[e762bb3289] OOPS: silence dribble. Also removed an unused column in the quadcode database and updated copyright notices to the current year. (user: kbk, tags: kbk-unset)
03:32
[5246bbed96] coalesce ssa2 and ssa3 (user: kbk, tags: kbk-unset)
03:23
[6d29cc1476] Remove more ad hoc quadcode modifications in favor of a common rewriting scheme (user: kbk, tags: kbk-unset)
02:21
[d636b17adf] Improve documentation of doCodeModifications, and allow relative variable references (user: kbk, tags: kbk-unset)
02:08
[0d58748437] Further code tidying. (user: kbk, tags: kbk-unset)
01:50
[fbe33ce57a] Refactor live variable analysis into reaching definitions (user: kbk, tags: kbk-unset)
2015-11-10
15:33
[6e908156ed] Fix a comment. (user: dkf, tags: trunk, minor change)
09:36
[522b21ecf7] Factor the type conversion code a bit better. (user: dkf, tags: trunk, minor change)
08:30
[b8ed322d86] Move some of the Builder code to struct.tcl for sanity reasons. (user: dkf, tags: trunk, minor change)
04:19
[9d7bae3de6] Put the extensional database right next to quads-list-dataflows (user: kbk, tags: kbk-unset)
04:05
[82d1e02be2] More moving of relations to where they're produced (user: kbk, tags: kbk-unset)
03:50
[7a831d1149] Move some relations near to the Datalog procedures that produce them (user: kbk, tags: kbk-unset)
03:35
[0dee5cb029] Wrap preconditions into 'revprop' (user: kbk, tags: kbk-unset)
03:30
[44b5e674cf] Wrap preconditions into 'revprop' (user: kbk, tags: kbk-unset)
03:09
[fcc5966f91] Remove quads-list-dataflows from the global namespace. (user: kbk, tags: kbk-unset)
02:48
[a5236ed084] Eliminate unused relations in db, and get loaders out of the global namespace (user: kbk, tags: kbk-unset)
01:01
[217eefd744] merge mark (user: kbk, tags: kbk-unset)
01:01
[0f37b3ba54] Merge in first round of changes to support [unset] and [info exists]. These changes will not work for [incr] of a nonexistent value, nor do they throw errors correctly. (user: kbk, tags: trunk)
00:57
[e0ec234c04] merge trunk (user: kbk, tags: kbk-unset)
2015-11-09
21:06
[6d3ca59e1c] Clean up: change space in method names to \040 for better highlighting (user: dkf, tags: minor change, kbk-unset)
20:58
[674cf12c0a] Document code (user: dkf, tags: minor change, kbk-unset)
20:54
[642ccc4d05] Fix the failing tests; exists opcode was returning inverted results in some cases. (user: dkf, tags: kbk-unset)
11:09
[b2d4957b27] Implementation of the NUMERIC type. (user: dkf, tags: trunk)
11:02
[9c40cfb0c8] Closed-Leaf: Implement the NUMERIC version of the cast functions; add some missing standard functions now that we can do sane types for them. (user: dkf, tags: numeric-type)
02:22
[54f2ab324a] Further work toward keeping track statically of value existence where possible. (user: kbk, tags: kbk-unset)
2015-11-07
23:11
[5d7994bf16] Add code for inserting 'extractExists' code into codegen. Adjust code so that variables created and subsequently unused are freed. Add indication that 'result', 'returnCode', 'returnOpts may safely be optimized out if their results are not used. Fix bugs in identifying reference types (caused aborts once above was fixed). Fix bug in type analysis where instructions with no inputs never had types assigned to their outputs. (This was the new case of 'result', 'returnOpts' and 'returnCode'.) Add kludge to force the return type of a proc to be STRING FAIL if it's just FAIL, otherwise the LLVM compilation falls over. Comment out 'tantest' - fails on a roundoff error. Re-enable other formerly failing tests. (user: kbk, tags: kbk-unset)
20:30
[82d0f0e783] Sneak in a (non-executed) example of running the demo with a single test procedure for debugging. (user: kbk, tags: kbk-unset)
20:15
[c61c17a673] fixed stupid typo in [Type] that made {BOOLEAN FAIL} not work. (user: kbk, tags: kbk-unset)
15:47
[93983ae0f4] Added auto-casting for NUMERICs. (user: dkf, tags: numeric-type)
2015-11-06
03:41
[3344aedebf] Update quadcodes.txt with three new quadcodes exists, extractExists, and unset (user: kbk, tags: kbk-unset)
03:21
[bbbe0a31bb] [info exists] analysis (user: kbk, tags: kbk-unset)
00:46
[2aaa46e6bb] Fix a bug that caused scrambled origins on 'phi' operations when widening was required on some afferent arcs but not others. (user: kbk, tags: kbk-unset)
2015-11-05
03:59
[0bcd6bf713] Fix a bug that inserted extra data sources at phi instructions for nested loops. (user: kbk, tags: kbk-unset)
02:06
[b462fb4e67] Comment out a test that crashes LLVM optimization, and begin implementing code for narrowing types that are conditioned on [info exists] (user: kbk, tags: kbk-unset)
2015-11-02
08:30
[5ca365327a] Better error handling, allow NUMERIC arguments. (user: dkf, tags: numeric-type)
03:03
[10d767f9a4] Add logic to implement an NEXIST type flag, that indicates that a value may/does not exist. (user: kbk, tags: kbk-unset)
2015-11-01
16:54
[436775afab] merge trunk (user: dkf, tags: numeric-type)
14:28
[6d63552789] ...and fix the silly missing features, bugs and typos. (user: dkf, tags: numeric-type)
13:42
[7ba5ef84b6] Corrected the implementation of the core of uplus. (user: dkf, tags: numeric-type)
2015-10-30
09:50
[6ddd06e32c] Implementations of the NUMERIC operations. (user: dkf, tags: numeric-type)
2015-10-28
22:48
[fe7c1905fc] Building out the basic NUMERIC instruction issuers. (user: dkf, tags: numeric-type)
2015-10-27
20:22
[1766588f8e] This experiment with implementing arrays with dicts worked well. Merge to trunk. (user: dkf, tags: trunk)
20:16
[142a1e4478] Merge earlier work (user: dkf, tags: numeric-type)
18:32
[6caf1575fe] Start of defining NUMERIC handling (user: dkf, tags: numeric-type)
2015-10-20
14:19
[ba42fdc49e] merge trunk (user: dkf, tags: boolean-test)
14:16
[9f0ca69409] Closed-Leaf: merge trunk (user: dkf, tags: arrays-as-dicts)
14:14
[85f9a3ae0d] Tweaks to adjust what is really tested in one case. (user: dkf, tags: trunk)
14:11
[565f3e1a72] Another useful link. (user: dkf, tags: trunk)
14:08
[0034591a74] More information about the project. (user: dkf, tags: trunk)
14:02
[2f2f38a0a3] Fix the markdown... (user: dkf, tags: trunk)
14:00
[061941d0ee] Added a README. (user: dkf, tags: trunk)
2015-09-08
14:29
[847f1f2626] Expect to not take the error pathway. (user: dkf, tags: trunk)
14:28
[3c02757bd4] More stable time measurement. (user: dkf, tags: trunk)
2015-09-05
19:42
[f91b550299] Other ways to join lists, for comparison. (user: dkf, tags: arrays-as-dicts)
2015-08-17
09:27
[7db51e9258] Sort-of working code. Avoids some of the problems in order to generate code, but the underlying analysis bugs are still there. (user: dkf, tags: arrays-as-dicts)
2015-08-15
21:18
[9e5232db3c] Experimental branch on implementing arrays using dictionaries. Exposes bug in quadcode engine. (user: dkf, tags: bug, arrays-as-dicts)
2015-07-30
09:50
[c8410dc7ea] Define stack behaviour of one more opcode. (user: dkf, tags: trunk, minor change)
2015-07-29
10:42
[6f2d9ac320] Remove junk. (user: dkf, tags: trunk, minor change)
01:53
[54c7ac7b0f] Mark a statement dead if it copies a variable to itself. (user: kbk, tags: trunk)
2015-07-26
10:37
[c025e33558] Support 'dictVerify' opcode. (user: dkf, tags: trunk)
2015-07-16
09:33
[ab9da5514b] Add accidentally-missing stdlib part. (user: dkf, tags: boolean-test)
09:31
[d71a281431] Working on [string is boolean] (user: dkf, tags: boolean-test)
2015-07-08
08:04
[55152399da] Added note on needed future fix. (user: dkf, tags: trunk, minor change)
2015-07-07
20:15
[d4dd09bd16] Partial implementation of [dict update], without non-existent entry/var handling. (user: dkf, tags: trunk)
08:46
[dda89832a8] Support for [dict incr] without variable increments. (user: dkf, tags: trunk)
2015-07-05
14:47
[32c9f3f466] Implement [concat]. (user: dkf, tags: trunk)
12:44
[3a3b476692] Closed-Leaf: merge trunk (user: dkf, tags: minor change, uplus-and-numeric-type)
12:41
[ae302ed6cd] Implement and surface a bunch of operations. (user: dkf, tags: trunk)
11:51
[6f369fb2a4] Documentation tweaking (user: dkf, tags: minor change, uplus-and-numeric-type)
2015-07-02
08:57
[847f1f0c4d] Implement uplus (and land/lor). Needs NUMERIC type to be specified to be done right, and error messages are completely wrong. (user: dkf, tags: uplus-and-numeric-type)
2015-06-29
10:45
[7ed5cbca9a] Implementations of many operations that can fail. (user: dkf, tags: trunk, major change)
10:43
[5417fea0fa] Merge the implementation of [dict append] and [dict lappend]. (user: dkf, tags: try-and-compound-types)
10:42
[9ba0f18626] Closed-Leaf: Add back in test features removed for debugging reasons. (user: dkf, tags: minor change, dict-append-lappend)
09:41
[fa54491b0e] Fix the refcount problems; improve the problem detection code still further. (user: dkf, tags: dict-append-lappend)
2015-06-25
09:08
[f013adac28] merge the type widening code (user: dkf, tags: minor change, dict-append-lappend)
08:48
[95ac9ed669] remove unused code (user: dkf, tags: minor change, try-and-compound-types)
08:46
[7ac5d07675] merge the type widening code (user: dkf, tags: try-and-compound-types)
08:44
[3e411e5c93] Closed-Leaf: Implement the type widening code issuing step. (user: dkf, tags: to-merge)
08:21
[06fcbcb900] merge mark (user: dkf, tags: minor change, to-merge)
08:20
[798ca9d665] Closed-Leaf: Fix critical error: was causing serious problems. (user: dkf, tags: failures-and-regexps)
08:19
[1cabdb5c98] Fix the widenTo generation. (user: dkf, tags: to-merge)
2015-06-24
09:02
[2068bd32b5] Merge from try-and-compound-types; fix a couple of errors in error reporting. (user: dkf, tags: to-merge)
2015-06-23
15:01
[0369370020] Merge, fix, add some memory debugging (to try to help with the leaked-reference problems). (user: dkf, tags: dict-append-lappend)
02:58
[588af4e4c4] Oops - plug obvious memory leak in previous commit. (user: kbk, tags: failures-and-regexps)
02:47
[195ed60a23] Insert instructions (which compile.tcl cannot yet handle) to widen operands when implicitly converting types at a phi. (user: kbk, tags: failures-and-regexps)
2015-06-22
14:40
[dd100f4907] merge quadcode refactor (user: dkf, tags: try-and-compound-types)
14:35
[3daaca89da] Different code for [dict append] and [dict lappend]. Not yet finished, as there are refcounting problems still. (user: dkf, tags: dict-append-lappend)
2015-06-21
22:00
[2b87ae2c27] Refactor rewrite of quadcode sequence to handle code insertion. (user: kbk, tags: failures-and-regexps)
21:46
[c5c3c1d96e] Refactor collection of code to insert into its own procedure (user: kbk, tags: failures-and-regexps)
21:23
[251b16db87] Rework tidyjumps to account for 'jumpCond pc+1' and 'jumpMaybe'. Rework freeValues to assume that 'tidyJumps' has run and avoid diversions. (user: kbk, tags: failures-and-regexps)
2015-06-19
03:58
[c5bee356e7] Add a transformation to avoid conditional branches to convergence points. This will ensure that every flowgraph edge has a point in the program where code can be inserted, without introducing diversions. (user: kbk, tags: failures-and-regexps)
2015-06-15
09:01
[bdc40f91a9] Documentation (user: dkf, tags: minor change, try-and-compound-types)
2015-06-14
14:01
[1bea9b3892] Implement [dict for]. (user: dkf, tags: try-and-compound-types)
2015-06-10
20:19
[d458fb0c74] Extend proper index handling to the main string index users: [string index], [string range] and [string replace]. (user: dkf, tags: try-and-compound-types)
2015-06-09
08:58
[53fc23e3d3] Support '$val in $list' and '$val ni $list' expression operators. (user: dkf, tags: try-and-compound-types)
06:55
[cc44509bdb] Tidy up the code a bit more. Document the new quadcodes. (user: dkf, tags: minor change, try-and-compound-types)
2015-06-08
18:50
[c0f3eba824] merge trunk (user: dkf, tags: minor change, try-and-compound-types)
18:48
[691f4ed5c5] Port the improvements to the demonstration runner (user: dkf, tags: trunk)
18:46
[d9169f2e4b] Implementation of [foreach] and [lmap]. (user: dkf, tags: try-and-compound-types)
18:45
[edf1cb8eff] Closed-Leaf: Document, improve demo runner, declutter some types. (user: dkf, tags: foreach)
17:07
[244b817742] Use a more efficient type for [foreach] operational state, given that we don't need to encode it on the Tcl working value stack. (user: dkf, tags: foreach)
10:34
[5b9f08998e] Now a complete implementation of [foreach]. Documentation still needed. (user: dkf, tags: foreach)
2015-06-07
23:24
[da017a005f] Extend to [lmap]. (user: dkf, tags: foreach)
22:46
[5d0da22522] First minimally-working partial [foreach]. NOT YET FINISHED. (user: dkf, tags: foreach)
11:53
[1d17ce439c] Working on compiling [foreach]. (user: dkf, tags: foreach)
09:42
[aba67538e9] merge trunk (user: dkf, tags: minor change, try-and-compound-types)
09:38
[833caed869] merge trunk (user: dkf, tags: minor change, failures-and-regexps)
09:35
[a50dd5fd35] Clean up the demo code file a bit. (user: dkf, tags: trunk, minor change)
07:55
[bad1d8b021] Clean up the demo code file a bit. (user: dkf, tags: minor change, try-and-compound-types)
2015-06-06
18:15
[7de243f314] merge mark (user: dkf, tags: minor change, try-and-compound-types)
18:13
[5c69f1e1be] merge trunk (user: dkf, tags: minor change, failures-and-regexps)
18:12
[2231011971] Closed-Leaf: add the missing file (user: dkf, tags: mistake)
18:09
[7763176f59] merge trunk (user: dkf, tags: mistake, minor change)
18:06
[8e693c852d] Roll up of minor improvements made on branch. (user: dkf, tags: trunk)
08:38
[80210f113f] Apply the same fix as used in the preceding commit to other reference-retaining operations. (user: dkf, tags: try-and-compound-types)
08:28
[3a8398469f] Beware of reference retention in the presence of out-casting. (user: dkf, tags: try-and-compound-types)
08:18
[4bf609a1bb] Support [lappend]. (user: dkf, tags: try-and-compound-types)
2015-06-05
21:02
[a4f0fdd5b0] Updated the notes. (user: dkf, tags: minor change, try-and-compound-types)
20:55
[6ecaffb9e3] Making [lindex] work right. (user: dkf, tags: try-and-compound-types)
2015-06-03
19:46
[d22cc50bef] Correction to [lset] compilation. (user: dkf, tags: try-and-compound-types)
13:10
[86033a11af] Full [lset] implementation. (user: dkf, tags: try-and-compound-types)
2015-06-02
08:20
[3b87aa2750] First part of [lset] implementation. (user: dkf, tags: try-and-compound-types)
2015-05-31
15:37
[12010ce4f0] Neater way of expressing some types. (user: dkf, tags: minor change, try-and-compound-types)
13:36
[8afa7f22b7] Better way of handling indexing into structures (user: dkf, tags: try-and-compound-types)
2015-05-30
15:43
[4dd441df36] Expand the supported set of list operations. (user: dkf, tags: try-and-compound-types)
13:50
[8c1a1fb570] Update the documentation. (user: dkf, tags: minor change, try-and-compound-types)
13:38
[24c79119f0] Small corrections to make things work better. (user: dkf, tags: try-and-compound-types)
12:40
[edf328bcfc] Expose and test the [dict exists] and [dict unset] implementations. (user: dkf, tags: try-and-compound-types)
2015-05-29
07:15
[0d90a3e747] Improved the exception range lookup code. (user: dkf, tags: try-and-compound-types)
2015-05-27
22:49
[d87f1bf7c8] Accelerate the exception handling. (user: dkf, tags: try-and-compound-types)
22:45
[f608ae4a15] Starting to build out the dict handling code. (user: dkf, tags: try-and-compound-types)
2015-05-25
23:05
[78f716bf09] Better support for [try], now with enough for error 'trap' clauses and [dict get] to work. (user: dkf, tags: try-and-compound-types)
2015-05-21
14:43
[e5118f7900] Better support for [try]. Also basic [dict set]. (user: dkf, tags: try-and-compound-types)
2015-05-19
08:51
[befd0662c5] Working towards supporting the whole of [try]. (user: dkf, tags: try-and-compound-types)
07:10
[1344e374aa] Fix stack calculation of 'dictSet'. (user: dkf, tags: failures-and-regexps)
2015-05-15
14:55
[0b2cf1a2c2] merge trunk (user: dkf, tags: failures-and-regexps)
14:51
[64728651fb] Support the 'jumpTable' opcode. (user: dkf, tags: trunk)
2015-05-14
08:31
[9a28ea2817] Factor out more code from the core driver file. Aiming to have (almost) just user-visible code there. (user: dkf, tags: minor change, failures-and-regexps)
2015-05-13
08:40
[da4d2e8ad2] More improvements to error handling. Now do 'returnImm' much more correctly than before. (user: dkf, tags: failures-and-regexps)
2015-05-11
08:30
[4369dd712d] Much better implementation of the exception handling. Fix some missing/wrong docs. (user: dkf, tags: failures-and-regexps)
2015-05-10
20:56
[2fc9b2ca0d] merge trunk (user: dkf, tags: minor change, failures-and-regexps)
20:55
[450a8ec52d] Stop emacs from getting too clever by half. (user: dkf, tags: trunk, minor change)
20:41
[d7d584fdf0] Working towards getting the semantics of errors right. Bonus: implement [list] because some types of [return] use it. (user: dkf, tags: failures-and-regexps)
2015-05-09
17:12
[ac5a483fad] Slightly better way of handling type signatures of builtins. (user: dkf, tags: minor change, failures-and-regexps)
2015-05-08
07:07
[b98c2e7f12] Improve error checking of type merge at phi node. (user: dkf, tags: minor change, failures-and-regexps)
07:07
[8659b057be] Fixed reference count error. (user: dkf, tags: failures-and-regexps)
2015-05-07
19:49
[8d6fc29cf3] merge trunk (user: dkf, tags: failures-and-regexps)
10:54
[720823066f] merge the final set of doc changes (user: dkf, tags: trunk)
10:53
[0d961fb62c] Closed-Leaf: Document the code generator front end. (user: dkf, tags: minor change, documentation)
07:13
[d4a537d338] Document the TclProcedureCompiler class. (user: dkf, tags: minor change, documentation)
2015-05-06
09:44
[a480dc62bd] Document the ThunkBuilder class. (user: dkf, tags: minor change, documentation)
05:41
[82e4f2aa15] Merge in some documentation (user: dkf, tags: trunk)
05:40
[440f4e3c56] Document the Block class's methods. (user: dkf, tags: minor change, documentation)
2015-05-05
09:08
[7b572a084b] More documentation of functions. (user: dkf, tags: minor change, documentation)
08:53
[e464ff702e] Minor code adjustments. (user: dkf, tags: minor change, documentation)
08:44
[50c65cc5da] Documenting the basic structural parts and making the connections between things more coherent. (user: dkf, tags: documentation)
2015-05-04
16:07
[4ee3407332] More documentation. (user: dkf, tags: minor change, documentation)
13:45
[ebb83c89e5] More documentation. More removal of unused methods. (user: dkf, tags: minor change, documentation)
2015-05-03
22:18
[5c8abf8929] Documenting more of the Build class. Removing some duplicate parts. (user: dkf, tags: minor change, documentation)
2015-05-02
06:26
[07fd841662] Document another quadcode. (user: dkf, tags: trunk, minor change)
06:17
[7884a7925f] Merge the llvm-integration branch and close it. This provides exponentiation, string case folding, string class testing, and string trimming. (user: dkf, tags: trunk)
06:15
[40d54a67a2] Closed-Leaf: Document 'strclass'. (user: dkf, tags: llvm-integration, minor change)
06:05
[c235484b0f] Fix silly error. (user: dkf, tags: documentation)
06:04
[bd7606b6c8] Documenting the actual bytecode issuers. (user: dkf, tags: minor change, documentation)
2015-05-01
08:52
[fdeaa93272] More documentation. (user: dkf, tags: minor change, documentation)
2015-04-30
21:06
[325b52b2b6] Add documentation of many functions. (user: dkf, tags: minor change, documentation)
2015-04-29
13:36
[2786d80a1a] Support most of [string is] (i.e., the 'strclass' opcode). (user: dkf, tags: llvm-integration)
08:16
[0bb1a3992a] Support [string toupper], [string tolower] and [string totitle]. (user: dkf, tags: llvm-integration)
2015-04-28
13:02
[1191574e2f] Reorder the bytecodes into related groups. (user: dkf, tags: trunk, minor change)
12:27
[012f09ccd6] Minor tinkering. (user: dkf, tags: llvm-integration, minor change)
2015-04-27
09:11
[bf0d3aed87] Add some more problem checking code. (user: dkf, tags: llvm-integration, minor change)
00:10
[11de63d2af] Update the list of quadcodes. (user: dkf, tags: llvm-integration, minor change)
2015-04-26
19:58
[9d8296477f] Constrain most variables to their function (using [apply] tricks) and improve error reporting. (user: dkf, tags: llvm-integration, minor change)
17:32
[ff8a267b9e] Support [string trim] using the new style of library function. (user: dkf, tags: llvm-integration)
2015-04-25
14:34
[0ad79be508] Further shortening of the library code. (user: dkf, tags: llvm-integration, minor change)
2015-04-23
20:42
[456f9478cf] Shorten the code generation a little, aiming for more readability. (user: dkf, tags: llvm-integration, minor change)
20:09
[c02fa1a174] merge trunk (user: dkf, tags: llvm-integration)
13:44
[4ddb207455] Tidy up code generation. (user: dkf, tags: trunk, minor change)
12:18
[1edfd23944] Added [string map]. (user: dkf, tags: trunk)
2015-04-22
21:21
[9ba9c0689d] Tidying up the code a bit (user: dkf, tags: trunk, minor change)
18:47
[9daa5343f2] Update notes on what the quadcodes do. (user: dkf, tags: trunk, minor change)
18:43
[43a2e41317] merge trunk (user: dkf, tags: failures-and-regexps)
18:38
[ed392f4a6a] Support [string replace]. (user: dkf, tags: trunk)
09:28
[7913bda117] Extend the handling of end-based indices. (user: dkf, tags: failures-and-regexps)
2015-04-21
08:29
[3d42113001] Tinkering with formatting of tests. Added basic support for end-based indexing on the second index of [string range] only. (user: dkf, tags: failures-and-regexps)
01:31
[d8d3203e3f] Update demo to do substtest2, now that it doesn't crash (user: kbk, tags: minor change, failures-and-regexps)
01:21
[19fc916326] Change the optimizer to remove unreachable code when removing dead variables (user: kbk, tags: failures-and-regexps)
2015-04-19
16:54
[6d4e689590] Trying to implement [subst] with commands... (user: dkf, tags: failures-and-regexps)
2015-04-18
16:34
[1a2a079850] Ooops! (user: dkf, tags: failures-and-regexps)
16:33
[023b76a06f] Tell the reasoner that some instructions have Maybe results. It ignores this for now. (user: dkf, tags: failures-and-regexps)
16:26
[c561582d8d] Describe the opcodes I've added. (user: dkf, tags: minor change, failures-and-regexps)
15:22
[ca5cf128de] First crack at supporting failures. Example failing operation is RE matching. Failures are modelled in the type system with the MAYBE monad at the logical level, and with a two-element structure at the implementation level. (user: dkf, tags: failures-and-regexps)
2015-04-11
19:14
[2507b440da] Fix a bug in dataflow analysis when a variable is visible to a phi on a path but does not arrive on that path. (user: kbk, tags: trunk)
16:41
[1e5aff5f10] merge mark (user: dkf, tags: llvm-integration, minor change)
16:39
[7274e07594] Port of the wrapper round [source] from the experimental branch. (user: dkf, tags: trunk, minor change)
16:36
[e1d8c3daab] Integrate the expon bytecode support. (user: dkf, tags: llvm-integration)
15:43
[d0dcd55268] Closed-Leaf: Proper code generation for exponentiation. (user: dkf, tags: expon)
11:48
[0e5a6eb973] merge trunk (user: dkf, tags: llvm-integration)
11:47
[129f8ab708] merge trunk (user: dkf, tags: expon)
10:48
[b5e8216dd0] merge branch (user: dkf, tags: expon)
10:15
[28b5e4a4dd] Cleaning up the instruction issuing code a little. (user: dkf, tags: trunk, minor change)
2015-04-09
14:20
[d6fb49e512] Support [string compare] and extend relational ops to strings too. (user: dkf, tags: trunk)
2015-04-08
14:20
[8877c3733a] Basic documentation of the current set of quadcodes. (user: dkf, tags: trunk)
11:00
[bce7a7676a] Support the 'dup' and 'over' bytecodes (both of which are pure stack manipulators). (user: dkf, tags: trunk)
10:59
[4ceb87184a] Extracted the list of bytecodes from tclCompile.c (user: dkf, tags: trunk)
2015-04-07
13:52
[66eda159f5] Support [string match]. (user: dkf, tags: trunk)
2015-04-06
20:11
[34a0d48820] And the equivalent fix for [string index]. Operations must not produce refcount=0 strings. (user: dkf, tags: trunk)
20:01
[81b749d4b2] Fix refcount bug in [string range]. Simplify some of the thunk code and the phi operator. (user: dkf, tags: trunk)
15:25
[cb0d8dd9fb] Make the string code a little easier to read; an on-going project... (user: dkf, tags: trunk, minor change)
2015-04-05
23:16
[24f9666828] merge trunk (user: dkf, tags: llvm-integration)
23:13
[a641ecff20] Support [string first] and [string last]. (user: dkf, tags: trunk)
20:58
[cd4d33e745] Add emacs settings to footer of many files (user: dkf, tags: trunk, minor change)
2015-04-04
21:25
[c56965c9f6] Reorganising the code to split quadcode generation from quadcode reasoning. (user: dkf, tags: trunk, minor change)
21:13
[29d3c567fb] Support [string index] and [string range]. Bit better code generation. More asserts, but now make them disableable; don't know whether they're worth it yet. (user: dkf, tags: trunk)
2015-03-31
18:55
[d698ef3fdd] Minor tinkering with reference count handling (user: dkf, tags: trunk)
15:48
[5e8617f5ee] Support multi-value [append]. (user: dkf, tags: trunk)
03:42
[2fb6168e88] Fix a bug reported by dkf where the origin of variables participating in a 'phi' is not adjusted when out-of-line 'free' instructions have been inserted. (user: kbk, tags: trunk)
2015-03-30
19:05
[dccf9c4139] Multiple uses of the same Tcl_Obj argument to 'strcat' must not result in the wrong type of unsharing being used. (user: dkf, tags: trunk)
18:40
[a9c03c96f3] Label the basic blocks more clearly, so that it is easier to trace problems back into the quadcode if necessary. (user: dkf, tags: trunk)
08:17
[d77a37b7b0] Slightly better test case; best one fails due to compilation bug. (user: dkf, tags: trunk)
08:11
[d0cba1b1ad] Make [append] work correctly and efficiently. (user: dkf, tags: trunk)
08:10
[8be554443d] Make [append] work correctly. (user: dkf, tags: llvm-integration)
08:10
[9b85c1e164] merge type fix (user: dkf, tags: llvm-integration)
08:09
[f9f481c11d] Correction for constant type deduction: empty strings are not really integers. (user: dkf, tags: trunk)
2015-03-28
23:10
[8019a47faf] merge llvm-integration (user: dkf, tags: expon)
23:06
[2fd1a2282e] Fix other broken test cases. (user: dkf, tags: trunk)
23:05
[04af458a08] Fix remaining bugs in baseline quadcode generator to fix all test cases. Remove irrelevant commented out bits. (user: dkf, tags: llvm-integration)
08:52
[1581aee536] Merge trunk, make demo run results easier to interpret (user: dkf, tags: llvm-integration)
2015-03-26
22:49
[6d77363321] fixes for donal's bug with temps on converging code paths (user: kbk, tags: trunk)
14:17
[46325a0aaa] Split the basic Tcl bytecode analysis code out. (user: dkf, tags: llvm-integration, minor change)
2015-03-25
23:01
[de26a4a7bc] merge fixes from llvm-integration branch (user: dkf, tags: trunk)
23:00
[dde3848448] Fix comparisons with floating point types, which were no longer being issued correctly. (user: dkf, tags: llvm-integration)
14:15
[be5800e62a] Make the ! operator work on floating point numbers as well. (user: dkf, tags: llvm-integration)
09:48
[ddad3e813f] merge llvm-integration (user: dkf, tags: expon)
09:46
[f194e2877c] merge llvm-integration (user: dkf, tags: trunk)
09:43
[838cf80c8b] Fixed string operations to work in loops. (user: dkf, tags: llvm-integration)
09:42
[f97d57198d] Closed-Leaf: Fix the refcount problems. (user: dkf, tags: bug-loop-concatenation)
2015-03-24
23:00
[cdccb4920b] Now doesn't crash. Leaks memory instead... (user: dkf, tags: bug-loop-concatenation)
11:20
[8c741dbb9d] Fix most of the problems. (user: dkf, tags: bug-loop-concatenation)
10:27
[aa4525cf5c] merge llvm-integration (user: dkf, tags: bug-loop-concatenation)
10:26
[59d85180b5] Fix the stack analysis; startCommand is a very special case (user: dkf, tags: llvm-integration)
10:15
[0a6260b130] How did that code ever work? (user: dkf, tags: llvm-integration)
09:58
[b1bf00885a] Merge changes from llvm-integration branch. (user: dkf, tags: bug-loop-concatenation)
2015-03-21
23:35
[30c93ed752] First attempt at fixing the bugs that were plaguing Donal (user: kbk, tags: bug-loop-concatenation)
15:27
[b1c1803113] merge llvm-integration (user: dkf, tags: expon)
15:20
[836e0dc420] Added stack depth calculations for many more Tcl bytecode instructions. (user: dkf, tags: llvm-integration)
10:24
[d32229a943] Support [append] now that we can concatenate strings. (user: dkf, tags: llvm-integration)
2015-03-19
23:33
[36bd491218] Rename append operation to strcat so that it more sensibly reflects its semantics (user: dkf, tags: llvm-integration, minor change)
23:30
[e4d8f318d0] Clean up the semantics of the append operation to be more proper-value-like. (user: dkf, tags: llvm-integration)
22:08
[cff71847fc] Move the initialization of constants to the module Init function. (user: dkf, tags: llvm-integration)
21:15
[bb69ebd388] A concatenation test procedure that exposes multiple bugs in the quadcode engine. (user: dkf, tags: bug-loop-concatenation)
21:12
[d89ef2a76a] Fix some bugs in refcount management. (user: dkf, tags: llvm-integration)
00:39
[1047ecaca7] Implementation of simple string concatenation. (user: dkf, tags: llvm-integration)
2015-03-15
20:45
[1896e33f3d] merge main llvm-integration branch (user: dkf, tags: expon)
20:20
[f56c242842] Added more operations: Bit negation, logical negation, string equality and string inequality. (user: dkf, tags: llvm-integration)
2015-03-14
17:04
[11539b38e2] Merge lifetime management instruction generation. (user: dkf, tags: trunk)
16:58
[3d48502406] Merge memory management and improved STRING handling to main integration branch (user: dkf, tags: llvm-integration)
14:31
[a5a736a20c] Closed-Leaf: Support STRING arguments and results. (user: dkf, tags: llvm-integration-memory)
2015-03-11
15:57
[1023a69f91] Added a configure API. (user: dkf, tags: llvm-integration-memory, minor change)
14:11
[ba59d0e754] Remove helper methods no longer required. (user: dkf, tags: llvm-integration-memory)
2015-03-10
14:51
[a7682cd36e] Merge the code to generate the lifetimes from the model (user: dkf, tags: llvm-integration-memory)
2015-03-09
02:42
[f68b06d6b1] Closed-Leaf: Try to restore retrograde type inference - second attempt (user: kbk, tags: llvm-integration-memory-part2)
02:16
[0e3f87c0ab] Closed-Leaf: One more bug in retrograde type inference (user: kbk, tags: kbk-free-values)
01:57
[06eeceb52e] merge changes that restore retrograde type inference hack (user: kbk, tags: llvm-integration-memory-part2)
01:53
[dc00e24c34] Make retrograde type inference hack work again. (user: kbk, tags: kbk-free-values)
2015-03-08
16:52
[3b984c101d] Merge the code to generate the lifetimes from the model; [6d228ecd45] crashes due to type problems... (user: dkf, tags: llvm-integration-memory-part2)
15:28
[89816c024e] Working towards using the lifetime information. Also move the cast-to-STRING code into the type-cast builder. (user: dkf, tags: llvm-integration-memory)
02:01
[32281c70dd] Added logic to free values that will no longer be used. Results in a new quadcode instruction, 'free', whose input parameter is the value to be dismissed. (user: kbk, tags: kbk-free-values)
2015-03-07
20:00
[af57270212] Improved algorithm for determining variable lifespans in loops. Probably still buggy, but might be good enough to go to using the info. (user: dkf, tags: llvm-integration-memory)
2015-03-03
21:27
[f5402f6288] Working on computing when to drop reference counts. (user: dkf, tags: llvm-integration-memory)
2015-02-26
09:11
[2e0d7100a8] Support [string length]. Does not leak memory at the moment, but leak problem not yet solved. (user: dkf, tags: llvm-integration)
2015-02-17
15:40
[216341296f] Working towards supporting string operations. This version unfinished; WILL LEAK MEMORY if string operations are issued. Luckily, no issuing done yet. (user: dkf, tags: llvm-integration)
2015-02-15
12:58
[88ec6c54bf] merge... (user: dkf, tags: expon)
12:55
[d2b4a31963] Reorganize files for a bit more sanity (user: dkf, tags: llvm-integration, minor change)
2015-02-14
15:59
[6fbf2f1921] Working towards getting optimizable memory management. (user: dkf, tags: llvm-integration)
11:51
[c641821547] Alternate (somewhat simpler) API function binding mechanism. (user: dkf, tags: llvm-integration)
2015-02-07
15:55
[fc46289951] merge main branch (user: dkf, tags: expon)
15:54
[8901d1894f] Define the stack requirements of a bunch more instructions (user: dkf, tags: llvm-integration)
2015-02-04
15:40
[0dce1039b9] Try to make things less confusing... (user: dkf, tags: expon)
2015-02-03
21:53
[850e0cc511] Saner code generation, split things up for more cleanliness. (user: dkf, tags: expon)
13:41
[f706077480] improved exponential code (sheesh, it's long!) (user: dkf, tags: expon)
2015-02-02
09:20
[41b8e1d4db] Better implementation of expon(DOUBLE,INT) (user: dkf, tags: expon)
2015-02-01
20:52
[54c5db357e] Starting to work on exponentiation. (user: dkf, tags: expon)
15:38
[61d12ac5d5] merge trunk (user: dkf, tags: llvm-integration)
15:38
[a18c116f4c] Add support for shifts and incrScalar1 (user: dkf, tags: trunk)
15:36
[05b465c309] Support the incrScalar1 instruction. (user: dkf, tags: llvm-integration)
2015-01-31
20:18
[8748b36d1b] Reduce the size of writesOneOf, to eke out a tiny bit more speed. (user: kbk, tags: trunk)
17:11
[bb24a89351] Improve performance of copy propagation (user: kbk, tags: trunk)
2015-01-30
01:56
[f8a879260e] Tidy up and generate platform-suitable constants for better efficiency. (user: dkf, tags: llvm-integration)
2015-01-29
23:12
[eb882bb9cd] Added example taken from http://arxiv.org/pdf/1411.0352v1.pdf (user: dkf, tags: llvm-integration)
18:48
[13ed04a1a3] Support left and right shifts. (user: dkf, tags: llvm-integration)
10:18
[ac5d5716c1] Improve coverage of implementation of functions. Get div and mod semantics right. (user: dkf, tags: trunk)
10:16
[63df24880c] merge trunk (user: dkf, tags: llvm-integration)
10:04
[2f14fc80a6] Correct semantics for div and mod. (user: dkf, tags: llvm-integration)
2015-01-28
09:46
[a32a607bb4] Allow wideint arguments to compiled functions to actually get through. (user: dkf, tags: llvm-integration)
2015-01-24
19:56
[b90e4406b4] Record type information of two-argument math funcs, and give all stack temps unique names. TODO: This introduces a horrible performance bug in copyprop, which now seems to run in time proportional to the fourth power of program size, or some such. Must fix! (user: kbk, tags: trunk)
2015-01-22
16:22
[30fa5aeb0b] Improve the locality of the code by responsibility. (user: dkf, tags: llvm-integration)
15:41
[3e4d83e9a3] Slightly cleaner (user: dkf, tags: llvm-integration)
15:23
[25dccf0ede] Neatening up the code dealing with quadcode a bit, and reducing the hack level of STRING slightly. (user: dkf, tags: llvm-integration)
2015-01-20
23:31
[90cde245de] Extend the set of math functions we can compile. (user: dkf, tags: trunk)
23:29
[4f73d4caad] Extend the set of math functions we can compile. (user: dkf, tags: llvm-integration)
2015-01-19
19:11
[5e97964247] merge trunk (user: kbk, tags: llvm-integration)
19:10
[a2219b01a9] Don't keep reinitializing the database: rebuild only if column widths grow. (user: kbk, tags: trunk)
17:25
[49145c2ad6] Merge llvm-integration branch (user: kbk, tags: trunk)
17:21
[c41a150b1b] Ground the kbk-llvm-integration branch, it seems to Work On My Machine (user: kbk, tags: llvm-integration)
17:18
[e0322f3ad3] Closed-Leaf: Update all calls in llvm code generation to modified API's in quadcode.tcl, and merge trunk. (user: kbk, tags: kbk-llvm-integration)
16:42
[cb1b5634b2] Update the code that determines the target triple in preparation for landing the branch (user: kbk, tags: kbk-llvm-integration)
2015-01-18
20:43
[4972c90094] merge the 32/64 code; it's good enough now (user: dkf, tags: llvm-integration)
20:39
[b5ac14b5ea] Closed-Leaf: Updated to work with LLVM3.6 (user: dkf, tags: 32bit-64bit-mix)
2015-01-10
18:19
[c90365d913] Iterate copy prop to convergence! (user: kbk, tags: trunk)
17:40
[4251fe2836] Fix a bug that tried to do copy propagation back into the function prelude. (user: kbk, tags: trunk)
2015-01-09
15:51
[bbff33df34] Fixes to the stack manager. (Low priority...) (user: dkf, tags: 32bit-64bit-mix)
15:39
[66a6400765] More cleaning up. (user: dkf, tags: 32bit-64bit-mix)
01:54
[9b8f9ab046] fix lshift (though that not yet issued) (user: dkf, tags: 32bit-64bit-mix)
01:32
[8f76ffdf83] Clean up some more places that create 32/64 values. (user: dkf, tags: 32bit-64bit-mix)
01:02
[32ee62b069] Fix the type problems and the buggy results. (user: dkf, tags: 32bit-64bit-mix)
2015-01-08
15:19
[5d222e7d33] First (buggy) attempt at handling both 32-bit and 64-bit integers in one chunk of code. (user: dkf, tags: 32bit-64bit-mix)
07:36
[4f352e69dc] Clearer generation of built-in functions. (user: dkf, tags: llvm-integration)
2015-01-05
11:36
[bb247eacce] Add more testing code, which currently triggers a bug when enabled... (user: dkf, tags: llvm-integration)
2015-01-03
17:49
[e20f0318ad] Now we can use intrinsics. (user: dkf, tags: llvm-integration)
2014-12-28
23:41
[cceb99a698] Split the code up for my own sanity... (user: dkf, tags: llvm-integration)
2014-12-12
09:26
[a5b657382b] Clean things up; avoid the stub table for simplicity's sake. (user: dkf, tags: llvm-integration)
2014-12-08
10:34
[fde8e14d4c] We're back to running code. Better than 10 times faster on samples. (user: dkf, tags: llvm-integration)
2014-12-05
15:25
[8ab5ae60bc] Make the type mapper more helpful (user: dkf, tags: llvm-integration)
01:22
[acbb4a710c] Clean up the thunk builder, and generate the code to initialise everything. (user: dkf, tags: llvm-integration)
2014-12-03
22:32
[144cc54856] Most of the thunk generation done (user: dkf, tags: llvm-integration)
2014-11-30
04:50
[5e76603a84] Move type algebra into Datalog (user: kennykb, tags: trunk)
2014-11-29
15:42
[31ec382bc6] land dkf's llvm-integration branch. works on my machine. (user: kennykb, tags: trunk)
2014-11-26
09:40
[1254bd38fb] Lots of type goodness is now achieved; most of the way to handling float and int (user: dkf, tags: llvm-integration)
2014-11-25
00:11
[822f2c34a4] Use the revised SSA generation. Extend type usage. (user: dkf, tags: llvm-integration)
2014-11-23
22:05
[8a834fe65d] Make the code avail itself of [db datalogMethod] (user: kennykb, tags: trunk)
2014-11-22
20:09
[53c126325a] Revise SSA generation to deal with the fact that LLVM needs 'phi' functions to specify the basic block where their data originate. Fix a bug where SSA analysis failed to consider the case where one phi function's output is the input of another phi function. (user: kennykb, tags: trunk)
18:17
[546b0e7771] First proper cut at doing code generation with LLVM from the typed quadcodes. (user: dkf, tags: llvm-integration)
18:16
[dbae1c61b6] Create new branch named "llvm-integration" (user: dkf, tags: llvm-integration)
2014-11-15
21:47
[7c4f591cc2] Add totally half-arsed parameter type determination for initial LLVM connection (user: kennykb, tags: trunk)
20:11
[f1e7803e92] Add determination of procedure return type (user: kennykb, tags: trunk)
18:19
[339c528c35] Add code for rudimentary 'invoke' operations, and fix copy propagation of literals (user: kennykb, tags: trunk)
2014-11-14
01:07
[a935d16d6e] Add Tcl2014 conference materials (user: kennykb, tags: trunk)
2014-02-02
19:07
[c9c73139d7] Repair indentation in the 'Reaching definitions' section (user: kennykb, tags: trunk)
2014-02-01
23:01
[c9a0a36362] Eliminated some dead relations in the program database. Added text to the working notes. (user: kennykb, tags: trunk)
21:13
[d37966d187] Fix typos in URLs (user: kennykb, tags: trunk)
21:12
[5020f943a2] Added some rudimentary documents (user: kennykb, tags: trunk)
2014-01-28
01:48
[9a79c6ef1c] Implement rudimentary inference of numeric types. Fix bugs in SSA. (user: kennykb, tags: trunk)
2014-01-26
03:39
[8086698c87] Dominators, static single assignment, and strongly connected components of the variable dependency graph (user: kennykb, tags: trunk)
2014-01-16
03:25
[303e735ac0] first whack at dominator analysis (user: kennykb, tags: trunk)
2014-01-14
00:37
[a10ca88667] Add reverse copy propagation (user: kennykb, tags: trunk)
2014-01-13
14:14
[d5dc1ea564] Initial commit of quadcode.tcl for shared development (user: kennykb, tags: trunk)
14:13
[102e2910f1] initial empty check-in (user: kennykb, tags: trunk)