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