Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
50 check-ins occurring around edb0c237382bd11c.
2018-12-06
| ||
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
| ||
13:57 | merge trunk check-in: b0b8f8280b user: dkf tags: list-and-dict-types | |
11:34 | This is getting somewhere; next up, using actual types we can now assume in code issue check-in: 0ec315adac user: dkf tags: list-and-dict-types | |
00:56 | merge trunk check-in: 815387c202 user: kbk tags: notworking, kbk-pre | |
2018-11-28
| ||
08:52 | Default type conversions. check-in: 7a7e53d026 user: dkf tags: list-and-dict-types | |
08:31 | Account for emptiness in LIST and DICT types check-in: 67f834abb0 user: dkf tags: list-and-dict-types | |
2018-11-27
| ||
13:48 | Also assert that DICT has a 'free' conversion to LIST check-in: 7de430014e user: dkf tags: list-and-dict-types | |
08:22 | Constants and types check-in: 58434a3dd0 user: dkf tags: list-and-dict-types | |
03:07 | Fix bug in finding variable names among the args to 'regexp' check-in: 6311170b65 user: kbk tags: trunk | |
2018-11-26
| ||
08:35 | merge trunk check-in: 45f62a2c25 user: dkf tags: list-and-dict-types | |
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-23
| ||
01:34 | Add return from invokeExpanded. Add a test case for invokeExpanded. Correct a few comments in the compilation of invokeExpanded. Leaf check-in: 41fe6d416f user: kbk tags: kbk-nre | |
2018-10-21
| ||
22:49 | Squelch unnecessary test failures. check-in: 35ee4b3111 user: dkf tags: kbk-nre | |
22:41 | Implement NRE.invokeExpanded check-in: 7e61b1c24c user: dkf tags: kbk-nre | |
17:48 | Test case for NRE.invokeExpanded check-in: 7c7508effb user: dkf tags: kbk-nre | |
16:30 | First step of the NRE invokeExpanded machinery. check-in: 115a9a6616 user: dkf tags: kbk-nre | |
16:12 | merge trunk check-in: 3c382b2d30 user: dkf tags: kbk-nre | |
16:08 | First cut at the code generators for list/dict type checks check-in: 593d4987de user: dkf tags: list-and-dict-types | |
2018-10-19
| ||
12:58 | Starting to create LIST and DICT types check-in: dc90f65b5e user: dkf tags: list-and-dict-types | |
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 | |
17:08 | Enable random numbers. check-in: 6841dceaad user: dkf tags: trunk | |
16:09 | Added explicit recursive fib test check-in: 347443afbe user: dkf tags: trunk | |
12:58 | Flipped the sense of some tests check-in: 9912776e7c user: dkf tags: trunk | |
11:13 | Expand the basic eq/ge/gt/le/lt/ne ops to allow doubles too. check-in: 9bbeeddfb9 user: dkf tags: trunk | |