Halide  17.0.2
Halide compiler and libraries
PartitionLoops.h
Go to the documentation of this file.
1 #ifndef PARTITION_LOOPS_H
2 #define PARTITION_LOOPS_H
3 
4 /** \file
5  * Defines a lowering pass that partitions loop bodies into three
6  * to handle boundary conditions: A prologue, a simplified
7  * steady-stage, and an epilogue.
8  */
9 
10 #include "Expr.h"
11 #include "Scope.h"
12 
13 namespace Halide {
14 namespace Internal {
15 
16 /** Return true if an expression uses a likely tag that isn't captured by an
17  * enclosing Select, Min, or Max. The scope contains all vars that should be
18  * considered to have uncaptured likelies. */
19 bool has_uncaptured_likely_tag(const Expr &e, const Scope<> &scope);
20 
21 /** Return true if an expression uses a likely tag. The scope contains all vars
22  * in scope that should be considered to have likely tags. */
23 bool has_likely_tag(const Expr &e, const Scope<> &scope);
24 
25 /** Partitions loop bodies into a prologue, a steady state, and an
26  * epilogue. Finds the steady state by hunting for use of clamped
27  * ramps, or the 'likely' intrinsic. */
29 
30 } // namespace Internal
31 } // namespace Halide
32 
33 #endif
Base classes for Halide expressions (Halide::Expr) and statements (Halide::Internal::Stmt)
Defines the Scope class, which is used for keeping track of names in a scope while traversing IR.
A common pattern when traversing Halide IR is that you need to keep track of stuff when you find a Le...
Definition: Scope.h:94
bool has_likely_tag(const Expr &e, const Scope<> &scope)
Return true if an expression uses a likely tag.
Stmt partition_loops(Stmt s)
Partitions loop bodies into a prologue, a steady state, and an epilogue.
bool has_uncaptured_likely_tag(const Expr &e, const Scope<> &scope)
Return true if an expression uses a likely tag that isn't captured by an enclosing Select,...
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 fragment of Halide syntax.
Definition: Expr.h:258
A reference-counted handle to a statement node.
Definition: Expr.h:419