Home

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

50 most recent check-ins

2019-01-16
02:30
[76b943ad4a] Leaf: More argument preparation code in 'varargs' (user: kbk tags: notworking, kbk-refactor-callframe)
2019-01-14
03:46
[90e908dae3] Further development of varargs. Note that the invocation sequence is much, much simpler than it used to be, so 'invoke.tcl' is no more. (user: kbk tags: notworking, kbk-refactor-callframe)
2019-01-13
15:43
[f283d28ebd] Clean out dead 'exists.tcl' source (user: kbk tags: notworking, kbk-refactor-callframe)
15:38
[05c93c9cc5] Merge the (not-working) vararg reform branch. It appears that both these tasks need to be attacked at the same time because the changes are tightly interwoven. (user: kbk tags: notworking, kbk-refactor-callframe)
2019-01-09
01:52
[30d6a54fdb] Add support for compiled procs that alter the callframe, then fail. (user: kbk tags: notworking, kbk-refactor-callframe)
2019-01-08
04:17
[fba0ec7241] Fix more trivial errors in 'translate' and missing cases in code gen (user: kbk tags: notworking, kbk-refactor-callframe)
2019-01-05
22:48
[9dbaca7922] Generate only one moveFromCallFrame per bytecode instruction (user: kbk tags: notworking, kbk-refactor-callframe)
2019-01-02
16:22
[75fd3b203e] Leaf: A little bit less wrong. (user: dkf tags: list-and-dict-types)
02:20
[cdc4d10e86] Oops, one extra callframe ref in 'callframe-error-quads' (user: kbk tags: notworking, kbk-refactor-callframe)
2019-01-01
23:06
[104debc734] Update quadcode generation and documentation so that 'direct' operations refer to the callframe (which is necessary in the event that they are emitted to deal with double-dereference). CODE ISSUER IS NOT YET UPDATED TO COPE WITH THE CHANGE. (user: kbk tags: notworking, kbk-refactor-callframe)
21:57
[dbd9571178] Move callframe moves to the actual points where callframe values are moved. They can then be optimized by avaiability and liveness analysis. (user: kbk tags: notworking, kbk-refactor-callframe)
2018-12-29
21:00
[ea7b788fb4] Keep dictionary iterations out of the callframe - they can never be addressed by upvar (user: kbk tags: kbk-refactor-callframe)
20:26
[7454a5228c] Open a branch for some experiments on refactoring callframe operations (user: kbk tags: kbk-refactor-callframe)
2018-12-27
19:47
[2e3b3ea76f] Closed-Leaf: Add 'buiilder.tcl' inadvertently omitted from previous commit (user: kbk tags: notworking, kbk-refactor-varargs)
19:44
[7c9d400e5e] Very rough beginning of a refactored 'varargs' pass (user: kbk tags: notworking, kbk-refactor-varargs)
04:12
[0718166269] Leaf: Eliminate the 'isBoolean' instruction in favour of using the type checking machinery (user: kbk tags: trunk)
04:09
[bd009801ca] Closed-Leaf: Eliminate the 'isBoolean' opcode in favour of 'instanceOf', to allow for type inferemce based on tryCvtToBoolean (user: kbk tags: kbk-isBoolean)
03:53
[2a34883328] Open a branch for rework of 'isBoolean' so that it informs type inference (user: kbk tags: kbk-isBoolean)
2018-12-18
15:12
[3bf74c48dc] OOPS: remove 'source' of unused file (user: kbk tags: trunk)
02:32
[7bd4d23ac9] Add a long-forgotten 'specializer.md' discussing what the specializer does. (user: kbk tags: trunk)
2018-12-17
23:19
[a934a75e1f] Integrate kbk-jumpthread: replace the node-by-node splitting with a single pass that identifies many threading opportunities and also reduces the number of splits. Eliminate the old nodesplit pass, and the renameTemps pass, which is no longer required. (user: kbk tags: trunk)
23:13
[94358b53ea] Closed-Leaf: result, returnCode, returnOptions must be split into FAIL and non-FAIL paths because the backend isn't prepared to deal with all combinations of FAIL + someOtherType. (user: kbk tags: kbk-jumpthread)
22:08
[a41b93130e] Finish jump threading - actually do the block duplication and redirection of jumps. Add the logic for SSA deconstruction (required by jump threading) and make SSA construction work with the deconstructed result. (user: kbk tags: notworking, kbk-jumpthread)
2018-12-16
05:18
[c388c8737b] Add constant folding for unary +. It probably ought to be folded out altogether, since it serves only to trigger type checking. Add an outline of the actual process of jump threading once the threads have been determined. (user: kbk tags: notworking, kbk-jumpthread)
04:55
[86167d6917] Add a 'cos2' test case to illustrate the cost of non-numeric ordering comparisons (user: kbk tags: notworking, kbk-jumpthread)
04:43
[dc90afa15d] Finish forward analysis in the jump threading pass. (user: kbk tags: notworking, kbk-jumpthread)
2018-12-10
04:51
[fd2ea3e6f1] Remove vestiges of the old node splitter from 'inline.tcl'. Make console dribble in 'jumpthread.tcl' contingent on debug-jumpthread. (user: kbk tags: notworking, kbk-jumpthread)
04:09
[67b989853b] OOPS! Didn't add the new 'jumpthread.tcl' module! Remove the old 'nodesplit.tcl', and remove the 'renameTemps' pass since 'nodesplit' was the only thing that ever depended on it. (user: kbk tags: notworking, kbk-jumpthread)
01:34
[f138663832] Calculation of anticipable tests for jump threading (user: kbk tags: notworking, kbk-jumpthread)
2018-12-09
21:52
[6bdc33061b] Start with the most basic framework for invoking the jump threading pass. (user: kbk tags: kbk-jumpthread)
20:55
[67902a50a2] Open a branch for experiments with more accurate and faster jump threading. (user: kbk tags: kbk-jumpthread)
2018-12-08
21:46
[344567b919] Add a micropass to optimize away conditional jumps that are identical to a conditional jump in a dominator. (Partial redundancy elimination appears to create these.) (user: kbk tags: trunk)
21:45
[1c9b4510d1] Closed-Leaf: Add a micropass to optimize away conditional jumps that are identical to a conditional jump in a dominator. (Partial redundancy elimination appears to create these.) (user: kbk tags: kbk-deadcond)
17:56
[01fb4f7ffb] merge trunk (user: dkf tags: list-and-dict-types)
2018-12-07
02:43
[602b3659c7] Fixes that make poly1305 compilable. (user: kbk tags: trunk)
02:23
[023d0828f0] Leaf: Increase recursion limit to allow compilation of longer procedures. Correct a bug in expandInlines that left dangling references to procedure args. Correct a bug in analyzeTypes where the INT/ENTIER break was set to int32 rather than int64. Add shift operations to constfold. Improve auditing. Merge trunk. (user: kbk tags: poly1305)
2018-12-06
21:17
[c2a6505ae9] merge trunk (user: dkf tags: poly1305)
21:14
[462eec7d43] Huge mess of half-converted code, with something horrible inside. Definitely buggy... (user: dkf tags: list-and-dict-types)
03:15
[0e06123e97] Merge kbk-pre - add the optimizations of loop inversion (enables loop-invariant code motion) and partial redundancy elimination, and fix multiple bugs exposed by these optimizations. (user: kbk tags: trunk)
03:13
[cf87d02677] Closed-Leaf: Array initialization cannot be hoisted because every array needs its own initArray. Code insertion must ignore operations that it has already inserted, or infinite loops can result. All tests pass! (user: kbk tags: kbk-pre)
01:42
[bd6294fade] Remove speculative phis if they turned out not to be useful (user: kbk tags: notworking, kbk-pre)
2018-12-05
05:37
[0bbe5a5dd3] Rewrite pre_insert and pre_phi_translate to NOT use a persistent cache. The missing piece in VanD04 is that pre_insert must call pre_phi_translate for all the anticipated expressions first, and then use the dictionary that results for the translated values. There are still further bugs, but we're over this hump at least. (user: kbk tags: notworking, kbk-pre)
2018-12-03
05:08
[4f50ed77b2] Stop constant folding from leaving dead code behind, Add a test for simple nested iterations, using [lmap]. Temporarily patch 'foreach' operations from being hoistable - I don't think this will be necessary, but it's tickling other bugs. Make translation of values across a phi work if one of the inputs to the phi is a literal. Put 'bbidom' and 'bblevel' directly after dead code elimination, because virtually everything depends on having dominators, which deadcode destroys. (user: kbk tags: notworking, kbk-pre)
01:06
[ce1088b7a7] Fix crashing bug in creating variable name for a phi operation. Fix bug where partial redundancy elimination got stale dominators, causing much weirdness. Add additional tracing to available expression calculation. (user: kbk tags: notworking, kbk-pre)
2018-12-02
23:27
[68da56cfee] Turn on partial redundancy elimination. Correct bug in availability analysis that led to infinite loop in 'msrange2' (user: kbk tags: notworking, kbk-pre)
2018-12-01
17:37
[e2750cb57e] Restructure pass management in 'tidy'. Add constant folding of a few more operations. (user: kbk tags: kbk-pre)
2018-11-29
13:57
[b0b8f8280b] merge trunk (user: dkf tags: list-and-dict-types)
11:34
[0ec315adac] This is getting somewhere; next up, using actual types we can now assume in code issue (user: dkf tags: list-and-dict-types)
00:56
[815387c202] merge trunk (user: kbk tags: notworking, kbk-pre)
2018-11-28
08:52
[7a7e53d026] Default type conversions. (user: dkf tags: list-and-dict-types)