heterocl.tvm.make module

namespace of IR node builder make function

This namespace is used for developers. While you do not see any declarations. The functions are automatically exported from C++ side via PackedFunc.

Each api is a PackedFunc that can be called in a positional argument manner. You can use make function to build the IR node.

node(type_key, **kwargs)[source]

Make a new DSL node by its type key and fields

Parameters
  • type_key (str) – The type key of the node.

  • **kwargs (dict) – The fields of the node.

Example

The following code constructs a IntImm object

x = tvm.make.node("IntImm", dtype="int32", value=10)
assert isinstance(x, tvm.expr.IntImm)
assert x.value == 10
range_by_min_extent(min_value, extent)[source]

Construct a Range by min and extent.

This constructs a range in [min_value, min_value + extent)

Parameters
  • min_value (Expr) – The minimum value of the range.

  • extent (Expr) – The extent of the range.

Returns

rng – The constructed range.

Return type

Range

static_cast(dtype, expr)[source]

Cast expr to dtype.

If expr is scalar and dtype is a corresponding vector type, a Broadcast is generated. Otherwise it is a Cast.

Parameters
  • dtype (str) – The target data type.

  • expr (Expr) – The expression to be casted.

Returns

casted – The casted expression.

Return type

Expr

stmt_list(stmt)[source]

Make list of stmt from blocks.

Parameters

stmt (A block statement) –

Returns

stmt_list – The unpacked list of statements

Return type

list of Stmt

stmt_seq(*args)[source]

Make sequence of statements

Parameters

args (list of Expr or Var) – List of statements to be combined as sequence.

Returns

stmt – The combined statement.

Return type

Stmt