コード例 #1
0
ファイル: check.py プロジェクト: bacam/graph-refine
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
コード例 #2
0
ファイル: check.py プロジェクト: yyshen/graph-refine
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