code: def generate_tensor_op_common(
      math_instructions,
      alignment_constraints,
      get_tile_descriptions,
      op_creator,
  ):
      """Common kernel generator to be used by archtecture specific generators."""
      ops = []
      for math_inst in math_instructions:
          tile_descriptions = get_tile_descriptions(math_inst)
          data_type = [
              math_inst.element_a,
              math_inst.element_b,
              math_inst.element_c,
              math_inst.element_accumulator,
          ]
  
          out = op_creator(
              tile_descriptions, data_type, alignment_constraints
          )
  
          ops.extend(out)
  
      return ops
  
imports: import logging
  import os
  import re
  import tempfile
  import subprocess
  import multiprocessing
  import tvm._ffi
  from tvm.tir import IntImm
  from tvm.runtime import Object
  from .None import _ffi_api
  from .library import MathInstruction, DataType, DataTypeTag, OpcodeClass, MathOperation, TileDescription, EpilogueFunctor
  from .gemm_operation import instantiate_gemm_template
  from .conv2d_operation import instantiate_conv2d_template
label_desc: Use image node_id 1 for calling a global function with example usage: generate_tensor_op_common(math_instructions, alignment_constraints, get_tile_descriptions, op_creator) and returns: ops