annotate python/ir/function.py @ 177:460db5669efa

Added clean pass for IR
author Windel Bouwman
date Mon, 22 Apr 2013 23:54:54 +0200
parents c1d2b6b9f9a7
children d77cb5962cc5
rev   line source
172
5a7d37d615ee Added function to IR
Windel Bouwman
parents:
diff changeset
1 from .basicblock import BasicBlock
5a7d37d615ee Added function to IR
Windel Bouwman
parents:
diff changeset
2
5a7d37d615ee Added function to IR
Windel Bouwman
parents:
diff changeset
3 class Function:
5a7d37d615ee Added function to IR
Windel Bouwman
parents:
diff changeset
4 def __init__(self, name):
5a7d37d615ee Added function to IR
Windel Bouwman
parents:
diff changeset
5 self.name = name
5a7d37d615ee Added function to IR
Windel Bouwman
parents:
diff changeset
6 self.bbs = []
5a7d37d615ee Added function to IR
Windel Bouwman
parents:
diff changeset
7 self.entry = None
5a7d37d615ee Added function to IR
Windel Bouwman
parents:
diff changeset
8 def __repr__(self):
173
c1d2b6b9f9a7 Rework into passes
Windel Bouwman
parents: 172
diff changeset
9 return 'Function {0}'.format(self.name)
172
5a7d37d615ee Added function to IR
Windel Bouwman
parents:
diff changeset
10 def addBB(self, bb):
5a7d37d615ee Added function to IR
Windel Bouwman
parents:
diff changeset
11 self.bbs.append(bb)
177
460db5669efa Added clean pass for IR
Windel Bouwman
parents: 173
diff changeset
12 bb.parent = self
460db5669efa Added clean pass for IR
Windel Bouwman
parents: 173
diff changeset
13 def removeBasicBlock(self, bb):
460db5669efa Added clean pass for IR
Windel Bouwman
parents: 173
diff changeset
14 self.bbs.remove(bb)
460db5669efa Added clean pass for IR
Windel Bouwman
parents: 173
diff changeset
15 bb.parent = None
172
5a7d37d615ee Added function to IR
Windel Bouwman
parents:
diff changeset
16 def getBBs(self):
5a7d37d615ee Added function to IR
Windel Bouwman
parents:
diff changeset
17 return self.bbs
5a7d37d615ee Added function to IR
Windel Bouwman
parents:
diff changeset
18 BasicBlocks = property(getBBs)
5a7d37d615ee Added function to IR
Windel Bouwman
parents:
diff changeset
19
5a7d37d615ee Added function to IR
Windel Bouwman
parents:
diff changeset
20