28 const Expr &e,
const std::string &variable,
A fragment of Halide syntax.
A class to represent ranges of Exprs.
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.
Interval solve_for_inner_interval(const Expr &c, const std::string &variable)
Find the largest interval such that the condition is definitely true inside of it, and might be true or false outside of it.
A common pattern when traversing Halide IR is that you need to keep track of stuff when you find a Le...
Base classes for Halide expressions (Halide::Expr) and statements (Halide::Internal::Stmt) ...
Methods for computing the upper and lower bounds of an expression, and the regions of a function read...
Interval solve_for_outer_interval(const Expr &c, const std::string &variable)
Find the smallest interval such that the condition is either true or false inside of it...
Not visible externally, similar to 'static' linkage in C.
Defines the Scope class, which is used for keeping track of names in a scope while traversing IR...
SolverResult solve_expression(const Expr &e, const std::string &variable, const Scope< Expr > &scope=Scope< Expr >::empty_scope())
Attempts to collect all instances of a variable in an expression tree and place it as far to the left...
Defines the Interval class.
Expr and_condition_over_domain(const Expr &c, const Scope< Interval > &varying)
Take a conditional that includes variables that vary over some domain, and convert it to a more conse...