Halide
ModulusRemainder.h File Reference
#include <cstdint>

Go to the source code of this file.

Classes

class  Halide::Internal::Scope< T >
 A common pattern when traversing Halide IR is that you need to keep track of stuff when you find a Let or a LetStmt, and that it should hide previous values with the same name until you leave the Let or LetStmt nodes This class helps with that. More...
 
struct  Halide::Internal::ModulusRemainder
 The result of modulus_remainder analysis. More...
 

Namespaces

 Halide
 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.
 
 Halide::Internal
 

Functions

ModulusRemainder Halide::Internal::operator+ (const ModulusRemainder &a, const ModulusRemainder &b)
 
ModulusRemainder Halide::Internal::operator- (const ModulusRemainder &a, const ModulusRemainder &b)
 
ModulusRemainder Halide::Internal::operator* (const ModulusRemainder &a, const ModulusRemainder &b)
 
ModulusRemainder Halide::Internal::operator/ (const ModulusRemainder &a, const ModulusRemainder &b)
 
ModulusRemainder Halide::Internal::operator% (const ModulusRemainder &a, const ModulusRemainder &b)
 
ModulusRemainder Halide::Internal::operator+ (const ModulusRemainder &a, int64_t b)
 
ModulusRemainder Halide::Internal::operator- (const ModulusRemainder &a, int64_t b)
 
ModulusRemainder Halide::Internal::operator* (const ModulusRemainder &a, int64_t b)
 
ModulusRemainder Halide::Internal::operator/ (const ModulusRemainder &a, int64_t b)
 
ModulusRemainder Halide::Internal::operator% (const ModulusRemainder &a, int64_t b)
 
ModulusRemainder Halide::Internal::modulus_remainder (const Expr &e)
 For things like alignment analysis, often it's helpful to know if an integer expression is some multiple of a constant plus some other constant. More...
 
ModulusRemainder Halide::Internal::modulus_remainder (const Expr &e, const Scope< ModulusRemainder > &scope)
 If we have alignment information about external variables, we can let the analysis know about that using this version of modulus_remainder: More...
 
void Halide::Internal::modulus_remainder_test ()
 
int64_t Halide::Internal::gcd (int64_t, int64_t)
 The greatest common divisor of two integers. More...
 
int64_t Halide::Internal::lcm (int64_t, int64_t)
 The least common multiple of two integers. More...
 
bool Halide::Internal::reduce_expr_modulo (const Expr &e, int64_t modulus, int64_t *remainder)
 Reduce an expression modulo some integer. More...
 
bool Halide::Internal::reduce_expr_modulo (const Expr &e, int64_t modulus, int64_t *remainder, const Scope< ModulusRemainder > &scope)
 Reduce an expression modulo some integer. More...
 
bool Halide::Internal::reduce_expr_modulo (const Expr &e, int64_t modulus, int64_t *remainder)
 Reduce an expression modulo some integer. More...
 
bool Halide::Internal::reduce_expr_modulo (const Expr &e, int64_t modulus, int64_t *remainder, const Scope< ModulusRemainder > &scope)
 Reduce an expression modulo some integer. More...
 

Detailed Description

Routines for statically determining what expressions are divisible by.

Definition in file ModulusRemainder.h.