Mercurial > lcfOS
diff python/ppci/codegen/registerallocator.py @ 312:2c9768114877
Added cool logging formatter
author | Windel Bouwman |
---|---|
date | Mon, 16 Dec 2013 17:58:15 +0100 |
parents | 0615b5308710 |
children | e9fe6988497c |
line wrap: on
line diff
--- a/python/ppci/codegen/registerallocator.py Mon Dec 16 12:49:24 2013 +0100 +++ b/python/ppci/codegen/registerallocator.py Mon Dec 16 17:58:15 2013 +0100 @@ -1,3 +1,4 @@ +import logging from .flowgraph import FlowGraph from .interferencegraph import InterferenceGraph @@ -21,6 +22,8 @@ - (optional) spill registers - select registers """ + def __init__(self): + self.logger = logging.getLogger('registerallocator') def InitData(self, f): self.f = f @@ -38,7 +41,9 @@ def Build(self): """ 1. Construct interference graph from instruction list """ self.f.cfg = FlowGraph(self.f.instructions) + self.logger.info('Constructed flowgraph', extra={'ra_cfg':self.f.cfg}) self.f.ig = InterferenceGraph(self.f.cfg) + self.logger.info('Constructed interferencegraph', extra={'ra_ig':self.f.ig}) self.Node = self.f.ig.getNode @@ -146,14 +151,12 @@ v = m.src[0] if u is m.dst[0] else m.dst[0] def SelectSpill(self): - # TODO - pass + raise NotImplementedError("Spill is not implemented") def AssignColors(self): """ Add nodes back to the graph to color it. """ - # Add nodes back to the graph: while self.selectStack: - n = self.selectStack.pop(-1) + n = self.selectStack.pop(-1) # Start with the last added self.f.ig.addNode(n) takenregs = set(self.color[m] for m in n.Adjecent) okColors = self.regs - takenregs @@ -192,4 +195,3 @@ break # Done! self.AssignColors() self.ApplyColors() -