Halide 19.0.0
Halide compiler and libraries
Loading...
Searching...
No Matches
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
11namespace Halide {
12
13struct Target;
14
15namespace Internal {
16
17class 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 */
27bool strictify_float(std::map<std::string, Function> &env, const Target &t);
28
29} // namespace Internal
30} // namespace Halide
31
32#endif
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.
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 struct representing a target machine and os to generate code for.
Definition Target.h:19