Halide  12.0.1
Halide compiler and libraries
UnsafePromises.h
Go to the documentation of this file.
1 #ifndef HALIDE_UNSAFE_PROMISES_H
2 #define HALIDE_UNSAFE_PROMISES_H
3 
4 /** \file
5  * Defines the lowering pass that removes unsafe promises
6  */
7 
8 #include "Expr.h"
9 
10 namespace Halide {
11 
12 struct Target;
13 
14 namespace Internal {
15 
16 /** Lower all unsafe promises into either assertions or unchecked
17  code, depending on the target. */
18 Stmt lower_unsafe_promises(const Stmt &s, const Target &t);
19 
20 /** Lower all safe promises by just stripping them. This is a good
21  * idea once no more lowering stages are going to use
22  * boxes_touched. */
24 
25 } // namespace Internal
26 } // namespace Halide
27 
28 #endif
Base classes for Halide expressions (Halide::Expr) and statements (Halide::Internal::Stmt)
Stmt lower_unsafe_promises(const Stmt &s, const Target &t)
Lower all unsafe promises into either assertions or unchecked code, depending on the target.
Stmt lower_safe_promises(const Stmt &s)
Lower all safe promises by just stripping them.
This file defines the class FunctionDAG, which is our representation of a Halide pipeline,...
@ Internal
Not visible externally, similar to 'static' linkage in C.
A reference-counted handle to a statement node.
Definition: Expr.h:413
A struct representing a target machine and os to generate code for.
Definition: Target.h:19