'Remove assignments to registers that has no consumers, but immediately killed.
BROKEN - DO NOT USE IT
:param angr.knowledge.Function function:
:param networkx.MultiDiGraph data_graph:
:return: None'

def _dead_assignment_elimination(self, function, data_graph):

    register_pvs = set()
    for node in data_graph.nodes_iter():
        if (isinstance(node.variable, SimRegisterVariable) and (node.variable.reg is not None) and (node.variable.reg < 40)):
            register_pvs.add(node)
    for reg in register_pvs:
        out_edges = data_graph.out_edges(reg, data=True)
        consumers = []
        killers = []
        for (_, _, data) in out_edges:
            if (('type' in data) and (data['type'] == 'kill')):
                killers.append(data)
            else:
                consumers.append(data)
        if ((not consumers) and killers):
            da = DeadAssignment(reg)
            self.dead_assignments.append(da)
