فهرست منبع

Fixed faulty function call in init of optimize module

Jayke Meijer 14 سال پیش
والد
کامیت
469a6f8f7e
3فایلهای تغییر یافته به همراه6 افزوده شده و 5 حذف شده
  1. 1 0
      benchmarks/optimized/.gitignore
  2. 1 2
      benchmarks/optimized/acron.s
  3. 4 3
      src/optimize/__init__.py

+ 1 - 0
benchmarks/optimized/.gitignore

@@ -0,0 +1 @@
+*.s

+ 1 - 2
benchmarks/optimized/acron.s

@@ -180,7 +180,6 @@ $L5:
 	addu	$3,$16,$17
 	addu	$2,$3,$2
 	sw	$2,24($fp)
-	lw	$2,24($fp)
 	beq	$2,$0,$L8
 	lw	$2,24($fp)
 	li	$3,0x00000003		# 3
@@ -410,4 +409,4 @@ $L27:
 	lw	$fp,24($sp)
 	addu	$sp,$sp,32
 	j	$31
-	.end	main
+	.end	main

+ 4 - 3
src/optimize/__init__.py

@@ -3,7 +3,7 @@ from src.dataflow import find_basic_blocks
 from redundancies import remove_redundant_jumps, move_1, move_2, move_3, \
         move_4, load, shift, add
 from advanced import eliminate_common_subexpressions, fold_constants, \
-        copy_propagation
+        copy_propagation, algebraic_transformations
 
 
 def remove_redundancies(block):
@@ -31,7 +31,8 @@ def optimize_block(block):
     while remove_redundancies(block) \
             | eliminate_common_subexpressions(block) \
             | fold_constants(block) \
-            | copy_propagation(block):
+            | copy_propagation(block)\
+            | algebraic_transformations(block):
         pass
 
 
@@ -40,7 +41,7 @@ def optimize(statements, verbose=0):
     optimization functions."""
     # Optimize on a global level
     o = len(statements)
-    optimize_global(statements)
+    remove_redundant_jumps(statements)
     g = len(statements)
 
     # Optimize basic blocks