1 #ifndef HALIDE_SIMPLIFY_H 2 #define HALIDE_SIMPLIFY_H 24 Stmt
simplify(
const Stmt &,
bool remove_dead_code =
true,
27 const std::vector<Expr> &assumptions = std::vector<Expr>());
28 Expr
simplify(
const Expr &,
bool remove_dead_code =
true,
31 const std::vector<Expr> &assumptions = std::vector<Expr>());
Routines for statically determining what expressions are divisible by.
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.
Base classes for Halide expressions (Halide::Expr) and statements (Halide::Internal::Stmt) ...
bool can_prove(Expr e, const Scope< Interval > &bounds=Scope< Interval >::empty_scope())
Attempt to statically prove an expression is true using the simplifier.
Stmt simplify(const Stmt &, bool remove_dead_code=true, const Scope< Interval > &bounds=Scope< Interval >::empty_scope(), const Scope< ModulusRemainder > &alignment=Scope< ModulusRemainder >::empty_scope(), const std::vector< Expr > &assumptions=std::vector< Expr >())
Perform a wide range of simplifications to expressions and statements, including constant folding...
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...
static const Scope< T > & empty_scope()
A const ref to an empty scope.
Stmt simplify_exprs(const Stmt &)
Simplify expressions found in a statement, but don't simplify across different statements.
Defines the Interval class.