class_docstr: A Stage represents schedule for one operation.
class_docstr_tok: ["A","Stage","represents","schedule","for","one","operation","."]
docstr: Annotate the iteration with pragma
  
  This will translate to a pragma_scope surrounding
  the corresponding loop generated.
  Useful to support experimental features and extensions.
  
  Parameters
  ----------
  var : IterVar
      The iteration to be anotated
  
  pragma_type : str
       The pragma string to be annotated
  
  pragma_value : Expr, optional
       The pragma value to pass along the pragma
  
  Note
  ----
  Most pragmas are advanced/experimental features
  and may subject to change. List of supported pragmas:
  
  - **debug_skip_region**
  
    Force skip the region marked by the axis and turn it into no-op.
    This is useful for debug purposes.
  
  - **parallel_launch_point**
  
    Specify to launch parallel threads outside the
    specified iteration loop. By default the threads
    launch at the point of parallel construct.
    This pragma moves the launching point to even outer scope.
    The threads are launched once and reused across multiple
    parallel constructs as BSP style program.
  
  - **parallel_barrier_when_finish**
  
    Insert a synchronization barrier between working threads
    after the specified loop iteration finishes.
  
  - **parallel_stride_pattern**
  
    Hint parallel loop to execute in strided pattern.
    :code:`for (int i = task_id; i < end; i += num_task)`
code: def pragma(self, var, pragma_type, pragma_value=None):
      """Annotate the iteration with pragma
  
      This will translate to a pragma_scope surrounding
      the corresponding loop generated.
      Useful to support experimental features and extensions.
  
      Parameters
      ----------
      var : IterVar
          The iteration to be anotated
  
      pragma_type : str
           The pragma string to be annotated
  
      pragma_value : Expr, optional
           The pragma value to pass along the pragma
  
      Note
      ----
      Most pragmas are advanced/experimental features
      and may subject to change. List of supported pragmas:
  
      - **debug_skip_region**
  
        Force skip the region marked by the axis and turn it into no-op.
        This is useful for debug purposes.
  
      - **parallel_launch_point**
  
        Specify to launch parallel threads outside the
        specified iteration loop. By default the threads
        launch at the point of parallel construct.
        This pragma moves the launching point to even outer scope.
        The threads are launched once and reused across multiple
        parallel constructs as BSP style program.
  
      - **parallel_barrier_when_finish**
  
        Insert a synchronization barrier between working threads
        after the specified loop iteration finishes.
  
      - **parallel_stride_pattern**
  
        Hint parallel loop to execute in strided pattern.
        :code:`for (int i = task_id; i < end; i += num_task)`
  
      """
      if isinstance(pragma_value, string_types):
          pragma_value = convert(pragma_value)
      _ffi_api.StagePragma(self, var, pragma_type, pragma_value)
  
imports: import collections
  import inspect
  from typing import Callable, List
  import tvm._ffi
  from tvm._ffi.base import string_types
  from tvm.ir import container
  from tvm.runtime import Object, convert
  from tvm.tir import Buffer, IndexMap, IterVar, Var
  from .None import _ffi_api
  from .None import tensor
label_desc: Use image node_id 16 for calling the Stage obj's underlying member method code with example usage: obj.pragma(var, pragma_type, pragma_value) without return types