# HG changeset patch # User Windel Bouwman # Date 1372493390 -7200 # Node ID 67b0feafe5aefaaa19e469cae0a9d07a6dc6b205 # Parent 07bfea4c1ed7626542ae68713633995016035766 Added missing file diff -r 07bfea4c1ed7 -r 67b0feafe5ae python/codegen.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/python/codegen.py Sat Jun 29 10:09:50 2013 +0200 @@ -0,0 +1,31 @@ +import ir, target +from ppci import CompilerError + +class CodeGenerator: + """ Target independent code generator """ + def __init__(self, tg): + assert isinstance(tg, target.Target) + self.tg = tg + + def tryMap(self, ii): + for mi in self.tg.instructions: + if mi.irpattern is ii: + return mi.FromIr(ii) + raise CompilerError('Cannot map {0}'.format(ii)) + + def generate(self, ircode): + assert isinstance(ircode, ir.Module) + obj = object() + for gvar in ircode.Variables: + print(gvar) + print('TODO') + for f in ircode.Functions: + for bb in f.BasicBlocks: + print(bb) + for ins in bb.Instructions: + # Instruction selection: + print(ins) + #mi = self.tryMap(ins) + return obj + +