示例#1
0
def visit_vars_sort(sort_node, callback, cbdata):
    if debug_prints():  # pragma: no cover
        print("visiting sort vars for:", sort_node)
        print("cbdata: ", sorted(cbdata.items()))

    sort_node.key_arr = visit_vars_inner(sort_node.key_arr, callback, cbdata)

    for col_name in list(sort_node.df_vars.keys()):
        sort_node.df_vars[col_name] = visit_vars_inner(
            sort_node.df_vars[col_name], callback, cbdata)
示例#2
0
def visit_vars_filter(filter_node, callback, cbdata):
    if config.DEBUG_ARRAY_OPT == 1:  # pragma: no cover
        print("visiting filter vars for:", filter_node)
        print("cbdata: ", sorted(cbdata.items()))

    filter_node.bool_arr = visit_vars_inner(filter_node.bool_arr, callback, cbdata)

    for col_name in list(filter_node.df_in_vars.keys()):
        filter_node.df_in_vars[col_name] = visit_vars_inner(filter_node.df_in_vars[col_name], callback, cbdata)
    for col_name in list(filter_node.df_out_vars.keys()):
        filter_node.df_out_vars[col_name] = visit_vars_inner(filter_node.df_out_vars[col_name], callback, cbdata)
示例#3
0
def visit_vars_filter(filter_node, callback, cbdata):
    if config.DEBUG_ARRAY_OPT == 1:
        print("visiting filter vars for:", filter_node)
        print("cbdata: ", sorted(cbdata.items()))

    df_vars = filter_node.df_vars
    df_in_vars = df_vars[filter_node.df_in]
    df_out_vars = df_vars[filter_node.df_out]
    filter_node.bool_arr = visit_vars_inner(filter_node.bool_arr, callback, cbdata)

    for col_name in list(df_in_vars.keys()):
        df_in_vars[col_name] = visit_vars_inner(df_in_vars[col_name], callback, cbdata)
    for col_name in list(df_out_vars.keys()):
        df_out_vars[col_name] = visit_vars_inner(df_out_vars[col_name], callback, cbdata)
示例#4
0
def visit_vars_csv(csv_node, callback, cbdata):
    if debug_prints():  # pragma: no cover
        print("visiting csv vars for:", csv_node)
        print("cbdata: ", sorted(cbdata.items()))

    # update output_vars
    new_out_vars = []
    for col_var in csv_node.out_vars:
        new_var = visit_vars_inner(col_var, callback, cbdata)
        new_out_vars.append(new_var)

    csv_node.out_vars = new_out_vars
    csv_node.file_name = visit_vars_inner(csv_node.file_name, callback, cbdata)
    return
示例#5
0
文件: join.py 项目: stjordanis/hpat
def visit_vars_join(join_node, callback, cbdata):
    if debug_prints():  # pragma: no cover
        print("visiting join vars for:", join_node)
        print("cbdata: ", sorted(cbdata.items()))

    # left
    for col_name in list(join_node.left_vars.keys()):
        join_node.left_vars[col_name] = visit_vars_inner(
            join_node.left_vars[col_name], callback, cbdata)
    # right
    for col_name in list(join_node.right_vars.keys()):
        join_node.right_vars[col_name] = visit_vars_inner(
            join_node.right_vars[col_name], callback, cbdata)
    # output
    for col_name in list(join_node.df_out_vars.keys()):
        join_node.df_out_vars[col_name] = visit_vars_inner(
            join_node.df_out_vars[col_name], callback, cbdata)
示例#6
0
def _hoist_internal(inst, dep_on_param, call_table, hoisted, typemap):
    uses = set()
    visit_vars_inner(inst.value, find_vars, uses)
    diff = uses.difference(dep_on_param)
    if len(diff) == 0 and is_pure(inst.value, None, call_table):
        if config.DEBUG_ARRAY_OPT == 1:
            print("Will hoist instruction", inst)
        hoisted.append(inst)
        if not isinstance(typemap[inst.target.name], types.npytypes.Array):
            dep_on_param += [inst.target.name]
        return True
    elif config.DEBUG_ARRAY_OPT == 1:
        if len(diff) > 0:
            print("Instruction", inst, " could not be hoisted because of a dependency.")
        else:
            print("Instruction", inst, " could not be hoisted because it isn't pure.")
    return False
示例#7
0
文件: parfor.py 项目: cpcloud/numba
def _hoist_internal(inst, dep_on_param, call_table, hoisted, typemap):
    uses = set()
    visit_vars_inner(inst.value, find_vars, uses)
    diff = uses.difference(dep_on_param)
    if len(diff) == 0 and is_pure(inst.value, None, call_table):
        if config.DEBUG_ARRAY_OPT == 1:
            print("Will hoist instruction", inst)
        hoisted.append(inst)
        if not isinstance(typemap[inst.target.name], types.npytypes.Array):
            dep_on_param += [inst.target.name]
        return True
    elif config.DEBUG_ARRAY_OPT == 1:
        if len(diff) > 0:
            print("Instruction", inst, " could not be hoisted because of a dependency.")
        else:
            print("Instruction", inst, " could not be hoisted because it isn't pure.")
    return False