Halide 16.0.0
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
12namespace Halide {
13namespace Internal {
14
15/** Return true if an expression uses a likely tag that isn't captured
16 * by an enclosing Select, Min, or Max. */
18
19/** Return true if an expression uses a likely tag. */
20bool has_likely_tag(const Expr &e);
21
22/** Partitions loop bodies into a prologue, a steady state, and an
23 * epilogue. Finds the steady state by hunting for use of clamped
24 * ramps, or the 'likely' intrinsic. */
26
27} // namespace Internal
28} // namespace Halide
29
30#endif
Base classes for Halide expressions (Halide::Expr) and statements (Halide::Internal::Stmt)
Stmt partition_loops(Stmt s)
Partitions loop bodies into a prologue, a steady state, and an epilogue.
bool has_likely_tag(const Expr &e)
Return true if an expression uses a likely tag.
bool has_uncaptured_likely_tag(const Expr &e)
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:257
A reference-counted handle to a statement node.
Definition: Expr.h:418