Timeline

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

50 most recent check-ins

2018-02-19
20:28
Allow inlining of procedures that may throw. Fix bug in 'dictGet' inlining if the dictionary is known not to contain the given key. Leaf check-in: dd9a8eab1b user: kbk tags: inline
18:45
Merge mark check-in: 18c7e4f3eb user: kbk tags: inline
18:44
Merge 'infline' branch - a few more trivial optimizations Leaf check-in: 35264fe340 user: kbk tags: trunk
05:27
Temporary hack - follow 'initException' that's known to be a FAIL with 'extractFail' so that downstream code knows the status - avoids excess node splits check-in: 3061db19f1 user: kbk tags: inline
05:04
Additional minor optimization - exceptions can be discarded if no code looks at them. check-in: 6ed839c56b user: kbk tags: inline
04:30
Additional optimization - flatten away 'result' when the answer is known. check-in: 8ed8c62621 user: kbk tags: inline
04:01
Merge mark - dovetail merged a tranche of changes into trunk. check-in: 0f30f4eff6 user: kbk tags: inline
04:01
Another tranche of code toward support of inlining: pass the current interpreter result or exception into a 'catch' block explicitly, to enable separation of normal and error paths. Required refactoring of many quadcodes that threw errors, to preserve the error results. check-in: 992e4ebed1 user: kbk tags: trunk
03:55
Flow the current return status into 'returnOptions' and optimize it away if the status is known to be TCL_OK check-in: d6acffc055 user: kbk tags: inline
03:18
Make 'returnCode' use the current exception. Optimize it away if the current return is known to be TCL_OK check-in: c4be83adea user: kbk tags: inline
02:30
Begin splitting normal from exception returns check-in: 6877f5f5ad user: kbk tags: inline
02:03
Pass the exception through to 'result', which should eventually use it if it's known. check-in: c61dcc090a user: kbk tags: inline
00:11
Missed one 'throwIfArray/throwIsArray pair - stomp on it! check-in: cbd19199f5 user: kbk tags: inline
2018-02-18
23:56
checkArithDomain and throwArithDomainError are now dead. Kill off the code that processes them. check-in: a82f73f9a5 user: kbk tags: inline
23:43
Don't use checkArithDomain. Refactor into 'instanceOf' and 'initException'. check-in: e4c73e17de user: kbk tags: inline
22:54
Eliminate the vestiges of 'narrowToParamType' and 'narrowToNotParamType'. Refactor 'checkFunctionParam' into separate operations 'instanceOfParamType' and 'initParamTypeException' so that the FAIL object is made explicit. Add debug logic into several early passes of the 'middle end'. check-in: 34e0e3e461 user: kbk tags: inline
02:59
Constant folding for [info exists] when the variable's value is constant. check-in: 9f310b0264 user: kbk tags: inline
02:54
Kill off throwIfArray and throwIsArray in favour of generating equivalent code inline - allows for passing an object of type FAIL to the catch block. check-in: 4e2e14ceab user: kbk tags: inline
02:41
Kill off throwIfScalar and throwIsScalar in favour of generating equivalent code inline - allows for passing an object of type FAIL to the catch block. check-in: c54be579c4 user: kbk tags: inline
2018-02-15
04:33
Remove throw(If)?NotExists from the documentation, it's dead. check-in: 676ce12783 user: kbk tags: inline
04:25
Eliminate 'throwIfNotExists' and 'initIfNotExists' in favour of explicit inline existence check and initialization of an exception. Prepares for having all exceptions generate an explicit FAIL object. check-in: c79b0c5648 user: kbk tags: inline
03:31
Fix crashes in 'narrow' that were caused by unreachable code introduced in 'varargs'. Change 'setReturnCode' to produce a FAIL. check-in: a14ce4fdee user: kbk tags: inline
02:00
Bury 'returnException' - it's dead, dead, dead. check-in: ad9e594859 user: kbk tags: inline
01:49
Place the FAIL objects corresponding to all thrown exceptions in a known temporary, so that 'returnCode', 'result' and 'returnOptions' can find them. Add an 'extractFail' operation on the 'jumpMaybe' path so that we know the temporary is indeed just a FAIL and never represents a successful result. check-in: 97c90599f0 user: kbk tags: inline
2018-01-30
02:32
Merge mark - dovetail merged initial tranche of changes for inlining into trunk. check-in: 6bcf0e4e95 user: kbk tags: inline
02:30
Merge first tranche of code devoted to procedure inlining. check-in: a36562ea0b user: kbk tags: trunk
2018-01-27
23:39
Make 'wrong # args' work in varargs handling and enable test check-in: e82c9f4d7d user: kbk tags: inline
23:28
Add FIXME comment on commented-out case check-in: e877f8cd4f user: kbk tags: inline
23:27
Prepare to handle multiple invokes per basic block check-in: 29796333b2 user: kbk tags: inline
23:26
Add audit of du- and ud-chains and make auditing optional at run time check-in: 8f211baf33 user: kbk tags: inline
23:26
Better debug logging check-in: 01bb1c0348 user: kbk tags: inline
23:26
Fix bug where unreachable code yields bad SSA repair check-in: 29c1297c18 user: kbk tags: inline
23:22
Add auditing of du- and ud-chains, and fix a bug in copy propagation that failed to track deleted value uses check-in: 5fbd247520 user: kbk tags: inline
2018-01-17
20:45
Refactor argument expansion so that 'invoke' and 'invokeExpanded' share a path. Note that the path generates horrible code, but the rest of compilation is able to tidy it up again. check-in: 8f1e0d889e user: kbk tags: inline
2018-01-10
05:56
Merge in changes to inline 'wrong # args' on 'invokeExpanded'. Still need to do 'invoke'. check-in: bb71cb0eba user: kbk tags: inline
05:54
Fix the bug in the last commit - was a misplaced closing curly brace that caused SSA to be mislinked Closed-Leaf check-in: 481298b855 user: kbk tags: inlineWrongNumArgs
05:10
Add code to throw the 'wrong # args' exception locally without actually trying to invoke the procedure check-in: c3623b95d5 user: kbk tags: notworking, inlineWrongNumArgs
04:04
Notes to self on where code must throw a runtime error check-in: 13e6f8f207 user: kbk tags: inline
02:21
Correct bad checks in 'wrong # args' handling, and add test cases for too few and too many args check-in: f8030b501c user: kbk tags: inline
2018-01-08
03:10
Refactor {*} so that the generated code does not have FAIL SOMETHING or CALLFRAME SOMETHING meet at a phi check-in: 26486c7423 user: kbk tags: inline
2018-01-07
21:01
merge trunk check-in: ee0fedf4cf user: kbk tags: inline
2018-01-04
22:20
No more returnException opcode; we can correctly do everything through plain return now. check-in: c6dc410ca3 user: dkf tags: trunk
20:25
Corrections to [dict update] instruction sequence and narrowing of 'arrayExists'. check-in: cbc1c6e988 user: dkf tags: trunk
2018-01-03
08:22
Gets rid of returnException. Closed-Leaf check-in: f3d6edbe08 user: dkf tags: end-of-returnException
2018-01-02
21:03
Added a demo based on code from comp.lang.tcl Leaf check-in: 0eb2f94f82 user: dkf tags: slkspirit's-demo
18:24
Ensure that the current error code is written back so inlining won't become confused. check-in: 6f8b1b3abc user: dkf tags: trunk
15:53
Separate the part of the proc-exit exception handling sequence that messed with inlining. check-in: a24ef31481 user: dkf tags: trunk
2018-01-01
01:36
Corrections to a comment. check-in: 8f701467e5 user: dkf tags: trunk, minor change
2017-12-30
20:47
Completed initial attack on procedure inlining. Only a handful of opportunities so far, including no really useful ones, but it's at least doing the basics of bringing the rewritten code into the caller and optimizing it in its new home. check-in: a58e401eaa user: kbk tags: inline
2017-12-29
23:14
merge trunk check-in: b4049cdf41 user: kbk tags: inline