On Thu, May 8, 2008 at 5:22 PM, Thomas Lee <[EMAIL PROTECTED]> wrote:
> Nick Coghlan wrote:
>>
>> There are a lot of micro-optimisations that are actually context
>> independent, so moving them before the symtable pass should be quite
>> feasible - e.g. replacing "return None" with "return", stripping dead code
>> after a return statement, changing a "if not" statement into an "if"
>> statement with the two suites reversed, changing "(1, 2, 3)" into a stored
>> constant, folding "1 + 2" into the constant "3".
>>
>> I believe the goal is to see how many of the current bytecode
>> optimisations can actually be brought forward to the AST generation stage,
>> rather than waiting until after the bytecode symtable calculation and
>> compilation passes.
>>
> That's been the aim so far. It's been largely successful with the exception
> of a few edge cases (most notably the functions vs. generator stuff). The
> elimination of unreachable paths (whether they be things like "if 0: ..." or
> "return; ... more code ...") completely breaks generators since we might
> potentially be blowing away "yield" statements during the elimination
> process.

Also breaks various sanity checks relating to the global statement.

-- 
Adam Olsen, aka Rhamphoryncus
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to