class_docstr: BufferInfo object holds information related to buffers
  that are associated with tir.allocates and tir.allocate_consts
  that will be used with USMP
  
  Parameters
  ----------
  name_hint : str
      The name associated with the buffer (derived from TIR)
  
  size_bytes : int
      The size in bytes
  
  pool_candidates : List[PoolInfo]
      The list of candidates pools this buffer could be placed
  
  alignment : Optional[int]
      The byte alignment required in the workspace memory
class_docstr_tok: ["BufferInfo","object","holds","information","related","to","buffers","that","are","associated","with","tir.allocates","and","tir.allocate_consts","that","will","be","used","with","USMP","Parameters","--","--","--","--","--","name_hint",":","str","The","name","associated","with","the","buffer","(","derived","from","TIR",")","size_bytes",":","int","The","size","in","bytes","pool_candidates",":","List","[","PoolInfo","]","The","list","of","candidates","pools","this","buffer","could","be","placed","alignment",":","Optional","[","int","]","The","byte","alignment","required","in","the","workspace","memory"]
code: def __init__(
      self,
      name_hint: str,
      size_bytes: int,
      pool_candidates: List[PoolInfo],
      alignment: Optional[int] = None,
  ):
      self.__init_handle_by_constructor__(
          _ffi_api.BufferInfo,  # type: ignore # pylint: disable=no-member
          name_hint,
          size_bytes,
          pool_candidates,
          alignment,
      )
  
file_path: tvm/python/tvm/tir/usmp/utils.py
imports: from typing import Optional, List
  import tvm
  from tvm._ffi import register_object
  from tvm.runtime import Object
  from .None import _ffi_api
  from ...ir.memory_pools import PoolInfo
label_desc: Use image node_id 1 to create a new BufferInfo object from inherited base classes: Object with example: obj = BufferInfo(name_hint, size_bytes, pool_candidates, alignment)