Halide 19.0.0
Halide compiler and libraries
Loading...
Searching...
No Matches
IREquality.h File Reference

Methods to test Exprs and Stmts for equality of value. More...

#include "Expr.h"

Go to the source code of this file.

Classes

struct  Halide::Internal::IRDeepCompare
 A compare struct built around less_than, for use as the comparison object in a std::map or std::set. More...
 
struct  Halide::Internal::IRGraphDeepCompare
 A compare struct built around graph_less_than, for use as the comparison object in a std::map or std::set. More...
 

Namespaces

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

Functions

bool Halide::Internal::equal_impl (const IRNode &a, const IRNode &b)
 
bool Halide::Internal::graph_equal_impl (const IRNode &a, const IRNode &b)
 
bool Halide::Internal::less_than_impl (const IRNode &a, const IRNode &b)
 
bool Halide::Internal::graph_less_than_impl (const IRNode &a, const IRNode &b)
 
HALIDE_ALWAYS_INLINE bool Halide::Internal::equal (const Expr &a, int b)
 Compare an Expr to an int literal.
 
HALIDE_ALWAYS_INLINE bool Halide::Internal::equal (const IRNode &a, const IRNode &b)
 Check if two defined Stmts or Exprs are equal.
 
HALIDE_ALWAYS_INLINE bool Halide::Internal::equal (const IRHandle &a, const IRHandle &b)
 Check if two possible-undefined Stmts or Exprs are equal.
 
HALIDE_ALWAYS_INLINE bool Halide::Internal::graph_equal (const IRNode &a, const IRNode &b)
 Check if two defined Stmts or Exprs are equal.
 
HALIDE_ALWAYS_INLINE bool Halide::Internal::graph_equal (const IRHandle &a, const IRHandle &b)
 Check if two possibly-undefined Stmts or Exprs are equal.
 
HALIDE_ALWAYS_INLINE bool Halide::Internal::less_than (const IRNode &a, const IRNode &b)
 Check if two defined Stmts or Exprs are in a lexicographic order.
 
HALIDE_ALWAYS_INLINE bool Halide::Internal::less_than (const IRHandle &a, const IRHandle &b)
 Check if two possibly-undefined Stmts or Exprs are in a lexicographic order.
 
HALIDE_ALWAYS_INLINE bool Halide::Internal::graph_less_than (const IRNode &a, const IRNode &b)
 Check if two defined Stmts or Exprs are in a lexicographic order.
 
HALIDE_ALWAYS_INLINE bool Halide::Internal::graph_less_than (const IRHandle &a, const IRHandle &b)
 Check if two possibly-undefined Stmts or Exprs are in a lexicographic order.
 
void Halide::Internal::ir_equality_test ()
 

Detailed Description

Methods to test Exprs and Stmts for equality of value.

These methods traverse the entire IR tree. For equality of reference, use Expr::same_as. If you're comparing non-CSE'd Exprs, use graph_equal or graph_less_than, which is safe for nasty graphs of IR nodes.

Definition in file IREquality.h.