Halide
StrictifyFloat.h
Go to the documentation of this file.
1 #ifndef HALIDE_STRICTIFY_FLOAT_H
2 #define HALIDE_STRICTIFY_FLOAT_H
3 
4 /** \file
5  * Defines a lowering pass to make all floating-point strict for all top-level Exprs.
6  */
7 
8 #include <map>
9 
10 #include "Target.h"
11 
12 namespace Halide {
13 namespace Internal {
14 
15 class Function;
16 
17 /** Propagate strict_float intrinisics such that they immediately wrap
18  * all floating-point expressions. This makes the IR nodes context
19  * independent. If the Target::StrictFloat flag is specified in
20  * target, starts in strict_float mode so all floating-point type
21  * Exprs in the compilation will be marked with strict_float. Returns
22  * whether any strict floating-point is used in any function in the
23  * passed in env.
24  */
25 bool strictify_float(std::map<std::string, Function> &env, const Target &t);
26 
27 } // namespace Internal
28 } // namespace Halide
29 
30 #endif
Target.h
Halide
This file defines the class FunctionDAG, which is our representation of a Halide pipeline,...
Definition: AddAtomicMutex.h:21
Halide::LinkageType::Internal
@ Internal
Not visible externally, similar to 'static' linkage in C.
Halide::Internal::IOKind::Function
@ Function
Halide::Internal::strictify_float
bool strictify_float(std::map< std::string, Function > &env, const Target &t)
Propagate strict_float intrinisics such that they immediately wrap all floating-point expressions.