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 #include <string>
10 
11 namespace Halide {
12 
13 struct Target;
14 
15 namespace Internal {
16 
17 class Function;
18 
19 /** Propagate strict_float intrinisics such that they immediately wrap
20  * all floating-point expressions. This makes the IR nodes context
21  * independent. If the Target::StrictFloat flag is specified in
22  * target, starts in strict_float mode so all floating-point type
23  * Exprs in the compilation will be marked with strict_float. Returns
24  * whether any strict floating-point is used in any function in the
25  * passed in env.
26  */
27 bool strictify_float(std::map<std::string, Function> &env, const Target &t);
28 
29 } // namespace Internal
30 } // namespace Halide
31 
32 #endif
Halide::Internal::ArgInfoKind::Function
@ Function
Halide
This file defines the class FunctionDAG, which is our representation of a Halide pipeline,...
Definition: AbstractGenerator.h:19
Halide::LinkageType::Internal
@ Internal
Not visible externally, similar to 'static' linkage in C.
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.