'Set initial state, map assignments to bits.'

def initialize(self):

    self.assmts = {}
    bit = 1
    for entry in self.entries:
        assmts = AssignmentList()
        assmts.mask = assmts.bit = bit
        self.assmts[entry] = assmts
        bit <<= 1
    for block in self.blocks:
        for stat in block.stats:
            if isinstance(stat, NameAssignment):
                stat.bit = bit
                assmts = self.assmts[stat.entry]
                assmts.stats.append(stat)
                assmts.mask |= bit
                bit <<= 1
    for block in self.blocks:
        for (entry, stat) in block.gen.items():
            assmts = self.assmts[entry]
            if (stat is Uninitialized):
                block.i_gen |= assmts.bit
            else:
                block.i_gen |= stat.bit
            block.i_kill |= assmts.mask
        block.i_output = block.i_gen
        for entry in block.bounded:
            block.i_kill |= self.assmts[entry].bit
    for assmts in self.assmts.values():
        self.entry_point.i_gen |= assmts.bit
    self.entry_point.i_output = self.entry_point.i_gen
