'Find all sources to the specified variable definition.
:param ProgramVariable var_def: The variable definition.
:param bool simplified_graph: True if we want to search in the simplified graph, False otherwise.
:return: A collection of all sources to the specified variable definition.
:rtype: list'

def find_sources(self, var_def, simplified_graph=True):

    if simplified_graph:
        graph = self.simplified_data_graph
    else:
        graph = self.graph
    if (var_def not in graph):
        return []
    sources = []
    in_edges = graph.in_edges(var_def, data=True)
    for (src, _, data) in in_edges:
        if (('type' in data) and (data['type'] == 'kill')):
            continue
        sources.append(src)
    return sources
