Halide
DerivativeUtils.h File Reference
#include <set>
#include "Bounds.h"
#include "Derivative.h"
#include "Expr.h"
#include "RDom.h"
#include "Scope.h"
#include "Var.h"

Go to the source code of this file.

Classes

struct  Halide::Internal::ReductionVariableInfo
 Return a list of reduction variables the expression or tuple depends on. More...
 
struct  Halide::Internal::BufferInfo
 Find all calls to image buffers and parameters in the function. More...
 

Namespaces

 Halide
 This file defines the class FunctionDAG, which is our representation of a Halide pipeline, and contains methods to using Halide's bounds tools to query properties of it.
 
 Halide::Internal
 

Functions

Expr Halide::Internal::remove_let_definitions (const Expr &expr)
 Remove all let definitions of expr. More...
 
std::vector< int > Halide::Internal::gather_variables (const Expr &expr, const std::vector< std::string > &filter)
 Return a list of variables' indices that expr depends on and are in the filter. More...
 
std::vector< int > Halide::Internal::gather_variables (const Expr &expr, const std::vector< Var > &filter)
 
std::map< std::string, ReductionVariableInfo > Halide::Internal::gather_rvariables (const Expr &expr)
 
std::map< std::string, ReductionVariableInfo > Halide::Internal::gather_rvariables (const Tuple &tuple)
 
Expr Halide::Internal::add_let_expression (const Expr &expr, const std::map< std::string, Expr > &let_var_mapping, const std::vector< std::string > &let_variables)
 Add necessary let expressions to expr. More...
 
std::vector< Expr > Halide::Internal::sort_expressions (const Expr &expr)
 Topologically sort the expression graph expressed by expr. More...
 
std::map< std::string, Box > Halide::Internal::inference_bounds (const std::vector< Func > &funcs, const std::vector< Box > &output_bounds)
 Compute the bounds of funcs. More...
 
std::map< std::string, Box > Halide::Internal::inference_bounds (const Func &func, const Box &output_bounds)
 
std::vector< std::pair< Expr, Expr > > Halide::Internal::box_to_vector (const Box &bounds)
 Convert Box to vector of (min, extent) More...
 
bool Halide::Internal::equal (const RDom &bounds0, const RDom &bounds1)
 Return true if bounds0 and bounds1 represent the same bounds. More...
 
std::vector< std::string > Halide::Internal::vars_to_strings (const std::vector< Var > &vars)
 Return a list of variable names. More...
 
ReductionDomain Halide::Internal::extract_rdom (const Expr &expr)
 Return the reduction domain used by expr. More...
 
std::pair< bool, Expr > Halide::Internal::solve_inverse (Expr expr, const std::string &new_var, const std::string &var)
 expr is new_var == f(var), solve for var == g(new_var) if multiple new_var corresponds to same var, introduce a RDom More...
 
std::map< std::string, BufferInfo > Halide::Internal::find_buffer_param_calls (const Func &func)
 
std::set< std::string > Halide::Internal::find_implicit_variables (const Expr &expr)
 Find all implicit variables in expr. More...
 
Expr Halide::Internal::substitute_rdom_predicate (const std::string &name, const Expr &replacement, const Expr &expr)
 Substitute the variable. More...
 
bool Halide::Internal::is_calling_function (const std::string &func_name, const Expr &expr, const std::map< std::string, Expr > &let_var_mapping)
 Return true if expr contains call to func_name. More...
 
bool Halide::Internal::is_calling_function (const Expr &expr, const std::map< std::string, Expr > &let_var_mapping)
 Return true if expr depends on any function or buffer. More...
 
Expr Halide::Internal::substitute_call_arg_with_pure_arg (Func f, int variable_id, const Expr &e)
 Replaces call to Func f in Expr e such that the call argument at variable_id is the pure argument. More...