Halide 19.0.0
Halide compiler and libraries
Loading...
Searching...
No Matches
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
 
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.
 
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.
 
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.
 
std::ostream & Halide::operator<< (std::ostream &stream, const DeviceAPI &)
 Emit a halide device api type in human-readable form.
 
std::ostream & Halide::operator<< (std::ostream &stream, const MemoryType &)
 Emit a halide memory type in human-readable form.
 
std::ostream & Halide::operator<< (std::ostream &stream, const TailStrategy &)
 Emit a halide tail strategy in human-readable form.
 
std::ostream & Halide::operator<< (std::ostream &stream, const Partition &)
 Emit a halide loop partitioning policy in human-readable form.
 
std::ostream & Halide::operator<< (std::ostream &stream, const LoopLevel &)
 Emit a halide LoopLevel in human-readable form.
 
std::ostream & Halide::operator<< (std::ostream &stream, const Target &)
 Emit a halide Target in a human readable form.
 
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.
 
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.
 
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.
 
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.
 
std::ostream & Halide::Internal::operator<< (std::ostream &stream, const ForType &)
 Emit a halide for loop type (vectorized, serial, etc) in a human readable form.
 
std::ostream & Halide::Internal::operator<< (std::ostream &stream, const VectorReduce::Operator &)
 Emit a horizontal vector reduction op in human-readable form.
 
std::ostream & Halide::Internal::operator<< (std::ostream &stream, const NameMangling &)
 Emit a halide name mangling value in a human readable format.
 
std::ostream & Halide::Internal::operator<< (std::ostream &stream, const LoweredFunc &)
 Emit a halide LoweredFunc in a human readable format.
 
std::ostream & Halide::Internal::operator<< (std::ostream &stream, const LinkageType &)
 Emit a halide linkage value in a human readable format.
 
std::ostream & Halide::Internal::operator<< (std::ostream &stream, const DimType &)
 Emit a halide dimension type in human-readable format.
 
std::ostream & Halide::Internal::operator<< (std::ostream &out, const Closure &c)
 Emit a Closure in human-readable form.
 
std::ostream & Halide::Internal::operator<< (std::ostream &out, const Interval &c)
 Emit an Interval in human-readable form.
 
std::ostream & Halide::Internal::operator<< (std::ostream &out, const ConstantInterval &c)
 Emit a ConstantInterval in human-readable form.
 
std::ostream & Halide::Internal::operator<< (std::ostream &out, const ModulusRemainder &c)
 Emit a ModulusRemainder in human-readable form.
 
std::ostream & Halide::Internal::operator<< (std::ostream &stream, const Indentation &)
 
std::string Halide::Internal::lldb_string (const Expr &)
 Debugging helpers for LLDB.
 
std::string Halide::Internal::lldb_string (const Internal::BaseExprNode *)
 Debugging helpers for LLDB.
 
std::string Halide::Internal::lldb_string (const Stmt &)
 Debugging helpers for LLDB.
 

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.