|
void | visit (const Shuffle *op) override |
|
void | visit (const Call *op) override |
|
void | visit (const Variable *) override |
|
void | visit (const IntImm *) override |
|
void | visit (const UIntImm *) override |
|
void | visit (const StringImm *) override |
|
void | visit (const FloatImm *) override |
|
void | visit (const Cast *) override |
|
void | visit (const Reinterpret *) override |
|
void | visit (const Add *) override |
|
void | visit (const Sub *) override |
|
void | visit (const Mul *) override |
|
void | visit (const Div *) override |
|
void | visit (const Mod *) override |
|
void | visit (const Max *) override |
|
void | visit (const Min *) override |
|
void | visit (const EQ *) override |
|
void | visit (const NE *) override |
|
void | visit (const LT *) override |
|
void | visit (const LE *) override |
|
void | visit (const GT *) override |
|
void | visit (const GE *) override |
|
void | visit (const And *) override |
|
void | visit (const Or *) override |
|
void | visit (const Not *) override |
|
void | visit (const Call *) override |
|
void | visit (const Select *) override |
|
void | visit (const Load *) override |
|
void | visit (const Store *) override |
|
void | visit (const Let *) override |
|
void | visit (const LetStmt *) override |
|
void | visit (const AssertStmt *) override |
|
void | visit (const ProducerConsumer *) override |
|
void | visit (const For *) override |
|
void | visit (const Ramp *) override |
|
void | visit (const Broadcast *) override |
|
void | visit (const Provide *) override |
|
void | visit (const Allocate *) override |
|
void | visit (const Free *) override |
|
void | visit (const Realize *) override |
|
void | visit (const IfThenElse *) override |
|
void | visit (const Evaluate *) override |
|
void | visit (const Shuffle *) override |
|
void | visit (const Prefetch *) override |
|
void | visit (const Fork *) override |
|
void | visit (const Acquire *) override |
|
void | visit (const Atomic *) override |
|
void | visit (const VectorReduce *) override |
|
void | visit (const IntImm *) override |
|
void | visit (const UIntImm *) override |
|
void | visit (const FloatImm *) override |
|
void | visit (const StringImm *) override |
|
void | visit (const Cast *) override |
|
void | visit (const Reinterpret *) override |
|
void | visit (const Variable *) override |
|
void | visit (const Add *) override |
|
void | visit (const Sub *) override |
|
void | visit (const Mul *) override |
|
void | visit (const Div *) override |
|
void | visit (const Mod *) override |
|
void | visit (const Min *) override |
|
void | visit (const Max *) override |
|
void | visit (const EQ *) override |
|
void | visit (const NE *) override |
|
void | visit (const LT *) override |
|
void | visit (const LE *) override |
|
void | visit (const GT *) override |
|
void | visit (const GE *) override |
|
void | visit (const And *) override |
|
void | visit (const Or *) override |
|
void | visit (const Not *) override |
|
void | visit (const Select *) override |
|
void | visit (const Load *) override |
|
void | visit (const Ramp *) override |
|
void | visit (const Broadcast *) override |
|
void | visit (const Call *) override |
|
void | visit (const Let *) override |
|
void | visit (const LetStmt *) override |
|
void | visit (const AssertStmt *) override |
|
void | visit (const ProducerConsumer *) override |
|
void | visit (const For *) override |
|
void | visit (const Acquire *) override |
|
void | visit (const Store *) override |
|
void | visit (const Provide *) override |
|
void | visit (const Allocate *) override |
|
void | visit (const Free *) override |
|
void | visit (const Realize *) override |
|
void | visit (const Block *) override |
|
void | visit (const Fork *) override |
|
void | visit (const IfThenElse *) override |
|
void | visit (const Evaluate *) override |
|
void | visit (const Shuffle *) override |
|
void | visit (const VectorReduce *) override |
|
void | visit (const Prefetch *) override |
|
void | visit (const Atomic *) override |
|
void | compile (const LoweredFunc &func, const MetadataNameMap &metadata_name_map) |
| Emit a declaration. More...
|
|
void | compile (const Buffer<> &buffer) |
|
virtual Stmt | preprocess_function_body (const Stmt &stmt) |
| This is a hook that subclasses can use to transform a function body just before it is emitted – e.g., to transform the IR to code that is easier to recognize and emit. More...
|
|
std::string | print_expr (const Expr &) |
| Emit an expression as an assignment, then return the id of the resulting var. More...
|
|
std::string | print_cast_expr (const Type &, const Expr &) |
| Like print_expr, but cast the Expr to the given Type. More...
|
|
void | print_stmt (const Stmt &) |
| Emit a statement. More...
|
|
void | create_assertion (const std::string &id_cond, const Expr &message) |
|
void | create_assertion (const Expr &cond, const Expr &message) |
|
Expr | scalarize_vector_reduce (const VectorReduce *op) |
|
virtual std::string | print_type (Type, AppendSpaceIfNeeded space_option=DoNotAppendSpace) |
| Emit the C name for a halide type. More...
|
|
virtual std::string | print_reinterpret (Type, const Expr &) |
| Emit a statement to reinterpret an expression as another type. More...
|
|
virtual std::string | print_name (const std::string &) |
| Emit a version of a string that is a valid identifier in C (. More...
|
|
virtual void | add_platform_prologue () |
| Add platform specific prologue. More...
|
|
virtual void | add_vector_typedefs (const std::set< Type > &vector_types) |
| Add typedefs for vector types. More...
|
|
virtual std::string | print_extern_call (const Call *op) |
| Bottleneck to allow customization of calls to generic Extern/PureExtern calls. More...
|
|
std::string | print_scalarized_expr (const Expr &e) |
| Convert a vector Expr into a series of scalar Exprs, then reassemble into vector of original type. More...
|
|
virtual std::string | print_assignment (Type t, const std::string &rhs) |
| Emit an SSA-style assignment, and set id to the freshly generated name. More...
|
|
void | print_heap_free (const std::string &alloc_name) |
| Emit free for the heap allocation. More...
|
|
bool | is_header () |
| Return true if only generating an interface, which may be extern "C" or C++. More...
|
|
bool | is_extern_decl () |
| Return true if only generating an interface, which may be extern "C" or C++. More...
|
|
bool | is_header_or_extern_decl () |
| Return true if only generating an interface, which may be extern "C" or C++. More...
|
|
bool | is_c_plus_plus_interface () |
| Return true if generating C++ linkage. More...
|
|
void | open_scope () |
| Open a new C scope (i.e. More...
|
|
void | close_scope (const std::string &comment) |
| Close a C scope (i.e. More...
|
|
void | forward_declare_type_if_needed (const Type &t) |
| If the Type is a handle type, emit a forward-declaration for it if we haven't already. More...
|
|
void | set_name_mangling_mode (NameMangling mode) |
|
void | visit (const Variable *) override |
|
void | visit (const IntImm *) override |
|
void | visit (const UIntImm *) override |
|
void | visit (const StringImm *) override |
|
void | visit (const FloatImm *) override |
|
void | visit (const Cast *) override |
|
void | visit (const Reinterpret *) override |
|
void | visit (const Add *) override |
|
void | visit (const Sub *) override |
|
void | visit (const Mul *) override |
|
void | visit (const Div *) override |
|
void | visit (const Mod *) override |
|
void | visit (const Max *) override |
|
void | visit (const Min *) override |
|
void | visit (const EQ *) override |
|
void | visit (const NE *) override |
|
void | visit (const LT *) override |
|
void | visit (const LE *) override |
|
void | visit (const GT *) override |
|
void | visit (const GE *) override |
|
void | visit (const And *) override |
|
void | visit (const Or *) override |
|
void | visit (const Not *) override |
|
void | visit (const Select *) override |
|
void | visit (const Load *) override |
|
void | visit (const Store *) override |
|
void | visit (const Let *) override |
|
void | visit (const LetStmt *) override |
|
void | visit (const AssertStmt *) override |
|
void | visit (const ProducerConsumer *) override |
|
void | visit (const For *) override |
|
void | visit (const Ramp *) override |
|
void | visit (const Broadcast *) override |
|
void | visit (const Provide *) override |
|
void | visit (const Allocate *) override |
|
void | visit (const Free *) override |
|
void | visit (const Realize *) override |
|
void | visit (const IfThenElse *) override |
|
void | visit (const Evaluate *) override |
|
void | visit (const Prefetch *) override |
|
void | visit (const Fork *) override |
|
void | visit (const Acquire *) override |
|
void | visit (const Atomic *) override |
|
void | visit (const VectorReduce *) override |
|
void | visit_binop (Type t, const Expr &a, const Expr &b, const char *op) |
|
void | visit_relop (Type t, const Expr &a, const Expr &b, const char *scalar_op, const char *vector_op) |
|
virtual bool | is_stack_private_to_thread () const |
| Some architectures have private memory for the call stack; this means a thread cannot hand pointers to stack memory to another thread. More...
|
|
void | emit_argv_wrapper (const std::string &function_name, const std::vector< LoweredArgument > &args) |
|
void | emit_metadata_getter (const std::string &function_name, const std::vector< LoweredArgument > &args, const MetadataNameMap &metadata_name_map) |
|
void | emit_constexpr_function_info (const std::string &function_name, const std::vector< LoweredArgument > &args, const MetadataNameMap &metadata_name_map) |
|
void | emit_halide_free_helper (const std::string &alloc_name, const std::string &free_function) |
|
void | visit (const IntImm *) override |
|
void | visit (const UIntImm *) override |
|
void | visit (const FloatImm *) override |
|
void | visit (const StringImm *) override |
|
void | visit (const Cast *) override |
|
void | visit (const Reinterpret *) override |
|
void | visit (const Variable *) override |
|
void | visit (const Add *) override |
|
void | visit (const Sub *) override |
|
void | visit (const Mul *) override |
|
void | visit (const Div *) override |
|
void | visit (const Mod *) override |
|
void | visit (const Min *) override |
|
void | visit (const Max *) override |
|
void | visit (const EQ *) override |
|
void | visit (const NE *) override |
|
void | visit (const LT *) override |
|
void | visit (const LE *) override |
|
void | visit (const GT *) override |
|
void | visit (const GE *) override |
|
void | visit (const And *) override |
|
void | visit (const Or *) override |
|
void | visit (const Not *) override |
|
void | visit (const Select *) override |
|
void | visit (const Load *) override |
|
void | visit (const Ramp *) override |
|
void | visit (const Broadcast *) override |
|
void | visit (const Call *) override |
|
void | visit (const Let *) override |
|
void | visit (const LetStmt *) override |
|
void | visit (const AssertStmt *) override |
|
void | visit (const ProducerConsumer *) override |
|
void | visit (const For *) override |
|
void | visit (const Acquire *) override |
|
void | visit (const Store *) override |
|
void | visit (const Provide *) override |
|
void | visit (const Allocate *) override |
|
void | visit (const Free *) override |
|
void | visit (const Realize *) override |
|
void | visit (const Block *) override |
|
void | visit (const Fork *) override |
|
void | visit (const IfThenElse *) override |
|
void | visit (const Evaluate *) override |
|
void | visit (const Shuffle *) override |
|
void | visit (const VectorReduce *) override |
|
void | visit (const Prefetch *) override |
|
void | visit (const Atomic *) override |
|
Indentation | get_indent () const |
|
void | open () |
| Either emits "(" or "", depending on the value of implicit_parens. More...
|
|
void | close () |
| Either emits ")" or "", depending on the value of implicit_parens. More...
|
|
void | print_lets (const Let *let) |
| A helper for printing a chain of lets with line breaks. More...
|
|
void | visit (const IntImm *) override |
|
void | visit (const UIntImm *) override |
|
void | visit (const FloatImm *) override |
|
void | visit (const StringImm *) override |
|
void | visit (const Cast *) override |
|
void | visit (const Reinterpret *) override |
|
void | visit (const Variable *) override |
|
void | visit (const Add *) override |
|
void | visit (const Sub *) override |
|
void | visit (const Mul *) override |
|
void | visit (const Div *) override |
|
void | visit (const Mod *) override |
|
void | visit (const Min *) override |
|
void | visit (const Max *) override |
|
void | visit (const EQ *) override |
|
void | visit (const NE *) override |
|
void | visit (const LT *) override |
|
void | visit (const LE *) override |
|
void | visit (const GT *) override |
|
void | visit (const GE *) override |
|
void | visit (const And *) override |
|
void | visit (const Or *) override |
|
void | visit (const Not *) override |
|
void | visit (const Select *) override |
|
void | visit (const Load *) override |
|
void | visit (const Ramp *) override |
|
void | visit (const Broadcast *) override |
|
void | visit (const Call *) override |
|
void | visit (const Let *) override |
|
void | visit (const LetStmt *) override |
|
void | visit (const AssertStmt *) override |
|
void | visit (const ProducerConsumer *) override |
|
void | visit (const For *) override |
|
void | visit (const Acquire *) override |
|
void | visit (const Store *) override |
|
void | visit (const Provide *) override |
|
void | visit (const Allocate *) override |
|
void | visit (const Free *) override |
|
void | visit (const Realize *) override |
|
void | visit (const Block *) override |
|
void | visit (const Fork *) override |
|
void | visit (const IfThenElse *) override |
|
void | visit (const Evaluate *) override |
|
void | visit (const Shuffle *) override |
|
void | visit (const VectorReduce *) override |
|
void | visit (const Prefetch *) override |
|
void | visit (const Atomic *) override |
|