Halide
AlignLoads.h
Go to the documentation of this file.
1 #ifndef HALIDE_ALIGN_LOADS_H
2 #define HALIDE_ALIGN_LOADS_H
3 
4 /** \file
5  * Defines a lowering pass that rewrites unaligned loads into
6  * sequences of aligned loads.
7  */
8 #include "Expr.h"
9 
10 namespace Halide {
11 namespace Internal {
12 
13 /** Attempt to rewrite unaligned loads from buffers which are known to
14  * be aligned to instead load aligned vectors that cover the original
15  * load, and then slice the original load out of the aligned
16  * vectors.
17  *
18  * Types that are less than min_bytes_to_align in size are not
19  * rewritten. This is intended to make a distinction between data that
20  * will be accessed as a scalar and that which will be accessed as a
21  * vector.
22  */
23 Stmt align_loads(const Stmt &s, int alignment, int min_bytes_to_align);
24 
25 } // namespace Internal
26 } // namespace Halide
27 
28 #endif
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::align_loads
Stmt align_loads(const Stmt &s, int alignment, int min_bytes_to_align)
Attempt to rewrite unaligned loads from buffers which are known to be aligned to instead load aligned...
Expr.h