parameters: (loopinfo, blocks)
docstring: Inplace transform loop blocks for use as lifted loop.
docstring_summary: Inplace transform loop blocks for use as lifted loop.
docstring_tokens: Inplace transform loop blocks for use as lifted loop .
function: def _loop_lift_prepare_loop_func(loopinfo, blocks):
      """
      Inplace transform loop blocks for use as lifted loop.
      """
      entry_block = blocks[loopinfo.callfrom]
      scope = entry_block.scope
      loc = entry_block.loc
  
      # Lowering assumes the first block to be the one with the smallest offset
      firstblk = min(blocks) - 1
      blocks[firstblk] = ir_utils.fill_callee_prologue(
          block=ir.Block(scope=scope, loc=loc),
          inputs=loopinfo.inputs,
          label_next=loopinfo.callfrom,
      )
      blocks[loopinfo.returnto] = ir_utils.fill_callee_epilogue(
          block=ir.Block(scope=scope, loc=loc),
          outputs=loopinfo.outputs,
      )
function_tokens: def _loop_lift_prepare_loop_func ( loopinfo , blocks ) : entry_block = blocks [ loopinfo . callfrom ] scope = entry_block . scope loc = entry_block . loc # Lowering assumes the first block to be the one with the smallest offset firstblk = min ( blocks ) - 1 blocks [ firstblk ] = ir_utils . fill_callee_prologue ( block = ir . Block ( scope = scope , loc = loc ) , inputs = loopinfo . inputs , label_next = loopinfo . callfrom , ) blocks [ loopinfo . returnto ] = ir_utils . fill_callee_epilogue ( block = ir . Block ( scope = scope , loc = loc ) , outputs = loopinfo . outputs , )