let asm_of_prog prog =
  let name, block = prog in
  let procs, main = asm_of_proc "main"
                      {
                        func_args = [];
                        func_value = block;
                        func_asm_def = Asm_ir.proc_stub "main" [] 0;
                        func_used = true;
                        func_external = false;
                      } Unit []
  in
    {
      Asm_ir.prog_source_name = "";
      Asm_ir.prog_procs = procs @ [main];
      Asm_ir.prog_max_depth = List.fold_left (fun m p -> max m p.Asm_ir.proc_lex_depth) 0 procs;
    }