Halide  17.0.2
Halide compiler and libraries
Inline.h
Go to the documentation of this file.
1 #ifndef HALIDE_INLINE_H
2 #define HALIDE_INLINE_H
3 
4 /** \file
5  * Methods for replacing calls to functions with their definitions.
6  */
7 
8 #include "Expr.h"
9 
10 namespace Halide {
11 namespace Internal {
12 
13 class Function;
14 
15 /** Inline a single named function, which must be pure. For a pure function to
16  * be inlined, it must not have any specializations (i.e. it can only have one
17  * values definition). */
18 // @{
19 Stmt inline_function(Stmt s, const Function &f);
20 Expr inline_function(Expr e, const Function &f);
21 void inline_function(Function caller, const Function &f);
22 // @}
23 
24 /** Check if the schedule of an inlined function is legal, throwing an error
25  * if it is not. */
26 void validate_schedule_inlined_function(Function f);
27 
28 } // namespace Internal
29 } // namespace Halide
30 
31 #endif
Stmt inline_function(Stmt s, const Function &f)
Inline a single named function, which must be pure.
This file defines the class FunctionDAG, which is our representation of a Halide pipeline, and contains methods to using Halide's bounds tools to query properties of it.
Base classes for Halide expressions (Halide::Expr) and statements (Halide::Internal::Stmt) ...
void validate_schedule_inlined_function(Function f)
Check if the schedule of an inlined function is legal, throwing an error if it is not...
Not visible externally, similar to 'static' linkage in C.