Commit 86b34864 authored by Richard Torenvliet's avatar Richard Torenvliet

Merge branch 'master' of github.com:taddeus/peephole

parents d5d6df6b 8d613005
......@@ -38,8 +38,7 @@ def is_reg_dead_after(reg, block, index, known_jump_targets=[]):
# If dead within the same block, check if the register is in the block's
# live_out set
#return reg not in RESERVED_OUT and reg not in block.live_out
return reg not in block.live_out
return reg not in RESERVED_OUT and reg not in block.live_out
def create_use_def(block):
......@@ -94,12 +93,10 @@ def create_in_out(blocks):
# Start by analyzing the exit points
work_list = set()
exit_points = []
for b in blocks:
if b.edges_from and not b.edges_to:
work_list.add(b)
exit_points.append(b)
while len(work_list):
b = work_list.pop()
......@@ -118,6 +115,3 @@ def create_in_out(blocks):
if new_in != b.live_in:
b.live_in = new_in
work_list |= set(b.edges_from)
for b in exit_points:
b.live_out |= set(RESERVED_OUT)
......@@ -44,6 +44,6 @@ def optimize(program, verbose=0):
# Print results
if verbose:
print 'Original statements: %d' % o
print 'Statements removed: %d (%d%%)' \
% (o - b, int((o - b) / float(b) * 100))
print 'Original statements: %d' % o
print 'Statements removed: %d (%d%%)'
% (o - b, int((o - b) / float(b) * 100))
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment