def build_problem (pairing, force_inline = None, skip_underspec = False): p = Problem (pairing) for (tag, fname) in pairing.funs.items (): p.add_entry_function (functions[fname], tag) p.do_analysis () # FIXME: the inlining is heuristic and belongs in 'search' inline_completely_unmatched (p, skip_underspec = skip_underspec) # now do any C inlining inline_reachable_unmatched_C (p, force_inline, skip_underspec = skip_underspec) trace ('Done inlining.') p.pad_merge_points () p.do_analysis () return p
def build_problem(pairing, force_inline=None, avoid_abort=False): p = Problem(pairing) for (tag, fname) in pairing.funs.items(): p.add_entry_function(functions[fname], tag) p.do_analysis() # FIXME: the inlining is heuristic, and arguably belongs in 'search' inline_completely_unmatched(p, skip_underspec=avoid_abort) # now do any C inlining inline_reachable_unmatched_C(p, force_inline, skip_underspec=avoid_abort) trace('Done inlining.') p.pad_merge_points() p.do_analysis() if not avoid_abort: p.check_no_inner_loops() return p