diff --git a/src/liveness.py b/src/liveness.py index f43c1e2ff6060213b5355679bef54d5ec5f5c0d6..de8dbf49a127ce1c000fb37f8c517a08a273d367 100644 --- a/src/liveness.py +++ b/src/liveness.py @@ -29,7 +29,8 @@ def create_use_def(block): defined = set() if block.dummy: - block.use_set = set(['$4', '$5', '$6', '$7']) + block.use_set = set(['$4', '$5', '$6', '$7', \ + '$f0', '$f3', '$f4', '$f12', '$2']) block.def_set = set(['$2', '$3']) return diff --git a/src/program.py b/src/program.py index d03d2d02bf3913b84742f185c776e51d6ca8f903..3762a1c1ae29ce92a4b741818e35683d14ff55ae 100644 --- a/src/program.py +++ b/src/program.py @@ -66,21 +66,22 @@ class Program(Block): if not hasattr(self, 'statements'): self.statements = self.get_statements() - return remove_redundant_jumps(self) -# | remove_redundant_branch_jumps(self) + return remove_redundant_jumps(self) \ + | remove_redundant_branch_jumps(self) + return False def optimize_blocks(self): """Optimize on block level. Keep executing all optimizations until no more changes occur.""" changed = False -# for block in self.blocks: -# if remove_redundancies(block) \ -# | eliminate_common_subexpressions(block) \ -# | fold_constants(block) \ -# | copy_propagation(block) \ -# | eliminate_dead_code(block): -# changed = True + for block in self.blocks: + if remove_redundancies(block) \ + | eliminate_common_subexpressions(block) \ + | fold_constants(block) \ + | copy_propagation(block) \ + | eliminate_dead_code(block): + changed = True return changed