# HG changeset patch # User Paul Boddie # Date 1314309788 -7200 # Node ID 2a80e3871c0018e1737bfb00805e387df9f7f0d3 # Parent d6a0a0c10b1180013a907c98d69c339f023dd0aa Added notes on reference tracking and inlining. diff -r d6a0a0c10b11 -r 2a80e3871c00 TO_DO.txt --- a/TO_DO.txt Wed Aug 24 01:05:46 2011 +0200 +++ b/TO_DO.txt Fri Aug 26 00:03:08 2011 +0200 @@ -95,12 +95,20 @@ therefore no need to build a new frame for this call, although in some cases the locals frame might need expanding. +Reference tracking where objects associated with names are assigned to attributes of other +objects may assist in allocation optimisations. Recording whether an object referenced by +a name is assigned to an attribute, propagated to another name and assigned to an +attribute, or passed to another function or method might, if such observations were +combined, allow frame-based or temporary allocation to occur. + Inlining ======== Where a function or method call can always be determined, the body of the target could be inlined - copied into place - within the caller. If the target is only ever called by a -single caller it could be moved into place. +single caller it could be moved into place. This could enhance deductions based on +attribute usage since observations from the inlined function would be merged into the +caller. Function Specialisation =======================