Timeline

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

50 descendants and 50 ancestors of 2a34883328ca4ff52e94919d465c3184eee762157f4dd08fe82cee68926c20a0

2019-11-16
14:39
Refactor stuff better (and more correctly) check-in: ebcd44d358 user: dkf tags: dkf-cheaper-autoconvert
14:28
Cheaper builder type conversion algorithm (untested) check-in: fe14e0068c user: dkf tags: dkf-cheaper-autoconvert
2019-11-15
23:09
Change return type of directUnset and directUnsetArray from CALLFRAME FAIL to CALLFRAME FAIL BOOLEAN, because void values aren't handled well in the code issuer. Simply discard the unused result. check-in: 731e9cafc6 user: kbk tags: kbk-refactor-directops
2019-11-13
03:55
directUnset interacts with the callframe and retuns CALLFRAME FAIL check-in: e06c6257c1 user: kbk tags: kbk-refactor-directops
2019-11-12
03:13
direct append operations interact with the callframe check-in: 9837744239 user: kbk tags: kbk-refactor-directops
02:48
directArraySet interacts with the callframe check-in: 1ff2a97784 user: kbk tags: kbk-refactor-directops
02:36
directArrayGet interacts with the callframe check-in: 9d33782061 user: kbk tags: kbk-refactor-directops
02:15
directArrayExists interacts with callframe check-in: cac986debc user: kbk tags: kbk-refactor-directops
02:05
directExists interacts with callframe check-in: 8d343ec32d user: kbk tags: kbk-refactor-directops
01:52
directGet interacts with the callframe. (Has 'out' as well as 'in' because of traces). check-in: 22c7d8b278 user: kbk tags: kbk-refactor-directops
01:03
Add 'generate-callframe-op' method to quadcode translator to refactor 'directXXX' ops. check-in: e877e7f449 user: kbk tags: kbk-refactor-directops
2019-11-11
21:01
Fix bug - previous refactoring of directSet accidentally clobbered a use of directSetArray check-in: ebf9ad75df user: kbk tags: kbk-refactor-directops
2019-11-08
21:57
Refactor directSet to accept and return the callframe check-in: 26b53d7b5a user: kennykb tags: kbk-refactor-directops
2019-08-03
15:01
Starting to work on being able to write (most of) the stdlib in C; lots of things are not yet working... check-in: 63f2d78960 user: dkf tags: stdlib-in-c
2019-07-21
19:56
Fix a bunch of Markdown formatting issues in callframe motion implementation plan check-in: ab89bbf879 user: kbk tags: kbk-refactor-callframe
2019-06-08
22:21
Remove cfRedundancy' header - added prematurely before method structure actually designed. check-in: 74a853f4cd user: kbk tags: kbk-refactor-callframe
2019-03-26
20:45
Oops - didn't commit images for callframe.md! check-in: a19796b4e5 user: kbk tags: kbk-refactor-callframe
2019-02-25
04:41
More about code motion check-in: 2f51c8d73b user: kbk tags: kbk-refactor-callframe
2019-02-18
04:25
Write up first couple of tasks check-in: 643eefa7e6 user: kbk tags: kbk-refactor-callframe
2019-02-16
21:52
Fix some Markdown typos check-in: 9a45fec3f8 user: kbk tags: kbk-refactor-callframe
21:49
Fix some Markdown typos check-in: e1f3a19eb7 user: kbk tags: kbk-refactor-callframe
21:48
Fix some Markdown typos check-in: bdd91a03bf user: kbk tags: kbk-refactor-callframe
21:43
Fix some Markdown typos check-in: a0fc4f2102 user: kbk tags: kbk-refactor-callframe
21:40
Start writing discussion of callframe management check-in: 50af9aa069 user: kbk tags: kbk-refactor-callframe
2019-01-29
13:19
Fix misorderered scalar check/copy to result check-in: 36e8177510 user: kbk tags: notworking, kbk-refactor-callframe
02:00
Fix translation bugs that broke [dict] tests check-in: ab6da27502 user: kbk tags: notworking, kbk-refactor-callframe
2019-01-23
02:12
Add conversion to IMPURE ZEROONE INT, needed in booltest. Keep code motion from messing with the callframe for now. Patch out the handful of remaining tests that abort. Next up: fix the dictest tests involving 'dict update', lsetest, and re-add support for direct ops. check-in: 27339e7e0c user: kbk tags: notworking, kbk-refactor-callframe
2019-01-22
02:52
Restore the 'timings' list - if 'transform' doesn't produce it, there's a crash. check-in: 3e49a05889 user: kbk tags: notworking, kbk-refactor-callframe
02:36
Run dead code elimination before copy propagation because copyprop explodes otherwise. check-in: 9e16d3b8d6 user: kbk tags: notworking, kbk-refactor-callframe
02:35
Bug fixes to make all the 'expandtest' cases work check-in: 4f7b3a4d01 user: kbk tags: notworking, kbk-refactor-callframe
2019-01-21
22:33
Enough partial implementation for expandtest::test1-test3 check-in: 89030dcc42 user: kbk tags: notworking, kbk-refactor-callframe
19:45
Fix mislinking of phi operations on the error branch of 'invoke' check-in: 407e1ef055 user: kbk tags: notworking, kbk-refactor-callframe
18:14
Enough changes to get through first two 'expandtest' tests check-in: 5557b1e592 user: kbk tags: notworking, kbk-refactor-callframe
2019-01-18
04:22
Add the final processing in 'varargs' - next, emit the error path. check-in: 305328fa6b user: kbk tags: notworking, kbk-refactor-callframe
2019-01-16
02:30
More argument preparation code in 'varargs' check-in: 76b943ad4a user: kbk tags: notworking, kbk-refactor-callframe
2019-01-14
03:46
Further development of varargs. Note that the invocation sequence is much, much simpler than it used to be, so 'invoke.tcl' is no more. check-in: 90e908dae3 user: kbk tags: notworking, kbk-refactor-callframe
2019-01-13
15:43
Clean out dead 'exists.tcl' source check-in: f283d28ebd user: kbk tags: notworking, kbk-refactor-callframe
15:38
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. check-in: 05c93c9cc5 user: kbk tags: notworking, kbk-refactor-callframe
2019-01-09
01:52
Add support for compiled procs that alter the callframe, then fail. check-in: 30d6a54fdb user: kbk tags: notworking, kbk-refactor-callframe
2019-01-08
04:17
Fix more trivial errors in 'translate' and missing cases in code gen check-in: fba0ec7241 user: kbk tags: notworking, kbk-refactor-callframe
2019-01-05
22:48
Generate only one moveFromCallFrame per bytecode instruction check-in: 9dbaca7922 user: kbk tags: notworking, kbk-refactor-callframe
2019-01-02
02:20
Oops, one extra callframe ref in 'callframe-error-quads' check-in: cdc4d10e86 user: kbk tags: notworking, kbk-refactor-callframe
2019-01-01
23:06
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. check-in: 104debc734 user: kbk tags: notworking, kbk-refactor-callframe
21:57
Move callframe moves to the actual points where callframe values are moved. They can then be optimized by avaiability and liveness analysis. check-in: dbd9571178 user: kbk tags: notworking, kbk-refactor-callframe
2018-12-29
21:00
Keep dictionary iterations out of the callframe - they can never be addressed by upvar check-in: ea7b788fb4 user: kbk tags: kbk-refactor-callframe
20:26
Open a branch for some experiments on refactoring callframe operations check-in: 7454a5228c user: kbk tags: kbk-refactor-callframe
2018-12-27
19:47
Add 'buiilder.tcl' inadvertently omitted from previous commit Closed-Leaf check-in: 2e3b3ea76f user: kbk tags: notworking, kbk-refactor-varargs
19:44
Very rough beginning of a refactored 'varargs' pass check-in: 7c9d400e5e user: kbk tags: notworking, kbk-refactor-varargs
04:12
Eliminate the 'isBoolean' instruction in favour of using the type checking machinery check-in: 0718166269 user: kbk tags: trunk
04:09
Eliminate the 'isBoolean' opcode in favour of 'instanceOf', to allow for type inferemce based on tryCvtToBoolean Closed-Leaf check-in: bd009801ca user: kbk tags: kbk-isBoolean
03:53
Open a branch for rework of 'isBoolean' so that it informs type inference check-in: 2a34883328 user: kbk tags: kbk-isBoolean
2018-12-18
15:12
OOPS: remove 'source' of unused file check-in: 3bf74c48dc user: kbk tags: trunk
02:32
Add a long-forgotten 'specializer.md' discussing what the specializer does. check-in: 7bd4d23ac9 user: kbk tags: trunk
2018-12-17
23:19
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. check-in: a934a75e1f user: kbk tags: trunk
23:13
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. Closed-Leaf check-in: 94358b53ea user: kbk tags: kbk-jumpthread
22:08
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. check-in: a41b93130e user: kbk tags: notworking, kbk-jumpthread
2018-12-16
05:18
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. check-in: c388c8737b user: kbk tags: notworking, kbk-jumpthread
04:55
Add a 'cos2' test case to illustrate the cost of non-numeric ordering comparisons check-in: 86167d6917 user: kbk tags: notworking, kbk-jumpthread
04:43
Finish forward analysis in the jump threading pass. check-in: dc90afa15d user: kbk tags: notworking, kbk-jumpthread
2018-12-10
04:51
Remove vestiges of the old node splitter from 'inline.tcl'. Make console dribble in 'jumpthread.tcl' contingent on debug-jumpthread. check-in: fd2ea3e6f1 user: kbk tags: notworking, kbk-jumpthread
04:09
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. check-in: 67b989853b user: kbk tags: notworking, kbk-jumpthread
01:34
Calculation of anticipable tests for jump threading check-in: f138663832 user: kbk tags: notworking, kbk-jumpthread
2018-12-09
21:52
Start with the most basic framework for invoking the jump threading pass. check-in: 6bdc33061b user: kbk tags: kbk-jumpthread
20:55
Open a branch for experiments with more accurate and faster jump threading. check-in: 67902a50a2 user: kbk tags: kbk-jumpthread
2018-12-08
21:46
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.) check-in: 344567b919 user: kbk tags: trunk
21:45
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.) Closed-Leaf check-in: 1c9b4510d1 user: kbk tags: kbk-deadcond
2018-12-07
02:43
Fixes that make poly1305 compilable. check-in: 602b3659c7 user: kbk tags: trunk
02:23
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. Closed-Leaf check-in: 023d0828f0 user: kbk tags: poly1305
02:19
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. Closed-Leaf check-in: 1984824c19 user: kbk tags: mistake
2018-12-06
21:17
merge trunk check-in: c2a6505ae9 user: dkf tags: poly1305
03:15
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. check-in: 0e06123e97 user: kbk tags: trunk
03:13
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! Closed-Leaf check-in: cf87d02677 user: kbk tags: kbk-pre
01:42
Remove speculative phis if they turned out not to be useful check-in: bd6294fade user: kbk tags: notworking, kbk-pre
2018-12-05
05:37
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. check-in: 0bbe5a5dd3 user: kbk tags: notworking, kbk-pre
2018-12-03
05:08
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. check-in: 4f50ed77b2 user: kbk tags: notworking, kbk-pre
01:06
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. check-in: ce1088b7a7 user: kbk tags: notworking, kbk-pre
2018-12-02
23:27
Turn on partial redundancy elimination. Correct bug in availability analysis that led to infinite loop in 'msrange2' check-in: 68da56cfee user: kbk tags: notworking, kbk-pre
2018-12-01
17:37
Restructure pass management in 'tidy'. Add constant folding of a few more operations. check-in: e2750cb57e user: kbk tags: kbk-pre
2018-11-29
00:56
merge trunk check-in: 815387c202 user: kbk tags: notworking, kbk-pre
2018-11-27
03:07
Fix bug in finding variable names among the args to 'regexp' check-in: 6311170b65 user: kbk tags: trunk
2018-11-26
04:57
Added a couple of tests to trigger loop-invariant code motion. Corrected du-chain mismanagement in callframe.tcl (deleting moveToCallFrame), copyprop.tcl (deleting any quads), uselessphis (deleting anything), and narrow.tcl (cleanupNarrow, deleting anything). NOT WORKING: During node splitting, at least 'flightawarebench', 'msrange', 'bug7c59', and 'cse-caller' are still coming out with mismanaged chains. Improved auditing in the 'tidy' pass of the transformer, and made it less aggressive about rechecking everything. NOT WORKING: in the 'wordcounter2' test case, it's missing at least one invocation of 'initArrayIfNotExists' because we're falling into the code gen in 'compile.tcl' for initArrayIfNotExists(ARRAY). Advanced partial redundancy elimination to 'code complete' status. The stuff surrounding it is in bad enough shape at the moment that it is far from tested, and known not to be working for everything, but is patched out at the moment. check-in: 02ab4301aa user: kbk tags: notworking, kbk-pre
2018-11-23
18:42
Back out from quite a long false path - switch over from Simpson's modified SSAPRE to VanDrunen's GVNPRE. Implemented the two phases of BUILDSETS - results look correct for a couple of simple tests. check-in: e69362f376 user: kbk tags: kbk-pre
2018-11-13
02:57
Code complete for PRE - except that I don't know how to introduce a phi if PRE has made an expression available on two afferent flow graph edges rather than in a dominator. check-in: fa9f7e0eb3 user: kbk tags: notworking, kbk-pre
2018-11-12
16:38
Tidy up commentary and calculation of INSERT and DELETE. Build the place to start code rewriting, and add some methods to start on renaming variables wholesale. check-in: e901ec10df user: kbk tags: kbk-pre
01:38
Change signatures in preparation for code rewriting: include enough information in signatures so that INSERT can reconstruct an instruction check-in: c098311242 user: kbk tags: kbk-pre
2018-11-11
22:34
Add bitwise Boolean operations to constant folding. Modify partial redundancy elimination to use bit vectors for dataflow calculations and debug the dataflow equations. check-in: 71a4e793a1 user: kbk tags: kbk-pre
2018-11-10
22:17
Use the lexical-name algorithm for 'altered' for now. May change to value-driven later. check-in: 592020ed7a user: kbk tags: notworking, kbk-pre
19:10
Better copy prop exposes more opportunities for constant folding. check-in: edb0c23738 user: kbk tags: kbk-pre
18:41
Fix bug where reverse copy propagation crashed (triggered by fixing bug where reverse copy propagation never happened). Add code in specializer to detect and recover from errors thrown in procedure inlining. check-in: 3f9877077d user: kbk tags: kbk-pre
2018-11-09
03:48
Temporarily revert a change made to copyprop until the crash that it causes can be investigated. Add a loop inversion pass at the front of processing, so that every natural loop body is executed at least once and might have loop-invariant computations. Add more coding to partial redundancy elimination check-in: f141d962a5 user: kbk tags: kbk-pre
2018-11-04
23:49
merge trunk check-in: 7b85bdfca9 user: dkf tags: poly1305
23:27
Add calculation of ANTIN, ANTOUT, and EARLIEST. check-in: ea6904fb1f user: kbk tags: kbk-pre
21:02
OOPS: Didn't add pre.tcl on last commit! Continue partial implementation of Value-Dependent Code Motion from the Simpson thesis. check-in: 3a32295d4d user: kbk tags: kbk-pre
01:38
Start development of partial redundancy elimination. Complete though base-case of the dataflow solution. check-in: 534d2b9f68 user: kbk tags: kbk-pre
2018-11-01
22:04
Allow IMPURE values to builtin mathfuncs check-in: dfc7885448 user: kbk tags: trunk
2018-10-31
11:32
Also ask for critical math function to be compiled check-in: fb47c5a2cd user: dkf tags: poly1305
11:22
Suggested test case from Neil Madden check-in: 4801fbf7c9 user: dkf tags: poly1305
11:05
use [my Warn] correctly check-in: b99007d3a3 user: dkf tags: trunk
2018-10-18
10:59
Add support for LLVM 7; two intrinsics changed signature to become simpler check-in: 961facd520 user: dkf tags: trunk
2018-10-17
12:29
Fix Sean's problem with [lrange]. check-in: e33c1317fd user: dkf tags: trunk
2018-10-15
21:28
Fix crash if a parameter to a procedure is unused within the procedure. check-in: ba43f318d7 user: kbk tags: trunk