cpython/Lib/compiler
Jeremy Hylton 138d90eb73 Vastly improved stacksize calculation.
There are now no known cases where the compiler package computes a
stack depth lower than the one computed by the builtin compiler.  (To
achieve this state, we had to fix bugs in both compilers :-).

The chief change is to do the depth calculations with respect to basic
blocks.  The stack effect of block is calculated.  Then the flow graph
is traversed using breadth-first search to find the max weight path
through the graph.

Had to fix the StackDepthTracker to calculate the right info for
several opcodes: LOAD_ATTR, CALL_FUNCTION (and friends), MAKE_CLOSURE,
and DUP_TOPX.

XXX Still need to handle free variables in MAKE_CLOSURE.

XXX There are still a lot of places where the computed stack depth is
larger than for the builtin compiler.  These won't cause the
interpreter to overflow the frame, but they waste space.
2001-10-17 13:37:29 +00:00
..
__init__.py Fix comment typo 2001-09-27 04:18:36 +00:00
ast.py Re-created after change to astgen to calculate hardest_arg correctly 2001-09-17 20:17:02 +00:00
consts.py del no longer necessary now that new module is gone 2001-09-14 22:54:48 +00:00
future.py
misc.py Add utility to set filename attribute on all nodes 2001-09-17 18:02:21 +00:00
pyassem.py Vastly improved stacksize calculation. 2001-10-17 13:37:29 +00:00
pycodegen.py API change: 2001-09-17 21:02:51 +00:00
symbols.py The object-being sliced in an assignment to a slice is referenced, not 2001-09-14 22:45:57 +00:00
syntax.py Last set of change to get regression tests to pass 2001-09-17 19:33:48 +00:00
transformer.py Handle testlist_safe as if it were testlist. 2001-10-17 13:32:52 +00:00
visitor.py