Просмотр исходного кода

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

Taddeus Kroes 14 лет назад
Родитель
Сommit
d2d13e18ed
1 измененных файлов с 16 добавлено и 1 удалено
  1. 16 1
      tests/test_optimize_advanced.py

+ 16 - 1
tests/test_optimize_advanced.py

@@ -49,6 +49,20 @@ class TestOptimizeAdvanced(unittest.TestCase):
                    self.foo,
                    self.foo,
                    S('command', 'addu', '$3', '$2', '$4'),
                    S('command', 'addu', '$3', '$2', '$4'),
                    self.bar])
                    self.bar])
+                   
+    def test_copy_propagation_other_arg(self):
+        block = B([self.foo,
+                   S('command', 'move', '$1', '$2'),
+                   self.foo,
+                   S('command', 'addu', '$3', '$4', '$1'),
+                   self.bar])
+
+        self.assertTrue(copy_propagation(block))
+        self.assertEqual(block.statements, [self.foo,
+                   S('command', 'move', '$1', '$2'),
+                   self.foo,
+                   S('command', 'addu', '$3', '$4', '$2'),
+                   self.bar])
 
 
     def test_copy_propagation_overwrite(self):
     def test_copy_propagation_overwrite(self):
         block = B([self.foo, \
         block = B([self.foo, \
@@ -169,7 +183,8 @@ class TestOptimizeAdvanced(unittest.TestCase):
 
 
     def test_algebraic_transforms_mult3(self):
     def test_algebraic_transforms_mult3(self):
         arguments = [self.foo,
         arguments = [self.foo,
-                     S('command', 'mult', '$1', '$2', 3),
+                     S('command', 'mult', '$2', 3),
+                     S('command', 'mflo', '$1'),
                      self.bar]
                      self.bar]
         block = B(arguments)
         block = B(arguments)