Commit 7343f43c authored by Taddeus Kroes's avatar Taddeus Kroes

Merged conflicts.

parents fff63a67 8dfef611
from src.dataflow import find_basic_blocks
from dataflow import find_basic_blocks
from standard import redundant_move_1, redundant_move_2, \
redundant_move_3, redundant_move_4, redundant_load, \
redundant_shift, redundant_add
from advanced import eliminate_common_subexpressions, fold_constants
from advanced import eliminate_common_subexpressions, fold_constants, \
copy_propagation
def optimize_global(statements):
......@@ -57,7 +58,7 @@ def optimize_block(block):
# or fold_constants(block)
while eliminate_common_subexpressions(block) \
| fold_constants(block):
| fold_constants(block) | copy_propagation(block):
pass
def optimize(statements, verbose=0):
......
from src.statement import Statement as S
from statement import Statement as S
def create_variable():
......@@ -103,9 +103,21 @@ def fold_constants(block):
return False
def copy_propagtion(block):
def copy_propagation(block):
"""
Rename values that were copied to there original, so the copy statement
might be useless, allowing it to be removed by dead code elimination.
"""
return false
moves = []
count = 0
while not block.end():
s = block.read()
if s.is_command('move'):
moves.append((s[0], s[1]))
count += 1
print "count", count
return False
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