Revision 2b3aaa8d6a5bb54a3da4e32395bb80ca09b4e4b3 authored by xndcn on 08 January 2021, 19:46:56 UTC, committed by GitHub on 08 January 2021, 19:46:56 UTC
* Add max threads checking for Metal Originally, this checking will be asserted by Metal API Validation in Xcode, otherwise the program will crash or output wrong results. * Disable the max threads checking for Metal in non-debug runtime * Disable error/metal_threads_too_large test for non-OSX target
1 parent 081f472
Simplify.h
#ifndef HALIDE_SIMPLIFY_H
#define HALIDE_SIMPLIFY_H
/** \file
* Methods for simplifying halide statements and expressions
*/
#include "Expr.h"
#include "Interval.h"
#include "ModulusRemainder.h"
#include "Scope.h"
namespace Halide {
namespace Internal {
/** Perform a a wide range of simplifications to expressions and
* statements, including constant folding, substituting in trivial
* values, arithmetic rearranging, etc. Simplifies across let
* statements, so must not be called on stmts with dangling or
* repeated variable names.
*/
// @{
Stmt simplify(const Stmt &, bool remove_dead_let_stmts = true,
const Scope<Interval> &bounds = Scope<Interval>::empty_scope(),
const Scope<ModulusRemainder> &alignment = Scope<ModulusRemainder>::empty_scope());
Expr simplify(const Expr &, bool remove_dead_let_stmts = true,
const Scope<Interval> &bounds = Scope<Interval>::empty_scope(),
const Scope<ModulusRemainder> &alignment = Scope<ModulusRemainder>::empty_scope());
// @}
/** Attempt to statically prove an expression is true using the simplifier. */
bool can_prove(Expr e, const Scope<Interval> &bounds = Scope<Interval>::empty_scope());
/** Simplify expressions found in a statement, but don't simplify
* across different statements. This is safe to perform at an earlier
* stage in lowering than full simplification of a stmt. */
Stmt simplify_exprs(const Stmt &);
} // namespace Internal
} // namespace Halide
#endif
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...