Mercurial > lcfOS
view python/codegen.py @ 277:046017431c6a
Started register allocator
author | Windel Bouwman |
---|---|
date | Thu, 26 Sep 2013 21:14:25 +0200 |
parents | ea93e0a7a31e |
children | 02385f62f250 |
line wrap: on
line source
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.Blocks: for ins in bb.Instructions: # Instruction selection: #mi = self.tryMap(ins) pass return obj