def preparation(translator, graphs, threshold=SMALL_THRESHOLD, heuristic=inline.inlining_heuristic): count = 0 inline.auto_inline_graphs(translator, graphs, threshold, heuristic=heuristic) count += remove_mallocs(translator, graphs) log.inlineandremove("preparation removed %s mallocs in total" % count) return count
def inline_and_remove(t, graphs, threshold=BIG_THRESHOLD, heuristic=inline.inlining_heuristic): callgraph, caller_candidates = find_malloc_removal_candidates(t, graphs) log.inlineandremove("found %s malloc removal candidates" % len(caller_candidates)) if callgraph: count = inline.auto_inlining(t, callgraph=callgraph, threshold=threshold, heuristic=heuristic) if not count: return False log.inlineandremove('inlined %d callsites.'% (count,)) count = remove_mallocs(t, caller_candidates.keys()) return count else: return False
def inline_and_remove(t, graphs, threshold=BIG_THRESHOLD, heuristic=inline.inlining_heuristic): callgraph, caller_candidates = find_malloc_removal_candidates(t, graphs) log.inlineandremove("found %s malloc removal candidates" % len(caller_candidates)) if callgraph: count = inline.auto_inlining(t, callgraph=callgraph, threshold=threshold, heuristic=heuristic) if not count: return False log.inlineandremove('inlined %d callsites.' % (count, )) count = remove_mallocs(t, caller_candidates.keys()) return count else: return False