Commit 053da966 authored by Taddeus Kroes's avatar Taddeus Kroes

Added some debug print statements to reaching definitions.

parent 2f461f59
...@@ -63,6 +63,10 @@ def get_defs(blocks): ...@@ -63,6 +63,10 @@ def get_defs(blocks):
def reaching_definitions(blocks): def reaching_definitions(blocks):
"""Generate the `in' and `out' sets of the given blocks using the iterative """Generate the `in' and `out' sets of the given blocks using the iterative
algorithm from the lecture slides.""" algorithm from the lecture slides."""
# Generate flow graph
generate_flow_graph(blocks)
# Create gen/kill sets
defs = get_defs(blocks) defs = get_defs(blocks)
print 'defs:', defs print 'defs:', defs
...@@ -76,14 +80,20 @@ def reaching_definitions(blocks): ...@@ -76,14 +80,20 @@ def reaching_definitions(blocks):
change = False change = False
for b in blocks: for b in blocks:
print 'block:', b
b.in_set = set() b.in_set = set()
for pred in b.edges_from: for pred in b.edges_from:
print 'pred: ', pred
b.in_set |= pred.out_set b.in_set |= pred.out_set
print 'b.in_set: ', b.in_set
print 'b.out_set: ', b.out_set
new_out = b.gen_set | (b.in_set - b.kill_set) new_out = b.gen_set | (b.in_set - b.kill_set)
print 'new_out: ', new_out
if new_out != b.out_set: if new_out != b.out_set:
print 'changed'
b.out_set = new_out b.out_set = new_out
change = True change = True
......
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