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.