10 bool is_undef(std::vector<Halide::Expr> e);
32 std::string func_name,
42 std::string func_name,
43 std::vector<Halide::Expr> call_args,
50 std::string func_name,
58 std::string func_name,
65 std::string func_name,
76 std::string func_name,
77 std::vector<Halide::Expr> def_arg,
93 std::string func_name,
96 Halide::Expr boundary,
108 std::string func_name,
109 std::vector<std::string> func_args,
110 std::vector<Halide::Expr> extra,
111 Halide::Expr original
119 std::string func_name,
120 Halide::Internal::Function replace,
121 Halide::Expr original
131 std::string func_name,
133 Halide::Expr original
142 std::string func_name,
144 Halide::Expr original
151 Halide::Expr original
172 std::map<std::string,VarTag>& var_tags,
173 std::vector<std::string> args,
174 std::map<std::string,std::string> var_splits);
185 std::map<std::string,VarTag>& var_tags,
186 std::vector<Halide::Expr> args,
187 std::map<std::string,std::string> var_splits);
194 void inline_function(Halide::Internal::Function f, std::vector<Halide::Func> func_list);
196 #endif // _MODIFIERS_H_
void reassign_vartag_counts(std::map< std::string, VarTag > &var_tags, std::vector< std::string > args, std::map< std::string, std::string > var_splits)
Make sure that all vars with tags INNER, OUTER or FULL have VarTag count in the same order as they ap...
Halide::Expr substitute_arg_in_feedforward_func_call(std::string func_name, std::vector< Halide::Expr > def_arg, size_t pos, Halide::Expr new_arg, Halide::Expr original)
Substitute a calling arg in feed forward recursive calls to a Func; feedforward calls are those where...
Halide::Expr augment_func_call(std::string func_name, std::vector< std::string > func_args, std::vector< Halide::Expr > extra, Halide::Expr original)
Mathematically add an expression to all calls to a particular Function; the expression to be added is...
Halide::Expr substitute_func_call_with_args(std::string func_name, std::vector< Halide::Expr > call_args, Halide::Expr replace, Halide::Expr original)
Substitute all calls to a particular Function by a given expression the calling args match the given ...
void inline_function(Halide::Internal::Function f, std::vector< Halide::Func > func_list)
Inline a pure function in a list of other functions.
Halide::Expr insert_arg_in_func_call(std::string func_name, size_t pos, Halide::Expr arg, Halide::Expr original)
Add a calling argument to all calls to a particular Function.
std::map< std::string, Halide::Buffer > extract_buffer_calls(Halide::Func func)
Extract the list of buffers called in the definition a function.
Halide::Expr remove_lets(Halide::Expr)
Remove all lets by inlining; all sub-expressions will exist once in memory, but may have many pointer...
Halide::Expr remove_func_calls(std::string func_name, bool matching, Halide::Expr original)
Remove all calls to a particular Function or to all Functions except for a particular Function by ide...
Halide::Expr swap_vars_in_expr(std::string a, std::string b, Halide::Expr original)
Swaps two variables in an expression.
bool expr_depends_on_var(Halide::Expr expr, std::string var)
Check if a given expression depends upon a variable.
Halide::Expr remove_arg_from_func_call(std::string func_name, size_t pos, Halide::Expr original)
Remove a calling argument from all calls to a particular Function.
bool is_undef(Halide::Expr e)
Return true if all Expr in the vector are undef.
Halide::Expr increment_value_index_in_func_call(std::string func_name, int increment, Halide::Expr original)
Find all calls to a particular Function and increment the value_index (Halide::Internal::Call::value_...
Halide::Expr substitute_in_func_call(std::string func_name, std::string var, Halide::Expr replace, Halide::Expr original)
Substitute a variable in all calls to a particular Function in a given expression.
bool expr_depends_on_func(Halide::Expr expr, std::string func_name)
Check if a given expression contains calls to a Function.
Halide::Expr swap_args_in_func_call(std::string func_name, size_t va_idx, size_t vb_idx, Halide::Expr original)
Swap two calling arguments of given function in the expression.
Halide::Expr substitute_func_call(std::string func_name, Halide::Internal::Function replace, Halide::Expr original)
Substitute all calls to a particular Function by a new Function with the same calling arguments...
Halide::Expr apply_zero_boundary_in_func_call(std::string func_name, size_t dim, Halide::Expr def_arg, Halide::Expr boundary, Halide::Expr cond, Halide::Expr original)
Apply zero boundary condition on all tiles except tiles that touch image borders; this pads tiles by ...