diff python/ir/basicblock.py @ 239:63bb40758066

added check
author Windel Bouwman
date Mon, 22 Jul 2013 17:57:25 +0200
parents 1fa3e0050b49
children ef683881c64e
line wrap: on
line diff
--- a/python/ir/basicblock.py	Sat Jul 20 13:18:04 2013 +0200
+++ b/python/ir/basicblock.py	Mon Jul 22 17:57:25 2013 +0200
@@ -2,25 +2,27 @@
 class BasicBlock:
     """ Uninterrupted sequence of instructions. """
     def __init__(self, name):
-      self.name = name
-      self.instructions = []
+        self.name = name
+        self.instructions = []
+
     def __repr__(self):
-      return 'BasicBlock {0}'.format(self.name)
+        return 'BasicBlock {0}'.format(self.name)
+
     def addInstruction(self, i):
-      i.parent = self
-      self.instructions.append(i)
+        i.parent = self
+        self.instructions.append(i)
     addIns = addInstruction
 
     def replaceInstruction(self, i1, i2):
-      idx = self.instructions.index(i1)
-      i1.parent = None
-      i1.delete()
-      i2.parent = self
-      self.instructions[idx] = i2
+        idx = self.instructions.index(i1)
+        i1.parent = None
+        i1.delete()
+        i2.parent = self
+        self.instructions[idx] = i2
 
     def removeInstruction(self, i):
-      i.parent = None
-      self.instructions.remove(i)
+        i.parent = None
+        self.instructions.remove(i)
 
     def getInstructions(self):
         return self.instructions
@@ -34,14 +36,16 @@
     Instructions = property(getInstructions, setInstructions)
 
     def getLastIns(self):
-      return self.instructions[-1]
+        return self.instructions[-1]
     LastInstruction = property(getLastIns)
+
     @property
     def Empty(self):
-      return len(self.instructions) == 0
+        return len(self.instructions) == 0
+
     @property
     def FirstInstruction(self):
-      return self.instructions[0]
+        return self.instructions[0]
     FirstIns = FirstInstruction
 
     def getSuccessors(self):
@@ -52,10 +56,14 @@
     Successors = property(getSuccessors)
 
     def getPredecessors(self):
-      preds = []
-      for bb in self.parent.BasicBlocks:
-         if self in bb.Successors:
-            preds.append(bb)
-      return preds
+        preds = []
+        for bb in self.parent.BasicBlocks:
+            if self in bb.Successors:
+                preds.append(bb)
+        return preds
     Predecessors = property(getPredecessors)
 
+    def check(self):
+        for ins in self.Instructions:
+            ins.check()
+