Halide 22.0.0 Halide compiler and libraries

Classes | Namespaces | Functions
IRPrinter.h File Reference

This header file defines operators that let you dump a Halide expression, statement, or type directly into an output stream in a human readable form. More...

`#include <ostream>`
`#include "IRVisitor.h"`
`#include "Module.h"`
`#include "Scope.h"`

Go to the source code of this file.

## Classes
struct | Halide::Internal::Indentation
struct | Halide::Internal::Ansi< T >
class | Halide::Internal::IRPrinter
| An IRVisitor that emits IR to the given output stream in a human readable form. 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
std::ostream & | Halide::operator<< (std::ostream &stream, const Expr &)
| Emit an expression on an output stream (such as std::cout) in human-readable form. More...
std::ostream & | Halide::operator<< (std::ostream &stream, const Tuple &)
| Emit a tuple on an output stream (such as std::cout) in human-readable form. More...
std::ostream & | Halide::operator<< (std::ostream &stream, const Type &)
| Emit a halide type on an output stream (such as std::cout) in human-readable form. More...
std::ostream & | Halide::operator<< (std::ostream &stream, const Module &)
| Emit a halide Module on an output stream (such as std::cout) in human-readable form. More...
std::ostream & | Halide::operator<< (std::ostream &stream, const DeviceAPI &)
| Emit a halide device api type in human-readable form. More...
std::ostream & | Halide::operator<< (std::ostream &stream, const MemoryType &)
| Emit a halide memory type in human-readable form. More...
std::ostream & | Halide::operator<< (std::ostream &stream, const TailStrategy &)
| Emit a halide tail strategy in human-readable form. More...
std::ostream & | Halide::operator<< (std::ostream &stream, const Partition &)
| Emit a halide loop partitioning policy in human-readable form. More...
std::ostream & | Halide::operator<< (std::ostream &stream, const LoopLevel &)
| Emit a halide LoopLevel in human-readable form. More...
std::ostream & | Halide::operator<< (std::ostream &stream, const Target &)
| Emit a halide Target in a human readable form. More...
std::ostream & | Halide::Internal::operator<< (std::ostream &stream, IRNodeType)
| Emit a halide node type on an output stream (such as std::cout) in human-readable form. More...
std::ostream & | Halide::Internal::operator<< (std::ostream &stream, const AssociativePattern &)
| Emit a halide associative pattern on an output stream (such as std::cout) in a human-readable form. More...
std::ostream & | Halide::Internal::operator<< (std::ostream &stream, const AssociativeOp &)
| Emit a halide associative op on an output stream (such as std::cout) in a human-readable form. More...
std::ostream & | Halide::Internal::operator<< (std::ostream &stream, const Stmt &)
| Emit a halide statement on an output stream (such as std::cout) in a human-readable form. More...
std::ostream & | Halide::Internal::operator<< (std::ostream &stream, const ForType &)
| Emit a halide for loop type (vectorized, serial, etc) in a human readable form. More...
std::ostream & | Halide::Internal::operator<< (std::ostream &stream, const VectorReduce::Operator &)
| Emit a horizontal vector reduction op in human-readable form. More...
std::ostream & | Halide::Internal::operator<< (std::ostream &stream, const NameMangling &)
| Emit a halide name mangling value in a human readable format. More...
std::ostream & | Halide::Internal::operator<< (std::ostream &stream, const LoweredFunc &)
| Emit a halide LoweredFunc in a human readable format. More...
std::ostream & | Halide::Internal::operator<< (std::ostream &stream, const LinkageType &)
| Emit a halide linkage value in a human readable format. More...
std::ostream & | Halide::Internal::operator<< (std::ostream &stream, const DimType &)
| Emit a halide dimension type in human-readable format. More...
std::ostream & | Halide::Internal::operator<< (std::ostream &out, const Closure &c)
| Emit a Closure in human-readable form. More...
std::ostream & | Halide::Internal::operator<< (std::ostream &out, const Interval &c)
| Emit an Interval in human-readable form. More...
std::ostream & | Halide::Internal::operator<< (std::ostream &out, const ConstantInterval &c)
| Emit a ConstantInterval in human-readable form. More...
std::ostream & | Halide::Internal::operator<< (std::ostream &out, const ModulusRemainder &c)
| Emit a ModulusRemainder in human-readable form. More...
std::ostream & | Halide::Internal::operator<< (std::ostream &stream, const Indentation &)
template<typename T >
std::ostream & | Halide::Internal::operator<< (std::ostream &out, const Ansi< T > &a)
std::string | Halide::Internal::lldb_string (const Expr &)
| Debugging helpers for LLDB. More...
std::string | Halide::Internal::lldb_string (const Internal::BaseExprNode *)
| Debugging helpers for LLDB. More...
std::string | Halide::Internal::lldb_string (const Stmt &)
| Debugging helpers for LLDB. More...

## Detailed Description

This header file defines operators that let you dump a Halide expression, statement, or type directly into an output stream in a human readable form.

E.g:

Expr foo = ...
std::cout << "Foo is " << foo << "\n";

These operators are implemented using Halide::Internal::IRPrinter

Definition in file IRPrinter.h.