|
| void | visit (const Shuffle *op) override |
| |
| void | visit (const Call *op) override |
| |
| std::string | print_extern_call (const Call *op) override |
| | Bottleneck to allow customization of calls to generic Extern/PureExtern calls. More...
|
| |
| 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 | visit (const HoistedStorage *) 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 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_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 |
| |
| void | visit (const HoistedStorage *) override |
| |
| Indentation | get_indent () const |
| |
| template<typename T > |
| Ansi< T > | hl (const T &t) |
| |
| template<typename T > |
| Ansi< T > | kw (const T &t) |
| |
| template<typename T > |
| Ansi< T > | imm_int (const T &t) |
| |
| template<typename T > |
| Ansi< T > | imm_float (const T &t) |
| |
| template<typename T > |
| Ansi< T > | imm_str (const T &t) |
| |
| template<typename T > |
| Ansi< T > | var (const T &t) |
| |
| template<typename T > |
| Ansi< T > | buf (const T &t) |
| |
| template<typename T > |
| Ansi< T > | fn (const T &t) |
| |
| template<typename T > |
| Ansi< T > | type (const T &t) |
| |
| template<typename T > |
| Ansi< T > | typep (const T &t) |
| |
| template<typename T > |
| Ansi< T > | paren (const T &t, bool bold=true, int d=-1) |
| |
| 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 | openf () |
| | Emits "(" always. More...
|
| |
| void | openf (const char *name) |
| | Emits "name(" always. More...
|
| |
| void | closef () |
| | Emits ")" always. More...
|
| |
| void | print_lets (const Let *let) |
| | A helper for printing a chain of lets with line breaks. More...
|
| |
| void | print_braced_stmt (const Stmt &, int extra_indent=2) |
| | A helper for printing a braced statement. 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 |
| |
| void | visit (const HoistedStorage *) override |
| |
| virtual void | visit (const IntImm *) |
| |
| virtual void | visit (const UIntImm *) |
| |
| virtual void | visit (const FloatImm *) |
| |
| virtual void | visit (const StringImm *) |
| |
| virtual void | visit (const Cast *) |
| |
| virtual void | visit (const Reinterpret *) |
| |
| virtual void | visit (const Variable *) |
| |
| virtual void | visit (const Add *) |
| |
| virtual void | visit (const Sub *) |
| |
| virtual void | visit (const Mul *) |
| |
| virtual void | visit (const Div *) |
| |
| virtual void | visit (const Mod *) |
| |
| virtual void | visit (const Min *) |
| |
| virtual void | visit (const Max *) |
| |
| virtual void | visit (const EQ *) |
| |
| virtual void | visit (const NE *) |
| |
| virtual void | visit (const LT *) |
| |
| virtual void | visit (const LE *) |
| |
| virtual void | visit (const GT *) |
| |
| virtual void | visit (const GE *) |
| |
| virtual void | visit (const And *) |
| |
| virtual void | visit (const Or *) |
| |
| virtual void | visit (const Not *) |
| |
| virtual void | visit (const Select *) |
| |
| virtual void | visit (const Load *) |
| |
| virtual void | visit (const Ramp *) |
| |
| virtual void | visit (const Broadcast *) |
| |
| virtual void | visit (const Call *) |
| |
| virtual void | visit (const Let *) |
| |
| virtual void | visit (const LetStmt *) |
| |
| virtual void | visit (const AssertStmt *) |
| |
| virtual void | visit (const ProducerConsumer *) |
| |
| virtual void | visit (const For *) |
| |
| virtual void | visit (const Store *) |
| |
| virtual void | visit (const Provide *) |
| |
| virtual void | visit (const Allocate *) |
| |
| virtual void | visit (const Free *) |
| |
| virtual void | visit (const Realize *) |
| |
| virtual void | visit (const Block *) |
| |
| virtual void | visit (const IfThenElse *) |
| |
| virtual void | visit (const Evaluate *) |
| |
| virtual void | visit (const Shuffle *) |
| |
| virtual void | visit (const VectorReduce *) |
| |
| virtual void | visit (const Prefetch *) |
| |
| virtual void | visit (const Fork *) |
| |
| virtual void | visit (const Acquire *) |
| |
| virtual void | visit (const Atomic *) |
| |
| virtual void | visit (const HoistedStorage *) |
| |