Source and output, call by call

A Dawn function on the left, what it compiled to on the right, in Tile IR, C or JVM bytecode. Pick a call and the lines it wrote light up; pick a line and its call does.

  • Tile IR · C · JVM

How to read it

Each underlined name in the source is a call. Click one, or move to it with Tab and press Enter, and its whole span is underlined and the lines it wrote itself are marked in every listing, a fainter mark on the lines of the calls inside it. The tabs switch listings and keep what is picked, so the same call can be followed from one backend to the next. Click a line of a listing to find the call it belongs to; in C and in bytecode the code of a nested call sits inside its caller's, and a line that holds both belongs to the inner one. Escape lets go.

flash_attn, three ways

The fused-attention kernel of the cuTile page. A kernel is an ordinary Dawn function under the !Dev effect, so the same source compiles for the host too, and that is what the C and JVM tabs show: the host code that runs the kernel and builds the Tile IR, where each mma(..) is a call into packages/tileir. The Tile IR tab is the program that run recorded, the one tileiras assembles for the GPU. One call, two readings: a function call on the host, one or more operations on the device. A call that only rebinds a host value, such as carry, wrote no Tile IR line of its own.

flash_attn25 calls

Dawn sourcescripts/tile-golden/kernels.dawn:2176–2191

2176fn flash_attn(q: Param[Float], k: Param[Float], v: Param[Float], o: Param[Float], scale: Param[Float]) -> Unit !Dev = {2177  let tq = load_cell(q)2178  var m: Tile[Float] = full([FA_BQ, 1], -INFINITY)2179  var l: Tile[Float] = full([FA_BQ, 1], 0.0)2180  var acc = zeros(o)2181  for j in d_range(0, ATT_N / FA_BK) {2182    let s: Tile[Float] = mma(tq, load_at(k, [j]).transpose(), 0.0) * scalar(scale)2183    let m_new = max(m, reduce_max(s, keepdims: true))2184    let p = exp(s - m_new)2185    let alpha = exp(m - m_new)2186    l = l * alpha + reduce_sum(p, keepdims: true)2187    acc = mma(p, load_at(v, [j]), acc * alpha)2188    m = m_new2189  }2190  store_cell(o, acc / l)2191}

Tile IR, as recorded62 of 62 lines

1cuda_tile.module @m {2  entry @flash_attn(%arg0: tile<ptr<f64>>, %arg1: tile<ptr<f64>>, %arg2: tile<ptr<f64>>, %arg3: tile<ptr<f64>>, %arg4: tile<f64>) {3    %0 = make_token : token4    %1 = assume div_by<16>, %arg0 : tile<ptr<f64>>5    %2 = make_tensor_view %1, shape = [64, 32], strides = [32, 1] : tensor_view<64x32xf64, strides=[32, 1]>6    %3 = make_partition_view %2 : partition_view<tile=(32x32), padding_value = zero, tensor_view<64x32xf64, strides=[32, 1]>, dim_map=[0, 1]>7    %4, %5, %6 = get_tile_block_id : tile<i32>8    %7, %8, %9 = get_tile_block_id : tile<i32>9    %10, %11 = load_view_tko weak %3[%4, %8] token=%0 : partition_view<tile=(32x32), padding_value = zero, tensor_view<64x32xf64, strides=[32, 1]>, dim_map=[0, 1]>, tile<i32> -> tile<32x32xf64>, token10    %12 = constant <f64: -Infinity> : tile<32x1xf64>11    %13 = constant <f64: 0.0> : tile<32x1xf64>12    %14 = constant <f64: 0.0> : tile<32x32xf64>13    %15 = constant <i32: 0> : tile<i32>14    %16 = constant <i32: 2> : tile<i32>15    %17 = constant <i32: 1> : tile<i32>16    %18, %19, %20, %21 = for %22 in (%15 to %16, step %17) : tile<i32> iter_values(%23 = %12, %24 = %13, %25 = %14, %26 = %11) -> (tile<32x1xf64>, tile<32x1xf64>, tile<32x32xf64>, token) {17      %27 = assume div_by<16>, %arg1 : tile<ptr<f64>>18      %28 = make_tensor_view %27, shape = [64, 32], strides = [32, 1] : tensor_view<64x32xf64, strides=[32, 1]>19      %29 = make_partition_view %28 : partition_view<tile=(32x32), padding_value = zero, tensor_view<64x32xf64, strides=[32, 1]>, dim_map=[0, 1]>20      %30, %31 = load_view_tko weak %29[%22, %8] token=%26 : partition_view<tile=(32x32), padding_value = zero, tensor_view<64x32xf64, strides=[32, 1]>, dim_map=[0, 1]>, tile<i32> -> tile<32x32xf64>, token21      %32 = permute %30 [1, 0] : tile<32x32xf64> -> tile<32x32xf64>22      %33 = constant <f64: 0.0> : tile<32x32xf64>23      %34 = mmaf %10, %32, %33 : tile<32x32xf64>, tile<32x32xf64>, tile<32x32xf64>24      %35 = reshape %arg4 : tile<f64> -> tile<1x1xf64>25      %36 = broadcast %35 : tile<1x1xf64> -> tile<32x32xf64>26      %37 = mulf %34, %36 rounding<nearest_even> : tile<32x32xf64>27      %38 = reduce %37 dim=1 identities=[-Infinity : f64] : tile<32x32xf64> -> tile<32xf64> (%39: tile<f64>, %40: tile<f64>) {28        %41 = maxf %39, %40 : tile<f64>29        yield %41 : tile<f64>30      }31      %42 = reshape %38 : tile<32xf64> -> tile<32x1xf64>32      %43 = maxf %23, %42 : tile<32x1xf64>33      %44 = broadcast %43 : tile<32x1xf64> -> tile<32x32xf64>34      %45 = subf %37, %44 rounding<nearest_even> : tile<32x32xf64>35      %46 = exp %45 : tile<32x32xf64>36      %47 = subf %23, %43 rounding<nearest_even> : tile<32x1xf64>37      %48 = exp %47 : tile<32x1xf64>38      %49 = mulf %24, %48 rounding<nearest_even> : tile<32x1xf64>39      %50 = reduce %46 dim=1 identities=[0.0 : f64] : tile<32x32xf64> -> tile<32xf64> (%51: tile<f64>, %52: tile<f64>) {40        %53 = addf %51, %52 rounding<nearest_even> : tile<f64>41        yield %53 : tile<f64>42      }43      %54 = reshape %50 : tile<32xf64> -> tile<32x1xf64>44      %55 = addf %49, %54 rounding<nearest_even> : tile<32x1xf64>45      %56 = assume div_by<16>, %arg2 : tile<ptr<f64>>46      %57 = make_tensor_view %56, shape = [64, 32], strides = [32, 1] : tensor_view<64x32xf64, strides=[32, 1]>47      %58 = make_partition_view %57 : partition_view<tile=(32x32), padding_value = zero, tensor_view<64x32xf64, strides=[32, 1]>, dim_map=[0, 1]>48      %59, %60 = load_view_tko weak %58[%22, %8] token=%31 : partition_view<tile=(32x32), padding_value = zero, tensor_view<64x32xf64, strides=[32, 1]>, dim_map=[0, 1]>, tile<i32> -> tile<32x32xf64>, token49      %61 = broadcast %48 : tile<32x1xf64> -> tile<32x32xf64>50      %62 = mulf %25, %61 rounding<nearest_even> : tile<32x32xf64>51      %63 = mmaf %46, %59, %62 : tile<32x32xf64>, tile<32x32xf64>, tile<32x32xf64>52      continue %43, %55, %63, %60 : tile<32x1xf64>, tile<32x1xf64>, tile<32x32xf64>, token53    }54    %64 = broadcast %19 : tile<32x1xf64> -> tile<32x32xf64>55    %65 = divf %20, %64 rounding<nearest_even> : tile<32x32xf64>56    %66 = assume div_by<16>, %arg3 : tile<ptr<f64>>57    %67 = make_tensor_view %66, shape = [64, 32], strides = [32, 1] : tensor_view<64x32xf64, strides=[32, 1]>58    %68 = make_partition_view %67 : partition_view<tile=(32x32), padding_value = zero, tensor_view<64x32xf64, strides=[32, 1]>, dim_map=[0, 1]>59    %69 = store_view_tko weak %65, %68[%4, %8] token=%21 : tile<32x32xf64>, partition_view<tile=(32x32), padding_value = zero, tensor_view<64x32xf64, strides=[32, 1]>, dim_map=[0, 1]>, tile<i32> -> token60    return61  }62}

C, from dawn __emitc379 of 160728 lines

1dawn_unit dawn_main__flash_1attn(dawn_adt* p1498, dawn_adt* p1499, dawn_adt* p1500, dawn_adt* p1501, dawn_adt* p1502, dawn_adt* p1503) {2  DAWN_OWN_FRAME(64);3  dawn_own[1] = p1498;4  dawn_own[2] = p1499;5  dawn_own[3] = p1500;6  dawn_own[4] = p1501;7  dawn_own[5] = p1502;8  dawn_own[6] = p1503;9  dawn_adt* t0 = ((dawn_adt*)dawn_dup(((dawn_adt*)dawn_own[6])));10  int64_t v1504 = dawn_dawn_3pkg_3tileir_2dev__load_1cell(((dawn_adt*)dawn_take(&dawn_own[1])), t0);11  dawn_own[7] = dawn_array_new();12  dawn_own[8] = ((void*)dawn_take(&dawn_own[7]));13  dawn_own[9] = dawn_box_int(INT64_C(32));14  dawn_own[10] = dawn_array_push(((void*)dawn_own[8]), ((void*)dawn_own[9]));15  dawn_drop(dawn_own[9]); dawn_own[9] = NULL;16  dawn_drop(dawn_own[8]); dawn_own[8] = NULL;17  dawn_own[11] = ((void*)dawn_take(&dawn_own[10]));18  dawn_own[7] = ((void*)dawn_take(&dawn_own[11]));19  dawn_own[12] = ((void*)dawn_take(&dawn_own[7]));20  dawn_own[13] = dawn_box_int(INT64_C(1));21  dawn_own[14] = dawn_array_push(((void*)dawn_own[12]), ((void*)dawn_own[13]));22  dawn_drop(dawn_own[13]); dawn_own[13] = NULL;23  dawn_drop(dawn_own[12]); dawn_own[12] = NULL;24  dawn_own[15] = ((void*)dawn_take(&dawn_own[14]));25  dawn_own[7] = ((void*)dawn_take(&dawn_own[15]));26  dawn_own[16] = dawn_std_2pvec__from_1array(((void*)dawn_take(&dawn_own[7])));27  dawn_own[17] = dawn_box_float((-((1.0/0.0))));28  dawn_adt* t1 = ((dawn_adt*)dawn_dup(((dawn_adt*)dawn_own[6])));29  int64_t v1505 = dawn_dawn_3pkg_3tileir_2dev__full(((void*)dawn_take(&dawn_own[16])), ((void*)dawn_take(&dawn_own[17])), (&dawn_dict_320911459306561_3Float), t1);30  dawn_own[18] = dawn_array_new();31  dawn_own[19] = ((void*)dawn_take(&dawn_own[18]));32  dawn_own[20] = dawn_box_int(INT64_C(32));33  dawn_own[21] = dawn_array_push(((void*)dawn_own[19]), ((void*)dawn_own[20]));34  dawn_drop(dawn_own[20]); dawn_own[20] = NULL;35  dawn_drop(dawn_own[19]); dawn_own[19] = NULL;36  dawn_own[22] = ((void*)dawn_take(&dawn_own[21]));37  dawn_own[18] = ((void*)dawn_take(&dawn_own[22]));38  dawn_own[23] = ((void*)dawn_take(&dawn_own[18]));39  dawn_own[24] = dawn_box_int(INT64_C(1));40  dawn_own[25] = dawn_array_push(((void*)dawn_own[23]), ((void*)dawn_own[24]));41  dawn_drop(dawn_own[24]); dawn_own[24] = NULL;42  dawn_drop(dawn_own[23]); dawn_own[23] = NULL;43  dawn_own[26] = ((void*)dawn_take(&dawn_own[25]));44  dawn_own[18] = ((void*)dawn_take(&dawn_own[26]));45  dawn_own[27] = dawn_std_2pvec__from_1array(((void*)dawn_take(&dawn_own[18])));46  dawn_own[28] = dawn_box_float(0.0);47  dawn_adt* t2 = ((dawn_adt*)dawn_dup(((dawn_adt*)dawn_own[6])));48  int64_t v1506 = dawn_dawn_3pkg_3tileir_2dev__full(((void*)dawn_take(&dawn_own[27])), ((void*)dawn_take(&dawn_own[28])), (&dawn_dict_320911459306561_3Float), t2);49  dawn_own[29] = ((dawn_adt*)dawn_dup(((dawn_adt*)dawn_own[4])));50  dawn_adt* t3 = ((dawn_adt*)dawn_dup(((dawn_adt*)dawn_own[6])));51  int64_t v1507 = dawn_dawn_3pkg_3tileir_2dev__zeros(((dawn_adt*)dawn_take(&dawn_own[29])), t3);52  int64_t v1509 = INT64_C(0);53  int64_t t4 = INT64_C(64);54  int64_t t5 = INT64_C(32);55  int64_t v1510 = dawn_idiv(t4, t5);56  dawn_own[30] = dawn_box_int(v1509);57  dawn_own[31] = dawn_box_int(v1510);58  dawn_own[32] = dawn_dawn_3pkg_3tileir_2dev__d_1range_3default_32(((void*)dawn_own[30]), ((void*)dawn_own[31]), (&dawn_dict_3117621157097227_3Int));59  dawn_drop(dawn_own[31]); dawn_own[31] = NULL;60  dawn_drop(dawn_own[30]); dawn_own[30] = NULL;61  dawn_own[33] = ((dawn_adt*)dawn_take(&dawn_own[32]));62  dawn_own[34] = dawn_box_int(v1509);63  dawn_own[35] = dawn_box_int(v1510);64  dawn_own[36] = ((dawn_adt*)dawn_dup(((dawn_adt*)dawn_own[33])));65  bool v8690 = dawn_dawn_3pkg_3tileir_2dev__d_1range_3default_33(((void*)dawn_own[34]), ((void*)dawn_own[35]), ((dawn_adt*)dawn_own[36]), (&dawn_dict_3117621157097227_3Int));66  dawn_drop(dawn_own[36]); dawn_own[36] = NULL;67  dawn_drop(dawn_own[35]); dawn_own[35] = NULL;68  dawn_drop(dawn_own[34]); dawn_own[34] = NULL;69  bool v1512 = v8690;70  dawn_own[37] = dawn_box_int(v1509);71  dawn_own[38] = dawn_box_int(v1510);72  dawn_adt* t6 = ((dawn_adt*)dawn_take(&dawn_own[33]));73  dawn_own[39] = dawn_dawn_3pkg_3tileir_2dev__d_1range(((void*)dawn_take(&dawn_own[37])), ((void*)dawn_take(&dawn_own[38])), t6, v1512, (&dawn_dict_3117621157097227_3Int));74  dawn_own[40] = ((void*)(((dawn_adt*)dawn_dup(((dawn_adt*)dawn_own[6])))));75  void* t7 = ((void*)dawn_unit_box);76  dawn_adt* t8 = dawn_adt_new(0, 3, UINT64_C(0x0000000000000006));77  t8->fields[0].i = INT64_C(130822816777737);78  t8->fields[1].p = ((void*)dawn_take(&dawn_own[40]));79  t8->fields[2].p = t7;80  dawn_own[41] = t8;81  int64_t v8692 = INT64_C(130822816777737);82  dawn_own[42] = ((void*)dawn_dup(dawn_ev_get(((dawn_adt*)dawn_own[41]), v8692)));83  dawn_drop(dawn_own[41]); dawn_own[41] = NULL;84  int64_t v1513 = dawn_dawn_3pkg_3tileir_2dev__impl_316_3Op110591509872810_3var_1open(v1505, ((dawn_adt*)(((void*)dawn_take(&dawn_own[42])))));85  dawn_own[43] = ((void*)(((dawn_adt*)dawn_dup(((dawn_adt*)dawn_own[6])))));86  void* t9 = ((void*)dawn_unit_box);87  dawn_adt* t10 = dawn_adt_new(0, 3, UINT64_C(0x0000000000000006));88  t10->fields[0].i = INT64_C(130822816777737);89  t10->fields[1].p = ((void*)dawn_take(&dawn_own[43]));90  t10->fields[2].p = t9;91  dawn_own[44] = t10;92  int64_t v8695 = INT64_C(130822816777737);93  dawn_own[45] = ((void*)dawn_dup(dawn_ev_get(((dawn_adt*)dawn_own[44]), v8695)));94  dawn_drop(dawn_own[44]); dawn_own[44] = NULL;95  int64_t v1514 = dawn_dawn_3pkg_3tileir_2dev__impl_316_3Op110591509872810_3var_1open(v1506, ((dawn_adt*)(((void*)dawn_take(&dawn_own[45])))));96  dawn_own[46] = ((void*)(((dawn_adt*)dawn_dup(((dawn_adt*)dawn_own[6])))));97  void* t11 = ((void*)dawn_unit_box);98  dawn_adt* t12 = dawn_adt_new(0, 3, UINT64_C(0x0000000000000006));99  t12->fields[0].i = INT64_C(130822816777737);100  t12->fields[1].p = ((void*)dawn_take(&dawn_own[46]));101  t12->fields[2].p = t11;102  dawn_own[47] = t12;103  int64_t v8698 = INT64_C(130822816777737);104  dawn_own[48] = ((void*)dawn_dup(dawn_ev_get(((dawn_adt*)dawn_own[47]), v8698)));105  dawn_drop(dawn_own[47]); dawn_own[47] = NULL;106  int64_t v1515 = dawn_dawn_3pkg_3tileir_2dev__impl_316_3Op110591509872810_3var_1open(v1507, ((dawn_adt*)(((void*)dawn_take(&dawn_own[48])))));107  dawn_clo* t13 = dawn_clo_new((void*)dawn_main__lambda_334__clo, 7, UINT64_C(0x0000000000000046));108  t13->caps[0].i = v1504;109  t13->caps[1].p = ((dawn_adt*)dawn_take(&dawn_own[2]));110  t13->caps[2].p = ((dawn_adt*)dawn_take(&dawn_own[5]));111  t13->caps[3].i = v1513;112  t13->caps[4].i = v1514;113  t13->caps[5].i = v1515;114  t13->caps[6].p = ((dawn_adt*)dawn_take(&dawn_own[3]));115  dawn_own[49] = t13;116  dawn_own[50] = ((void*)(((dawn_adt*)dawn_dup(((dawn_adt*)dawn_own[6])))));117  void* t14 = ((void*)dawn_unit_box);118  dawn_adt* t15 = dawn_adt_new(0, 3, UINT64_C(0x0000000000000006));119  t15->fields[0].i = INT64_C(130822816777737);120  t15->fields[1].p = ((void*)dawn_take(&dawn_own[50]));121  t15->fields[2].p = t14;122  dawn_own[51] = t15;123  int64_t v8701 = INT64_C(130822816777737);124  dawn_own[52] = ((void*)dawn_dup(dawn_ev_get(((dawn_adt*)dawn_own[51]), v8701)));125  dawn_drop(dawn_own[51]); dawn_own[51] = NULL;126  dawn_adt* t16 = ((dawn_adt*)(((void*)dawn_take(&dawn_own[52]))));127  (void)(dawn_dawn_3pkg_3tileir_2dev__impl_315_3Adt140017593632795_3staged_1for(((dawn_adt*)dawn_take(&dawn_own[39])), ((dawn_clo*)dawn_take(&dawn_own[49])), (&dawn_dict_3117621157097227_3Int), t16));128  dawn_own[53] = ((void*)(((dawn_adt*)dawn_dup(((dawn_adt*)dawn_own[6])))));129  void* t17 = ((void*)dawn_unit_box);130  dawn_adt* t18 = dawn_adt_new(0, 3, UINT64_C(0x0000000000000006));131  t18->fields[0].i = INT64_C(130822816777737);132  t18->fields[1].p = ((void*)dawn_take(&dawn_own[53]));133  t18->fields[2].p = t17;134  dawn_own[54] = t18;135  int64_t v8704 = INT64_C(130822816777737);136  dawn_own[55] = ((void*)dawn_dup(dawn_ev_get(((dawn_adt*)dawn_own[54]), v8704)));137  dawn_drop(dawn_own[54]); dawn_own[54] = NULL;138  v1505 = dawn_dawn_3pkg_3tileir_2dev__impl_316_3Op110591509872810_3var_1get(v1513, ((dawn_adt*)(((void*)dawn_take(&dawn_own[55])))));139  dawn_own[56] = ((void*)(((dawn_adt*)dawn_dup(((dawn_adt*)dawn_own[6])))));140  void* t19 = ((void*)dawn_unit_box);141  dawn_adt* t20 = dawn_adt_new(0, 3, UINT64_C(0x0000000000000006));142  t20->fields[0].i = INT64_C(130822816777737);143  t20->fields[1].p = ((void*)dawn_take(&dawn_own[56]));144  t20->fields[2].p = t19;145  dawn_own[57] = t20;146  int64_t v8707 = INT64_C(130822816777737);147  dawn_own[58] = ((void*)dawn_dup(dawn_ev_get(((dawn_adt*)dawn_own[57]), v8707)));148  dawn_drop(dawn_own[57]); dawn_own[57] = NULL;149  v1506 = dawn_dawn_3pkg_3tileir_2dev__impl_316_3Op110591509872810_3var_1get(v1514, ((dawn_adt*)(((void*)dawn_take(&dawn_own[58])))));150  dawn_own[59] = ((void*)(((dawn_adt*)dawn_dup(((dawn_adt*)dawn_own[6])))));151  void* t21 = ((void*)dawn_unit_box);152  dawn_adt* t22 = dawn_adt_new(0, 3, UINT64_C(0x0000000000000006));153  t22->fields[0].i = INT64_C(130822816777737);154  t22->fields[1].p = ((void*)dawn_take(&dawn_own[59]));155  t22->fields[2].p = t21;156  dawn_own[60] = t22;157  int64_t v8710 = INT64_C(130822816777737);158  dawn_own[61] = ((void*)dawn_dup(dawn_ev_get(((dawn_adt*)dawn_own[60]), v8710)));159  dawn_drop(dawn_own[60]); dawn_own[60] = NULL;160  v1507 = dawn_dawn_3pkg_3tileir_2dev__impl_316_3Op110591509872810_3var_1get(v1515, ((dawn_adt*)(((void*)dawn_take(&dawn_own[61])))));161  dawn_own[62] = ((void*)(((dawn_adt*)dawn_dup(((dawn_adt*)dawn_own[6])))));162  void* t23 = ((void*)dawn_unit_box);163  dawn_adt* t24 = dawn_adt_new(0, 3, UINT64_C(0x0000000000000006));164  t24->fields[0].i = INT64_C(130822816777737);165  t24->fields[1].p = ((void*)dawn_take(&dawn_own[62]));166  t24->fields[2].p = t23;167  dawn_own[63] = t24;168  int64_t v8713 = INT64_C(130822816777737);169  dawn_own[64] = ((void*)dawn_dup(dawn_ev_get(((dawn_adt*)dawn_own[63]), v8713)));170  dawn_drop(dawn_own[63]); dawn_own[63] = NULL;171  int64_t t25 = dawn_dawn_3pkg_3tileir_2dev__impl_310_3Op110591509872810_3div(v1507, v1506, ((dawn_adt*)(((void*)dawn_take(&dawn_own[64])))));172  dawn_adt* t26 = ((dawn_adt*)dawn_dup(((dawn_adt*)dawn_own[6])));173  (void)(dawn_dawn_3pkg_3tileir_2dev__store_1cell(((dawn_adt*)dawn_take(&dawn_own[4])), t25, t26));174  dawn_drop(dawn_own[6]); dawn_own[6] = NULL;175  DAWN_RETURN(DAWN_UNIT);176}177178dawn_unit dawn_main__lambda_334(int64_t v1504, dawn_adt* p1499, dawn_adt* p1502, int64_t v1513, int64_t v1514, int64_t v1515, dawn_adt* p1500, int64_t v6321, void* p6322) {179  DAWN_OWN_FRAME(48);180  dawn_own[1] = p1499;181  dawn_own[2] = p1502;182  dawn_own[3] = p1500;183  dawn_own[4] = p6322;184  dawn_array* t0 = dawn_array_new();185  t0 = dawn_array_push_own(t0, ((void*)(dawn_box_int(v6321))));186  dawn_own[5] = dawn_std_2pvec__from_1array(t0);187  dawn_adt* t1 = ((dawn_adt*)(((void*)dawn_dup(dawn_ev_get(((void*)dawn_own[4]), INT64_C(130822816777737))))));188  int64_t t2 = dawn_dawn_3pkg_3tileir_2dev__load_1at(((dawn_adt*)dawn_take(&dawn_own[1])), ((void*)dawn_take(&dawn_own[5])), t1);189  dawn_adt* t3 = ((dawn_adt*)(((void*)dawn_dup(dawn_ev_get(((void*)dawn_own[4]), INT64_C(130822816777737))))));190  int64_t t4 = dawn_dawn_3pkg_3tileir_2dev__transpose(t2, t3);191  dawn_own[6] = ((void*)(((dawn_adt*)(((void*)dawn_dup(dawn_ev_get(((void*)dawn_own[4]), INT64_C(130822816777737))))))));192  void* t5 = ((void*)dawn_unit_box);193  dawn_adt* t6 = dawn_adt_new(0, 3, UINT64_C(0x0000000000000006));194  t6->fields[0].i = INT64_C(130822816777737);195  t6->fields[1].p = ((void*)dawn_take(&dawn_own[6]));196  t6->fields[2].p = t5;197  dawn_own[7] = t6;198  int64_t v14537 = INT64_C(130822816777737);199  dawn_own[8] = ((void*)dawn_dup(dawn_ev_get(((dawn_adt*)dawn_own[7]), v14537)));200  dawn_drop(dawn_own[7]); dawn_own[7] = NULL;201  int64_t t7 = dawn_dawn_3pkg_3tileir_2dev__impl_314_3Op110591509872810_3from_1float(0.0, ((dawn_adt*)(((void*)dawn_take(&dawn_own[8])))));202  dawn_adt* t8 = ((dawn_adt*)(((void*)dawn_dup(dawn_ev_get(((void*)dawn_own[4]), INT64_C(130822816777737))))));203  int64_t t9 = dawn_dawn_3pkg_3tileir_2dev__mma(v1504, t4, t7, (&dawn_dict_320911459306561_3Float), t8);204  dawn_adt* t10 = ((dawn_adt*)(((void*)dawn_dup(dawn_ev_get(((void*)dawn_own[4]), INT64_C(130822816777737))))));205  int64_t t11 = dawn_dawn_3pkg_3tileir_2dev__scalar(((dawn_adt*)dawn_take(&dawn_own[2])), (&dawn_dict_382204871448550_3Float), t10);206  dawn_own[9] = ((void*)(((dawn_adt*)(((void*)dawn_dup(dawn_ev_get(((void*)dawn_own[4]), INT64_C(130822816777737))))))));207  void* t12 = ((void*)dawn_unit_box);208  dawn_adt* t13 = dawn_adt_new(0, 3, UINT64_C(0x0000000000000006));209  t13->fields[0].i = INT64_C(130822816777737);210  t13->fields[1].p = ((void*)dawn_take(&dawn_own[9]));211  t13->fields[2].p = t12;212  dawn_own[10] = t13;213  int64_t v14540 = INT64_C(130822816777737);214  dawn_own[11] = ((void*)dawn_dup(dawn_ev_get(((dawn_adt*)dawn_own[10]), v14540)));215  dawn_drop(dawn_own[10]); dawn_own[10] = NULL;216  dawn_adt* t14 = ((dawn_adt*)(((void*)dawn_take(&dawn_own[11]))));217  int64_t v6323 = dawn_dawn_3pkg_3tileir_2dev__impl_39_3Op110591509872810_3mul(t9, t11, t14);218  dawn_own[12] = ((void*)(((dawn_adt*)(((void*)dawn_dup(dawn_ev_get(((void*)dawn_own[4]), INT64_C(130822816777737))))))));219  void* t15 = ((void*)dawn_unit_box);220  dawn_adt* t16 = dawn_adt_new(0, 3, UINT64_C(0x0000000000000006));221  t16->fields[0].i = INT64_C(130822816777737);222  t16->fields[1].p = ((void*)dawn_take(&dawn_own[12]));223  t16->fields[2].p = t15;224  dawn_own[13] = t16;225  int64_t v14543 = INT64_C(130822816777737);226  dawn_own[14] = ((void*)dawn_dup(dawn_ev_get(((dawn_adt*)dawn_own[13]), v14543)));227  dawn_drop(dawn_own[13]); dawn_own[13] = NULL;228  int64_t v6325 = dawn_dawn_3pkg_3tileir_2dev__impl_316_3Op110591509872810_3var_1get(v1513, ((dawn_adt*)(((void*)dawn_take(&dawn_own[14])))));229  int64_t v6327 = v6323;230  bool v6328 = true;231  int64_t v6329 = dawn_dawn_3pkg_3tileir_2dev__reduce_1max_3default_31(v6327);232  int64_t v6326 = dawn_dawn_3pkg_3tileir_2dev__reduce_1max(v6327, v6329, v6328, ((dawn_adt*)(((void*)dawn_dup(dawn_ev_get(((void*)dawn_own[4]), INT64_C(130822816777737)))))));233  bool v6330 = dawn_dawn_3pkg_3tileir_2dev__max_3default_32(v6325, v6326);234  int64_t v6324 = dawn_dawn_3pkg_3tileir_2dev__max(v6325, v6326, v6330, ((dawn_adt*)(((void*)dawn_dup(dawn_ev_get(((void*)dawn_own[4]), INT64_C(130822816777737)))))));235  dawn_own[15] = ((void*)(((dawn_adt*)(((void*)dawn_dup(dawn_ev_get(((void*)dawn_own[4]), INT64_C(130822816777737))))))));236  void* t17 = ((void*)dawn_unit_box);237  dawn_adt* t18 = dawn_adt_new(0, 3, UINT64_C(0x0000000000000006));238  t18->fields[0].i = INT64_C(130822816777737);239  t18->fields[1].p = ((void*)dawn_take(&dawn_own[15]));240  t18->fields[2].p = t17;241  dawn_own[16] = t18;242  int64_t v14546 = INT64_C(130822816777737);243  dawn_own[17] = ((void*)dawn_dup(dawn_ev_get(((dawn_adt*)dawn_own[16]), v14546)));244  dawn_drop(dawn_own[16]); dawn_own[16] = NULL;245  int64_t t19 = dawn_dawn_3pkg_3tileir_2dev__impl_38_3Op110591509872810_3sub(v6323, v6324, ((dawn_adt*)(((void*)dawn_take(&dawn_own[17])))));246  dawn_adt* t20 = ((dawn_adt*)(((void*)dawn_dup(dawn_ev_get(((void*)dawn_own[4]), INT64_C(130822816777737))))));247  int64_t v6331 = dawn_dawn_3pkg_3tileir_2dev__exp(t19, t20);248  dawn_own[18] = ((void*)(((dawn_adt*)(((void*)dawn_dup(dawn_ev_get(((void*)dawn_own[4]), INT64_C(130822816777737))))))));249  void* t21 = ((void*)dawn_unit_box);250  dawn_adt* t22 = dawn_adt_new(0, 3, UINT64_C(0x0000000000000006));251  t22->fields[0].i = INT64_C(130822816777737);252  t22->fields[1].p = ((void*)dawn_take(&dawn_own[18]));253  t22->fields[2].p = t21;254  dawn_own[19] = t22;255  int64_t v14549 = INT64_C(130822816777737);256  dawn_own[20] = ((void*)dawn_dup(dawn_ev_get(((dawn_adt*)dawn_own[19]), v14549)));257  dawn_drop(dawn_own[19]); dawn_own[19] = NULL;258  int64_t t23 = dawn_dawn_3pkg_3tileir_2dev__impl_316_3Op110591509872810_3var_1get(v1513, ((dawn_adt*)(((void*)dawn_take(&dawn_own[20])))));259  dawn_own[21] = ((void*)(((dawn_adt*)(((void*)dawn_dup(dawn_ev_get(((void*)dawn_own[4]), INT64_C(130822816777737))))))));260  void* t24 = ((void*)dawn_unit_box);261  dawn_adt* t25 = dawn_adt_new(0, 3, UINT64_C(0x0000000000000006));262  t25->fields[0].i = INT64_C(130822816777737);263  t25->fields[1].p = ((void*)dawn_take(&dawn_own[21]));264  t25->fields[2].p = t24;265  dawn_own[22] = t25;266  int64_t v14552 = INT64_C(130822816777737);267  dawn_own[23] = ((void*)dawn_dup(dawn_ev_get(((dawn_adt*)dawn_own[22]), v14552)));268  dawn_drop(dawn_own[22]); dawn_own[22] = NULL;269  dawn_adt* t26 = ((dawn_adt*)(((void*)dawn_take(&dawn_own[23]))));270  int64_t t27 = dawn_dawn_3pkg_3tileir_2dev__impl_38_3Op110591509872810_3sub(t23, v6324, t26);271  dawn_adt* t28 = ((dawn_adt*)(((void*)dawn_dup(dawn_ev_get(((void*)dawn_own[4]), INT64_C(130822816777737))))));272  int64_t v6332 = dawn_dawn_3pkg_3tileir_2dev__exp(t27, t28);273  dawn_own[24] = ((void*)(((dawn_adt*)(((void*)dawn_dup(dawn_ev_get(((void*)dawn_own[4]), INT64_C(130822816777737))))))));274  void* t29 = ((void*)dawn_unit_box);275  dawn_adt* t30 = dawn_adt_new(0, 3, UINT64_C(0x0000000000000006));276  t30->fields[0].i = INT64_C(130822816777737);277  t30->fields[1].p = ((void*)dawn_take(&dawn_own[24]));278  t30->fields[2].p = t29;279  dawn_own[25] = t30;280  int64_t v14555 = INT64_C(130822816777737);281  dawn_own[26] = ((void*)dawn_dup(dawn_ev_get(((dawn_adt*)dawn_own[25]), v14555)));282  dawn_drop(dawn_own[25]); dawn_own[25] = NULL;283  int64_t t31 = dawn_dawn_3pkg_3tileir_2dev__impl_316_3Op110591509872810_3var_1get(v1514, ((dawn_adt*)(((void*)dawn_take(&dawn_own[26])))));284  dawn_own[27] = ((void*)(((dawn_adt*)(((void*)dawn_dup(dawn_ev_get(((void*)dawn_own[4]), INT64_C(130822816777737))))))));285  void* t32 = ((void*)dawn_unit_box);286  dawn_adt* t33 = dawn_adt_new(0, 3, UINT64_C(0x0000000000000006));287  t33->fields[0].i = INT64_C(130822816777737);288  t33->fields[1].p = ((void*)dawn_take(&dawn_own[27]));289  t33->fields[2].p = t32;290  dawn_own[28] = t33;291  int64_t v14558 = INT64_C(130822816777737);292  dawn_own[29] = ((void*)dawn_dup(dawn_ev_get(((dawn_adt*)dawn_own[28]), v14558)));293  dawn_drop(dawn_own[28]); dawn_own[28] = NULL;294  dawn_adt* t34 = ((dawn_adt*)(((void*)dawn_take(&dawn_own[29]))));295  int64_t t35 = dawn_dawn_3pkg_3tileir_2dev__impl_39_3Op110591509872810_3mul(t31, v6332, t34);296  int64_t v6333 = v6331;297  bool v6334 = true;298  int64_t v6335 = dawn_dawn_3pkg_3tileir_2dev__reduce_1sum_3default_31(v6333);299  int64_t t36 = dawn_dawn_3pkg_3tileir_2dev__reduce_1sum(v6333, v6335, v6334, ((dawn_adt*)(((void*)dawn_dup(dawn_ev_get(((void*)dawn_own[4]), INT64_C(130822816777737)))))));300  dawn_own[30] = ((void*)(((dawn_adt*)(((void*)dawn_dup(dawn_ev_get(((void*)dawn_own[4]), INT64_C(130822816777737))))))));301  void* t37 = ((void*)dawn_unit_box);302  dawn_adt* t38 = dawn_adt_new(0, 3, UINT64_C(0x0000000000000006));303  t38->fields[0].i = INT64_C(130822816777737);304  t38->fields[1].p = ((void*)dawn_take(&dawn_own[30]));305  t38->fields[2].p = t37;306  dawn_own[31] = t38;307  int64_t v14561 = INT64_C(130822816777737);308  dawn_own[32] = ((void*)dawn_dup(dawn_ev_get(((dawn_adt*)dawn_own[31]), v14561)));309  dawn_drop(dawn_own[31]); dawn_own[31] = NULL;310  dawn_adt* t39 = ((dawn_adt*)(((void*)dawn_take(&dawn_own[32]))));311  int64_t t40 = dawn_dawn_3pkg_3tileir_2dev__impl_37_3Op110591509872810_3add(t35, t36, t39);312  dawn_own[33] = ((void*)(((dawn_adt*)(((void*)dawn_dup(dawn_ev_get(((void*)dawn_own[4]), INT64_C(130822816777737))))))));313  void* t41 = ((void*)dawn_unit_box);314  dawn_adt* t42 = dawn_adt_new(0, 3, UINT64_C(0x0000000000000006));315  t42->fields[0].i = INT64_C(130822816777737);316  t42->fields[1].p = ((void*)dawn_take(&dawn_own[33]));317  t42->fields[2].p = t41;318  dawn_own[34] = t42;319  int64_t v14564 = INT64_C(130822816777737);320  dawn_own[35] = ((void*)dawn_dup(dawn_ev_get(((dawn_adt*)dawn_own[34]), v14564)));321  dawn_drop(dawn_own[34]); dawn_own[34] = NULL;322  dawn_adt* t43 = ((dawn_adt*)(((void*)dawn_take(&dawn_own[35]))));323  (void)(dawn_dawn_3pkg_3tileir_2dev__impl_316_3Op110591509872810_3var_1set(v1514, t40, t43));324  dawn_array* t44 = dawn_array_new();325  t44 = dawn_array_push_own(t44, ((void*)(dawn_box_int(v6321))));326  dawn_own[36] = dawn_std_2pvec__from_1array(t44);327  dawn_adt* t45 = ((dawn_adt*)(((void*)dawn_dup(dawn_ev_get(((void*)dawn_own[4]), INT64_C(130822816777737))))));328  int64_t t46 = dawn_dawn_3pkg_3tileir_2dev__load_1at(((dawn_adt*)dawn_take(&dawn_own[3])), ((void*)dawn_take(&dawn_own[36])), t45);329  dawn_own[37] = ((void*)(((dawn_adt*)(((void*)dawn_dup(dawn_ev_get(((void*)dawn_own[4]), INT64_C(130822816777737))))))));330  void* t47 = ((void*)dawn_unit_box);331  dawn_adt* t48 = dawn_adt_new(0, 3, UINT64_C(0x0000000000000006));332  t48->fields[0].i = INT64_C(130822816777737);333  t48->fields[1].p = ((void*)dawn_take(&dawn_own[37]));334  t48->fields[2].p = t47;335  dawn_own[38] = t48;336  int64_t v14567 = INT64_C(130822816777737);337  dawn_own[39] = ((void*)dawn_dup(dawn_ev_get(((dawn_adt*)dawn_own[38]), v14567)));338  dawn_drop(dawn_own[38]); dawn_own[38] = NULL;339  int64_t t49 = dawn_dawn_3pkg_3tileir_2dev__impl_316_3Op110591509872810_3var_1get(v1515, ((dawn_adt*)(((void*)dawn_take(&dawn_own[39])))));340  dawn_own[40] = ((void*)(((dawn_adt*)(((void*)dawn_dup(dawn_ev_get(((void*)dawn_own[4]), INT64_C(130822816777737))))))));341  void* t50 = ((void*)dawn_unit_box);342  dawn_adt* t51 = dawn_adt_new(0, 3, UINT64_C(0x0000000000000006));343  t51->fields[0].i = INT64_C(130822816777737);344  t51->fields[1].p = ((void*)dawn_take(&dawn_own[40]));345  t51->fields[2].p = t50;346  dawn_own[41] = t51;347  int64_t v14570 = INT64_C(130822816777737);348  dawn_own[42] = ((void*)dawn_dup(dawn_ev_get(((dawn_adt*)dawn_own[41]), v14570)));349  dawn_drop(dawn_own[41]); dawn_own[41] = NULL;350  dawn_adt* t52 = ((dawn_adt*)(((void*)dawn_take(&dawn_own[42]))));351  int64_t t53 = dawn_dawn_3pkg_3tileir_2dev__impl_39_3Op110591509872810_3mul(t49, v6332, t52);352  dawn_adt* t54 = ((dawn_adt*)(((void*)dawn_dup(dawn_ev_get(((void*)dawn_own[4]), INT64_C(130822816777737))))));353  int64_t t55 = dawn_dawn_3pkg_3tileir_2dev__mma(v6331, t46, t53, (&dawn_dict_320911459306561_3Float), t54);354  dawn_own[43] = ((void*)(((dawn_adt*)(((void*)dawn_dup(dawn_ev_get(((void*)dawn_own[4]), INT64_C(130822816777737))))))));355  void* t56 = ((void*)dawn_unit_box);356  dawn_adt* t57 = dawn_adt_new(0, 3, UINT64_C(0x0000000000000006));357  t57->fields[0].i = INT64_C(130822816777737);358  t57->fields[1].p = ((void*)dawn_take(&dawn_own[43]));359  t57->fields[2].p = t56;360  dawn_own[44] = t57;361  int64_t v14573 = INT64_C(130822816777737);362  dawn_own[45] = ((void*)dawn_dup(dawn_ev_get(((dawn_adt*)dawn_own[44]), v14573)));363  dawn_drop(dawn_own[44]); dawn_own[44] = NULL;364  dawn_adt* t58 = ((dawn_adt*)(((void*)dawn_take(&dawn_own[45]))));365  (void)(dawn_dawn_3pkg_3tileir_2dev__impl_316_3Op110591509872810_3var_1set(v1515, t55, t58));366  dawn_own[46] = ((void*)(((dawn_adt*)(((void*)dawn_dup(dawn_ev_get(((void*)dawn_own[4]), INT64_C(130822816777737))))))));367  void* t59 = ((void*)dawn_unit_box);368  dawn_adt* t60 = dawn_adt_new(0, 3, UINT64_C(0x0000000000000006));369  t60->fields[0].i = INT64_C(130822816777737);370  t60->fields[1].p = ((void*)dawn_take(&dawn_own[46]));371  t60->fields[2].p = t59;372  dawn_own[47] = t60;373  int64_t v14576 = INT64_C(130822816777737);374  dawn_own[48] = ((void*)dawn_dup(dawn_ev_get(((dawn_adt*)dawn_own[47]), v14576)));375  dawn_drop(dawn_own[47]); dawn_own[47] = NULL;376  (void)(dawn_dawn_3pkg_3tileir_2dev__impl_316_3Op110591509872810_3var_1set(v1513, v6324, ((dawn_adt*)(((void*)dawn_take(&dawn_own[48]))))));377  dawn_drop(dawn_own[4]); dawn_own[4] = NULL;378  DAWN_RETURN(DAWN_UNIT);379}

JVM, from javap -c -p -s1631 of 89511 lines

1  public static dawn.rt.Unit flash_attn(dawn.rt.Tuple2, dawn.rt.Tuple2, dawn.rt.Tuple2, dawn.rt.Tuple2, dawn.rt.Tuple2, dawn$pkg$tileir.dev$ev$Dev);2    descriptor: (Ldawn/rt/Tuple2;Ldawn/rt/Tuple2;Ldawn/rt/Tuple2;Ldawn/rt/Tuple2;Ldawn/rt/Tuple2;Ldawn$pkg$tileir/dev$ev$Dev;)Ldawn/rt/Unit;3    Code:4       0: aload_05       1: aload         56       3: invokestatic  #14                 // Method dawn$pkg$tileir/dev.load_cell:(Ldawn/rt/Tuple2;Ldawn$pkg$tileir/dev$ev$Dev;)J7       6: lstore        68       8: invokestatic  #80                 // Method dawn/rt/Array.array_new:()Ldawn/rt/Array;9      11: ldc2_w        #428                // long 32l10      14: invokestatic  #86                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;11      17: invokestatic  #90                 // Method dawn/rt/Array.array_push:(Ldawn/rt/Array;Ljava/lang/Object;)Ldawn/rt/Array;12      20: ldc2_w        #101                // long 1l13      23: invokestatic  #86                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;14      26: invokestatic  #90                 // Method dawn/rt/Array.array_push:(Ldawn/rt/Array;Ljava/lang/Object;)Ldawn/rt/Array;15      29: invokestatic  #96                 // Method std/pvec.from_array:(Ldawn/rt/Array;)Lstd/pvec$Vec;16      32: ldc2_w        #393                // double Infinityd17      35: dneg18      36: invokestatic  #172                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;19      39: getstatic     #177                // Field dawn/dict/main$dict$20911459306561$Float.INSTANCE:Ldawn/tr/dawn$pkg$tileir$dev$FloatDtype;20      42: aload         521      44: invokestatic  #1164               // Method dawn$pkg$tileir/dev.full:(Lstd/pvec$Vec;Ljava/lang/Object;Ljava/lang/Object;Ldawn$pkg$tileir/dev$ev$Dev;)J22      47: lstore        823      49: invokestatic  #80                 // Method dawn/rt/Array.array_new:()Ldawn/rt/Array;24      52: ldc2_w        #428                // long 32l25      55: invokestatic  #86                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;26      58: invokestatic  #90                 // Method dawn/rt/Array.array_push:(Ldawn/rt/Array;Ljava/lang/Object;)Ldawn/rt/Array;27      61: ldc2_w        #101                // long 1l28      64: invokestatic  #86                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;29      67: invokestatic  #90                 // Method dawn/rt/Array.array_push:(Ldawn/rt/Array;Ljava/lang/Object;)Ldawn/rt/Array;30      70: invokestatic  #96                 // Method std/pvec.from_array:(Ldawn/rt/Array;)Lstd/pvec$Vec;31      73: ldc2_w        #166                // double 0.0d32      76: invokestatic  #172                // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;33      79: getstatic     #177                // Field dawn/dict/main$dict$20911459306561$Float.INSTANCE:Ldawn/tr/dawn$pkg$tileir$dev$FloatDtype;34      82: aload         535      84: invokestatic  #1164               // Method dawn$pkg$tileir/dev.full:(Lstd/pvec$Vec;Ljava/lang/Object;Ljava/lang/Object;Ldawn$pkg$tileir/dev$ev$Dev;)J36      87: lstore        1037      89: aload_338      90: aload         539      92: invokestatic  #425                // Method dawn$pkg$tileir/dev.zeros:(Ldawn/rt/Tuple2;Ldawn$pkg$tileir/dev$ev$Dev;)J40      95: lstore        1241      97: ldc2_w        #63                 // long 0l42     100: lstore        1443     102: ldc2_w        #461                // long 64l44     105: ldc2_w        #428                // long 32l45     108: dup246     109: lconst_047     110: lcmp48     111: ifne          12549     114: new           #41                 // class dawn/rt/PanicError50     117: dup51     118: ldc_w         #431                // String Int division by zero52     121: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V53     124: athrow54     125: ldiv55     126: lstore        1656     128: lload         1457     130: invokestatic  #86                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;58     133: lload         1659     135: invokestatic  #86                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;60     138: getstatic     #434                // Field dawn/dict/main$dict$117621157097227$Int.INSTANCE:Ldawn/tr/dawn$pkg$tileir$dev$RangeBound;61     141: invokestatic  #438                // Method dawn$pkg$tileir/dev.d_range$default$2:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ldawn$pkg$tileir/dev$Step;62     144: astore        1863     146: lload         1464     148: invokestatic  #86                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;65     151: lload         1666     153: invokestatic  #86                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;67     156: aload         1868     158: getstatic     #434                // Field dawn/dict/main$dict$117621157097227$Int.INSTANCE:Ldawn/tr/dawn$pkg$tileir$dev$RangeBound;69     161: invokestatic  #119                // Method dawn$pkg$tileir/dev.d_range$default$3:(Ljava/lang/Object;Ljava/lang/Object;Ldawn$pkg$tileir/dev$Step;Ljava/lang/Object;)Z70     164: istore        1971     166: lload         1472     168: invokestatic  #86                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;73     171: lload         1674     173: invokestatic  #86                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;75     176: aload         1876     178: iload         1977     180: getstatic     #434                // Field dawn/dict/main$dict$117621157097227$Int.INSTANCE:Ldawn/tr/dawn$pkg$tileir$dev$RangeBound;78     183: invokestatic  #123                // Method dawn$pkg$tileir/dev.d_range:(Ljava/lang/Object;Ljava/lang/Object;Ldawn$pkg$tileir/dev$Step;ZLjava/lang/Object;)Ldawn$pkg$tileir/dev$DRange;79     186: astore        2080     188: lload         881     190: new           #16                 // class ev$Pack82     193: dup83     194: ldc2_w        #17                 // long 130822816777737l84     197: aload         585     199: getstatic     #24                 // Field dawn/rt/Unit.INSTANCE:Ldawn/rt/Unit;86     202: invokespecial #28                 // Method ev$Pack."<init>":(JLjava/lang/Object;Ljava/lang/Object;)V87     205: ldc2_w        #17                 // long 130822816777737l88     208: lstore        2189     210: astore        2390     212: aload         2391     214: instanceof    #16                 // class ev$Pack92     217: ifeq          25893     220: aload         2394     222: checkcast     #16                 // class ev$Pack95     225: getfield      #32                 // Field ev$Pack.key:J96     228: lload         2197     230: lcmp98     231: ifne          24599     234: aload         23100     236: checkcast     #16                 // class ev$Pack101     239: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;102     242: goto          268103     245: aload         23104     247: checkcast     #16                 // class ev$Pack105     250: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;106     253: astore        23107     255: goto          212108     258: new           #41                 // class dawn/rt/PanicError109     261: dup110     262: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for111     264: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V112     267: athrow113     268: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev114     271: invokestatic  #126                // Method dawn$pkg$tileir/dev.dawn$impl$StagedVar$Tile$var_open:(JLdawn$pkg$tileir/dev$ev$Dev;)J115     274: lstore        24116     276: lload         10117     278: new           #16                 // class ev$Pack118     281: dup119     282: ldc2_w        #17                 // long 130822816777737l120     285: aload         5121     287: getstatic     #24                 // Field dawn/rt/Unit.INSTANCE:Ldawn/rt/Unit;122     290: invokespecial #28                 // Method ev$Pack."<init>":(JLjava/lang/Object;Ljava/lang/Object;)V123     293: ldc2_w        #17                 // long 130822816777737l124     296: lstore        26125     298: astore        28126     300: aload         28127     302: instanceof    #16                 // class ev$Pack128     305: ifeq          346129     308: aload         28130     310: checkcast     #16                 // class ev$Pack131     313: getfield      #32                 // Field ev$Pack.key:J132     316: lload         26133     318: lcmp134     319: ifne          333135     322: aload         28136     324: checkcast     #16                 // class ev$Pack137     327: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;138     330: goto          356139     333: aload         28140     335: checkcast     #16                 // class ev$Pack141     338: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;142     341: astore        28143     343: goto          300144     346: new           #41                 // class dawn/rt/PanicError145     349: dup146     350: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for147     352: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V148     355: athrow149     356: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev150     359: invokestatic  #126                // Method dawn$pkg$tileir/dev.dawn$impl$StagedVar$Tile$var_open:(JLdawn$pkg$tileir/dev$ev$Dev;)J151     362: lstore        29152     364: lload         12153     366: new           #16                 // class ev$Pack154     369: dup155     370: ldc2_w        #17                 // long 130822816777737l156     373: aload         5157     375: getstatic     #24                 // Field dawn/rt/Unit.INSTANCE:Ldawn/rt/Unit;158     378: invokespecial #28                 // Method ev$Pack."<init>":(JLjava/lang/Object;Ljava/lang/Object;)V159     381: ldc2_w        #17                 // long 130822816777737l160     384: lstore        31161     386: astore        33162     388: aload         33163     390: instanceof    #16                 // class ev$Pack164     393: ifeq          434165     396: aload         33166     398: checkcast     #16                 // class ev$Pack167     401: getfield      #32                 // Field ev$Pack.key:J168     404: lload         31169     406: lcmp170     407: ifne          421171     410: aload         33172     412: checkcast     #16                 // class ev$Pack173     415: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;174     418: goto          444175     421: aload         33176     423: checkcast     #16                 // class ev$Pack177     426: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;178     429: astore        33179     431: goto          388180     434: new           #41                 // class dawn/rt/PanicError181     437: dup182     438: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for183     440: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V184     443: athrow185     444: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev186     447: invokestatic  #126                // Method dawn$pkg$tileir/dev.dawn$impl$StagedVar$Tile$var_open:(JLdawn$pkg$tileir/dev$ev$Dev;)J187     450: lstore        34188     452: aload         20189     454: new           #1166               // class dawn/fn/main$34190     457: dup191     458: lload         6192     460: aload_1193     461: aload         4194     463: lload         24195     465: lload         29196     467: lload         34197     469: aload_2198     470: invokespecial #1169               // Method dawn/fn/main$34."<init>":(JLdawn/rt/Tuple2;Ldawn/rt/Tuple2;JJJLdawn/rt/Tuple2;)V199     473: getstatic     #434                // Field dawn/dict/main$dict$117621157097227$Int.INSTANCE:Ldawn/tr/dawn$pkg$tileir$dev$RangeBound;200     476: new           #16                 // class ev$Pack201     479: dup202     480: ldc2_w        #17                 // long 130822816777737l203     483: aload         5204     485: getstatic     #24                 // Field dawn/rt/Unit.INSTANCE:Ldawn/rt/Unit;205     488: invokespecial #28                 // Method ev$Pack."<init>":(JLjava/lang/Object;Ljava/lang/Object;)V206     491: ldc2_w        #17                 // long 130822816777737l207     494: lstore        36208     496: astore        38209     498: aload         38210     500: instanceof    #16                 // class ev$Pack211     503: ifeq          544212     506: aload         38213     508: checkcast     #16                 // class ev$Pack214     511: getfield      #32                 // Field ev$Pack.key:J215     514: lload         36216     516: lcmp217     517: ifne          531218     520: aload         38219     522: checkcast     #16                 // class ev$Pack220     525: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;221     528: goto          554222     531: aload         38223     533: checkcast     #16                 // class ev$Pack224     536: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;225     539: astore        38226     541: goto          498227     544: new           #41                 // class dawn/rt/PanicError228     547: dup229     548: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for230     550: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V231     553: athrow232     554: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev233     557: invokestatic  #135                // Method dawn$pkg$tileir/dev.dawn$impl$StagedIter$DRange$staged_for:(Ldawn$pkg$tileir/dev$DRange;Ldawn/rt/Fn2;Ljava/lang/Object;Ldawn$pkg$tileir/dev$ev$Dev;)Ldawn/rt/Unit;234     560: pop235     561: lload         24236     563: new           #16                 // class ev$Pack237     566: dup238     567: ldc2_w        #17                 // long 130822816777737l239     570: aload         5240     572: getstatic     #24                 // Field dawn/rt/Unit.INSTANCE:Ldawn/rt/Unit;241     575: invokespecial #28                 // Method ev$Pack."<init>":(JLjava/lang/Object;Ljava/lang/Object;)V242     578: ldc2_w        #17                 // long 130822816777737l243     581: lstore        39244     583: astore        41245     585: aload         41246     587: instanceof    #16                 // class ev$Pack247     590: ifeq          631248     593: aload         41249     595: checkcast     #16                 // class ev$Pack250     598: getfield      #32                 // Field ev$Pack.key:J251     601: lload         39252     603: lcmp253     604: ifne          618254     607: aload         41255     609: checkcast     #16                 // class ev$Pack256     612: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;257     615: goto          641258     618: aload         41259     620: checkcast     #16                 // class ev$Pack260     623: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;261     626: astore        41262     628: goto          585263     631: new           #41                 // class dawn/rt/PanicError264     634: dup265     635: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for266     637: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V267     640: athrow268     641: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev269     644: invokestatic  #138                // Method dawn$pkg$tileir/dev.dawn$impl$StagedVar$Tile$var_get:(JLdawn$pkg$tileir/dev$ev$Dev;)J270     647: lstore        8271     649: lload         29272     651: new           #16                 // class ev$Pack273     654: dup274     655: ldc2_w        #17                 // long 130822816777737l275     658: aload         5276     660: getstatic     #24                 // Field dawn/rt/Unit.INSTANCE:Ldawn/rt/Unit;277     663: invokespecial #28                 // Method ev$Pack."<init>":(JLjava/lang/Object;Ljava/lang/Object;)V278     666: ldc2_w        #17                 // long 130822816777737l279     669: lstore        42280     671: astore        44281     673: aload         44282     675: instanceof    #16                 // class ev$Pack283     678: ifeq          719284     681: aload         44285     683: checkcast     #16                 // class ev$Pack286     686: getfield      #32                 // Field ev$Pack.key:J287     689: lload         42288     691: lcmp289     692: ifne          706290     695: aload         44291     697: checkcast     #16                 // class ev$Pack292     700: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;293     703: goto          729294     706: aload         44295     708: checkcast     #16                 // class ev$Pack296     711: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;297     714: astore        44298     716: goto          673299     719: new           #41                 // class dawn/rt/PanicError300     722: dup301     723: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for302     725: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V303     728: athrow304     729: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev305     732: invokestatic  #138                // Method dawn$pkg$tileir/dev.dawn$impl$StagedVar$Tile$var_get:(JLdawn$pkg$tileir/dev$ev$Dev;)J306     735: lstore        10307     737: lload         34308     739: new           #16                 // class ev$Pack309     742: dup310     743: ldc2_w        #17                 // long 130822816777737l311     746: aload         5312     748: getstatic     #24                 // Field dawn/rt/Unit.INSTANCE:Ldawn/rt/Unit;313     751: invokespecial #28                 // Method ev$Pack."<init>":(JLjava/lang/Object;Ljava/lang/Object;)V314     754: ldc2_w        #17                 // long 130822816777737l315     757: lstore        45316     759: astore        47317     761: aload         47318     763: instanceof    #16                 // class ev$Pack319     766: ifeq          807320     769: aload         47321     771: checkcast     #16                 // class ev$Pack322     774: getfield      #32                 // Field ev$Pack.key:J323     777: lload         45324     779: lcmp325     780: ifne          794326     783: aload         47327     785: checkcast     #16                 // class ev$Pack328     788: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;329     791: goto          817330     794: aload         47331     796: checkcast     #16                 // class ev$Pack332     799: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;333     802: astore        47334     804: goto          761335     807: new           #41                 // class dawn/rt/PanicError336     810: dup337     811: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for338     813: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V339     816: athrow340     817: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev341     820: invokestatic  #138                // Method dawn$pkg$tileir/dev.dawn$impl$StagedVar$Tile$var_get:(JLdawn$pkg$tileir/dev$ev$Dev;)J342     823: lstore        12343     825: getstatic     #24                 // Field dawn/rt/Unit.INSTANCE:Ldawn/rt/Unit;344     828: pop345     829: aload_3346     830: lload         12347     832: lload         10348     834: new           #16                 // class ev$Pack349     837: dup350     838: ldc2_w        #17                 // long 130822816777737l351     841: aload         5352     843: getstatic     #24                 // Field dawn/rt/Unit.INSTANCE:Ldawn/rt/Unit;353     846: invokespecial #28                 // Method ev$Pack."<init>":(JLjava/lang/Object;Ljava/lang/Object;)V354     849: ldc2_w        #17                 // long 130822816777737l355     852: lstore        48356     854: astore        50357     856: aload         50358     858: instanceof    #16                 // class ev$Pack359     861: ifeq          902360     864: aload         50361     866: checkcast     #16                 // class ev$Pack362     869: getfield      #32                 // Field ev$Pack.key:J363     872: lload         48364     874: lcmp365     875: ifne          889366     878: aload         50367     880: checkcast     #16                 // class ev$Pack368     883: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;369     886: goto          912370     889: aload         50371     891: checkcast     #16                 // class ev$Pack372     894: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;373     897: astore        50374     899: goto          856375     902: new           #41                 // class dawn/rt/PanicError376     905: dup377     906: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for378     908: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V379     911: athrow380     912: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev381     915: invokestatic  #236                // Method dawn$pkg$tileir/dev.dawn$impl$Div$Tile$div:(JJLdawn$pkg$tileir/dev$ev$Dev;)J382     918: aload         5383     920: invokestatic  #56                 // Method dawn$pkg$tileir/dev.store_cell:(Ldawn/rt/Tuple2;JLdawn$pkg$tileir/dev$ev$Dev;)Ldawn/rt/Unit;384     923: areturn385386  public static dawn.rt.Unit lambda$34(long, dawn.rt.Tuple2, dawn.rt.Tuple2, long, long, long, dawn.rt.Tuple2, long, java.lang.Object);387    descriptor: (JLdawn/rt/Tuple2;Ldawn/rt/Tuple2;JJJLdawn/rt/Tuple2;JLjava/lang/Object;)Ldawn/rt/Unit;388    Code:389       0: lload_0390       1: aload_2391       2: invokestatic  #80                 // Method dawn/rt/Array.array_new:()Ldawn/rt/Array;392       5: lload         11393       7: invokestatic  #86                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;394      10: invokestatic  #90                 // Method dawn/rt/Array.array_push:(Ldawn/rt/Array;Ljava/lang/Object;)Ldawn/rt/Array;395      13: invokestatic  #96                 // Method std/pvec.from_array:(Ldawn/rt/Array;)Lstd/pvec$Vec;396      16: aload         13397      18: ldc2_w        #17                 // long 130822816777737l398      21: lstore        14399      23: astore        16400      25: aload         16401      27: instanceof    #16                 // class ev$Pack402      30: ifeq          71403      33: aload         16404      35: checkcast     #16                 // class ev$Pack405      38: getfield      #32                 // Field ev$Pack.key:J406      41: lload         14407      43: lcmp408      44: ifne          58409      47: aload         16410      49: checkcast     #16                 // class ev$Pack411      52: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;412      55: goto          81413      58: aload         16414      60: checkcast     #16                 // class ev$Pack415      63: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;416      66: astore        16417      68: goto          25418      71: new           #41                 // class dawn/rt/PanicError419      74: dup420      75: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for421      77: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V422      80: athrow423      81: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev424      84: invokestatic  #100                // Method dawn$pkg$tileir/dev.load_at:(Ldawn/rt/Tuple2;Lstd/pvec$Vec;Ldawn$pkg$tileir/dev$ev$Dev;)J425      87: aload         13426      89: ldc2_w        #17                 // long 130822816777737l427      92: lstore        17428      94: astore        19429      96: aload         19430      98: instanceof    #16                 // class ev$Pack431     101: ifeq          142432     104: aload         19433     106: checkcast     #16                 // class ev$Pack434     109: getfield      #32                 // Field ev$Pack.key:J435     112: lload         17436     114: lcmp437     115: ifne          129438     118: aload         19439     120: checkcast     #16                 // class ev$Pack440     123: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;441     126: goto          152442     129: aload         19443     131: checkcast     #16                 // class ev$Pack444     134: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;445     137: astore        19446     139: goto          96447     142: new           #41                 // class dawn/rt/PanicError448     145: dup449     146: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for450     148: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V451     151: athrow452     152: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev453     155: invokestatic  #1142               // Method dawn$pkg$tileir/dev.transpose:(JLdawn$pkg$tileir/dev$ev$Dev;)J454     158: ldc2_w        #166                // double 0.0d455     161: new           #16                 // class ev$Pack456     164: dup457     165: ldc2_w        #17                 // long 130822816777737l458     168: aload         13459     170: ldc2_w        #17                 // long 130822816777737l460     173: lstore        20461     175: astore        22462     177: aload         22463     179: instanceof    #16                 // class ev$Pack464     182: ifeq          223465     185: aload         22466     187: checkcast     #16                 // class ev$Pack467     190: getfield      #32                 // Field ev$Pack.key:J468     193: lload         20469     195: lcmp470     196: ifne          210471     199: aload         22472     201: checkcast     #16                 // class ev$Pack473     204: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;474     207: goto          233475     210: aload         22476     212: checkcast     #16                 // class ev$Pack477     215: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;478     218: astore        22479     220: goto          177480     223: new           #41                 // class dawn/rt/PanicError481     226: dup482     227: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for483     229: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V484     232: athrow485     233: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev486     236: getstatic     #24                 // Field dawn/rt/Unit.INSTANCE:Ldawn/rt/Unit;487     239: invokespecial #28                 // Method ev$Pack."<init>":(JLjava/lang/Object;Ljava/lang/Object;)V488     242: ldc2_w        #17                 // long 130822816777737l489     245: lstore        23490     247: astore        25491     249: aload         25492     251: instanceof    #16                 // class ev$Pack493     254: ifeq          295494     257: aload         25495     259: checkcast     #16                 // class ev$Pack496     262: getfield      #32                 // Field ev$Pack.key:J497     265: lload         23498     267: lcmp499     268: ifne          282500     271: aload         25501     273: checkcast     #16                 // class ev$Pack502     276: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;503     279: goto          305504     282: aload         25505     284: checkcast     #16                 // class ev$Pack506     287: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;507     290: astore        25508     292: goto          249509     295: new           #41                 // class dawn/rt/PanicError510     298: dup511     299: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for512     301: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V513     304: athrow514     305: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev515     308: invokestatic  #1187               // Method dawn$pkg$tileir/dev.dawn$impl$FromFloat$Tile$from_float:(DLdawn$pkg$tileir/dev$ev$Dev;)J516     311: getstatic     #177                // Field dawn/dict/main$dict$20911459306561$Float.INSTANCE:Ldawn/tr/dawn$pkg$tileir$dev$FloatDtype;517     314: aload         13518     316: ldc2_w        #17                 // long 130822816777737l519     319: lstore        26520     321: astore        28521     323: aload         28522     325: instanceof    #16                 // class ev$Pack523     328: ifeq          369524     331: aload         28525     333: checkcast     #16                 // class ev$Pack526     336: getfield      #32                 // Field ev$Pack.key:J527     339: lload         26528     341: lcmp529     342: ifne          356530     345: aload         28531     347: checkcast     #16                 // class ev$Pack532     350: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;533     353: goto          379534     356: aload         28535     358: checkcast     #16                 // class ev$Pack536     361: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;537     364: astore        28538     366: goto          323539     369: new           #41                 // class dawn/rt/PanicError540     372: dup541     373: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for542     375: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V543     378: athrow544     379: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev545     382: invokestatic  #455                // Method dawn$pkg$tileir/dev.mma:(JJJLjava/lang/Object;Ldawn$pkg$tileir/dev$ev$Dev;)J546     385: aload_3547     386: getstatic     #1192               // Field dawn/dict/main$dict$82204871448550$Float.INSTANCE:Ldawn/tr/std$gpu$ScalarDtype;548     389: aload         13549     391: ldc2_w        #17                 // long 130822816777737l550     394: lstore        29551     396: astore        31552     398: aload         31553     400: instanceof    #16                 // class ev$Pack554     403: ifeq          444555     406: aload         31556     408: checkcast     #16                 // class ev$Pack557     411: getfield      #32                 // Field ev$Pack.key:J558     414: lload         29559     416: lcmp560     417: ifne          431561     420: aload         31562     422: checkcast     #16                 // class ev$Pack563     425: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;564     428: goto          454565     431: aload         31566     433: checkcast     #16                 // class ev$Pack567     436: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;568     439: astore        31569     441: goto          398570     444: new           #41                 // class dawn/rt/PanicError571     447: dup572     448: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for573     450: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V574     453: athrow575     454: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev576     457: invokestatic  #1196               // Method dawn$pkg$tileir/dev.scalar:(Ldawn/rt/Tuple2;Ljava/lang/Object;Ldawn$pkg$tileir/dev$ev$Dev;)J577     460: new           #16                 // class ev$Pack578     463: dup579     464: ldc2_w        #17                 // long 130822816777737l580     467: aload         13581     469: ldc2_w        #17                 // long 130822816777737l582     472: lstore        32583     474: astore        34584     476: aload         34585     478: instanceof    #16                 // class ev$Pack586     481: ifeq          522587     484: aload         34588     486: checkcast     #16                 // class ev$Pack589     489: getfield      #32                 // Field ev$Pack.key:J590     492: lload         32591     494: lcmp592     495: ifne          509593     498: aload         34594     500: checkcast     #16                 // class ev$Pack595     503: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;596     506: goto          532597     509: aload         34598     511: checkcast     #16                 // class ev$Pack599     514: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;600     517: astore        34601     519: goto          476602     522: new           #41                 // class dawn/rt/PanicError603     525: dup604     526: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for605     528: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V606     531: athrow607     532: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev608     535: getstatic     #24                 // Field dawn/rt/Unit.INSTANCE:Ldawn/rt/Unit;609     538: invokespecial #28                 // Method ev$Pack."<init>":(JLjava/lang/Object;Ljava/lang/Object;)V610     541: ldc2_w        #17                 // long 130822816777737l611     544: lstore        35612     546: astore        37613     548: aload         37614     550: instanceof    #16                 // class ev$Pack615     553: ifeq          594616     556: aload         37617     558: checkcast     #16                 // class ev$Pack618     561: getfield      #32                 // Field ev$Pack.key:J619     564: lload         35620     566: lcmp621     567: ifne          581622     570: aload         37623     572: checkcast     #16                 // class ev$Pack624     575: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;625     578: goto          604626     581: aload         37627     583: checkcast     #16                 // class ev$Pack628     586: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;629     589: astore        37630     591: goto          548631     594: new           #41                 // class dawn/rt/PanicError632     597: dup633     598: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for634     600: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V635     603: athrow636     604: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev637     607: invokestatic  #214                // Method dawn$pkg$tileir/dev.dawn$impl$Mul$Tile$mul:(JJLdawn$pkg$tileir/dev$ev$Dev;)J638     610: lstore        38639     612: lload         4640     614: new           #16                 // class ev$Pack641     617: dup642     618: ldc2_w        #17                 // long 130822816777737l643     621: aload         13644     623: ldc2_w        #17                 // long 130822816777737l645     626: lstore        40646     628: astore        42647     630: aload         42648     632: instanceof    #16                 // class ev$Pack649     635: ifeq          676650     638: aload         42651     640: checkcast     #16                 // class ev$Pack652     643: getfield      #32                 // Field ev$Pack.key:J653     646: lload         40654     648: lcmp655     649: ifne          663656     652: aload         42657     654: checkcast     #16                 // class ev$Pack658     657: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;659     660: goto          686660     663: aload         42661     665: checkcast     #16                 // class ev$Pack662     668: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;663     671: astore        42664     673: goto          630665     676: new           #41                 // class dawn/rt/PanicError666     679: dup667     680: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for668     682: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V669     685: athrow670     686: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev671     689: getstatic     #24                 // Field dawn/rt/Unit.INSTANCE:Ldawn/rt/Unit;672     692: invokespecial #28                 // Method ev$Pack."<init>":(JLjava/lang/Object;Ljava/lang/Object;)V673     695: ldc2_w        #17                 // long 130822816777737l674     698: lstore        43675     700: astore        45676     702: aload         45677     704: instanceof    #16                 // class ev$Pack678     707: ifeq          748679     710: aload         45680     712: checkcast     #16                 // class ev$Pack681     715: getfield      #32                 // Field ev$Pack.key:J682     718: lload         43683     720: lcmp684     721: ifne          735685     724: aload         45686     726: checkcast     #16                 // class ev$Pack687     729: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;688     732: goto          758689     735: aload         45690     737: checkcast     #16                 // class ev$Pack691     740: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;692     743: astore        45693     745: goto          702694     748: new           #41                 // class dawn/rt/PanicError695     751: dup696     752: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for697     754: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V698     757: athrow699     758: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev700     761: invokestatic  #138                // Method dawn$pkg$tileir/dev.dawn$impl$StagedVar$Tile$var_get:(JLdawn$pkg$tileir/dev$ev$Dev;)J701     764: lstore        46702     766: lload         38703     768: lstore        48704     770: iconst_1705     771: istore        50706     773: lload         48707     775: invokestatic  #281                // Method dawn$pkg$tileir/dev.reduce_max$default$1:(J)J708     778: lstore        51709     780: lload         48710     782: lload         51711     784: iload         50712     786: aload         13713     788: ldc2_w        #17                 // long 130822816777737l714     791: lstore        53715     793: astore        55716     795: aload         55717     797: instanceof    #16                 // class ev$Pack718     800: ifeq          841719     803: aload         55720     805: checkcast     #16                 // class ev$Pack721     808: getfield      #32                 // Field ev$Pack.key:J722     811: lload         53723     813: lcmp724     814: ifne          828725     817: aload         55726     819: checkcast     #16                 // class ev$Pack727     822: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;728     825: goto          851729     828: aload         55730     830: checkcast     #16                 // class ev$Pack731     833: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;732     836: astore        55733     838: goto          795734     841: new           #41                 // class dawn/rt/PanicError735     844: dup736     845: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for737     847: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V738     850: athrow739     851: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev740     854: invokestatic  #287                // Method dawn$pkg$tileir/dev.reduce_max:(JJZLdawn$pkg$tileir/dev$ev$Dev;)J741     857: lstore        56742     859: lload         46743     861: lload         56744     863: invokestatic  #185                // Method dawn$pkg$tileir/dev.max$default$2:(JJ)Z745     866: istore        58746     868: lload         46747     870: lload         56748     872: iload         58749     874: aload         13750     876: ldc2_w        #17                 // long 130822816777737l751     879: lstore        59752     881: astore        61753     883: aload         61754     885: instanceof    #16                 // class ev$Pack755     888: ifeq          929756     891: aload         61757     893: checkcast     #16                 // class ev$Pack758     896: getfield      #32                 // Field ev$Pack.key:J759     899: lload         59760     901: lcmp761     902: ifne          916762     905: aload         61763     907: checkcast     #16                 // class ev$Pack764     910: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;765     913: goto          939766     916: aload         61767     918: checkcast     #16                 // class ev$Pack768     921: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;769     924: astore        61770     926: goto          883771     929: new           #41                 // class dawn/rt/PanicError772     932: dup773     933: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for774     935: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V775     938: athrow776     939: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev777     942: invokestatic  #189                // Method dawn$pkg$tileir/dev.max:(JJZLdawn$pkg$tileir/dev$ev$Dev;)J778     945: lstore        62779     947: lload         38780     949: lload         62781     951: new           #16                 // class ev$Pack782     954: dup783     955: ldc2_w        #17                 // long 130822816777737l784     958: aload         13785     960: ldc2_w        #17                 // long 130822816777737l786     963: lstore        64787     965: astore        66788     967: aload         66789     969: instanceof    #16                 // class ev$Pack790     972: ifeq          1013791     975: aload         66792     977: checkcast     #16                 // class ev$Pack793     980: getfield      #32                 // Field ev$Pack.key:J794     983: lload         64795     985: lcmp796     986: ifne          1000797     989: aload         66798     991: checkcast     #16                 // class ev$Pack799     994: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;800     997: goto          1023801    1000: aload         66802    1002: checkcast     #16                 // class ev$Pack803    1005: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;804    1008: astore        66805    1010: goto          967806    1013: new           #41                 // class dawn/rt/PanicError807    1016: dup808    1017: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for809    1019: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V810    1022: athrow811    1023: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev812    1026: getstatic     #24                 // Field dawn/rt/Unit.INSTANCE:Ldawn/rt/Unit;813    1029: invokespecial #28                 // Method ev$Pack."<init>":(JLjava/lang/Object;Ljava/lang/Object;)V814    1032: ldc2_w        #17                 // long 130822816777737l815    1035: lstore        67816    1037: astore        69817    1039: aload         69818    1041: instanceof    #16                 // class ev$Pack819    1044: ifeq          1085820    1047: aload         69821    1049: checkcast     #16                 // class ev$Pack822    1052: getfield      #32                 // Field ev$Pack.key:J823    1055: lload         67824    1057: lcmp825    1058: ifne          1072826    1061: aload         69827    1063: checkcast     #16                 // class ev$Pack828    1066: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;829    1069: goto          1095830    1072: aload         69831    1074: checkcast     #16                 // class ev$Pack832    1077: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;833    1080: astore        69834    1082: goto          1039835    1085: new           #41                 // class dawn/rt/PanicError836    1088: dup837    1089: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for838    1091: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V839    1094: athrow840    1095: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev841    1098: invokestatic  #233                // Method dawn$pkg$tileir/dev.dawn$impl$Sub$Tile$sub:(JJLdawn$pkg$tileir/dev$ev$Dev;)J842    1101: aload         13843    1103: ldc2_w        #17                 // long 130822816777737l844    1106: lstore        70845    1108: astore        72846    1110: aload         72847    1112: instanceof    #16                 // class ev$Pack848    1115: ifeq          1156849    1118: aload         72850    1120: checkcast     #16                 // class ev$Pack851    1123: getfield      #32                 // Field ev$Pack.key:J852    1126: lload         70853    1128: lcmp854    1129: ifne          1143855    1132: aload         72856    1134: checkcast     #16                 // class ev$Pack857    1137: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;858    1140: goto          1166859    1143: aload         72860    1145: checkcast     #16                 // class ev$Pack861    1148: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;862    1151: astore        72863    1153: goto          1110864    1156: new           #41                 // class dawn/rt/PanicError865    1159: dup866    1160: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for867    1162: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V868    1165: athrow869    1166: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev870    1169: invokestatic  #290                // Method dawn$pkg$tileir/dev.exp:(JLdawn$pkg$tileir/dev$ev$Dev;)J871    1172: lstore        73872    1174: lload         4873    1176: new           #16                 // class ev$Pack874    1179: dup875    1180: ldc2_w        #17                 // long 130822816777737l876    1183: aload         13877    1185: ldc2_w        #17                 // long 130822816777737l878    1188: lstore        75879    1190: astore        77880    1192: aload         77881    1194: instanceof    #16                 // class ev$Pack882    1197: ifeq          1238883    1200: aload         77884    1202: checkcast     #16                 // class ev$Pack885    1205: getfield      #32                 // Field ev$Pack.key:J886    1208: lload         75887    1210: lcmp888    1211: ifne          1225889    1214: aload         77890    1216: checkcast     #16                 // class ev$Pack891    1219: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;892    1222: goto          1248893    1225: aload         77894    1227: checkcast     #16                 // class ev$Pack895    1230: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;896    1233: astore        77897    1235: goto          1192898    1238: new           #41                 // class dawn/rt/PanicError899    1241: dup900    1242: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for901    1244: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V902    1247: athrow903    1248: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev904    1251: getstatic     #24                 // Field dawn/rt/Unit.INSTANCE:Ldawn/rt/Unit;905    1254: invokespecial #28                 // Method ev$Pack."<init>":(JLjava/lang/Object;Ljava/lang/Object;)V906    1257: ldc2_w        #17                 // long 130822816777737l907    1260: lstore        78908    1262: astore        80909    1264: aload         80910    1266: instanceof    #16                 // class ev$Pack911    1269: ifeq          1310912    1272: aload         80913    1274: checkcast     #16                 // class ev$Pack914    1277: getfield      #32                 // Field ev$Pack.key:J915    1280: lload         78916    1282: lcmp917    1283: ifne          1297918    1286: aload         80919    1288: checkcast     #16                 // class ev$Pack920    1291: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;921    1294: goto          1320922    1297: aload         80923    1299: checkcast     #16                 // class ev$Pack924    1302: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;925    1305: astore        80926    1307: goto          1264927    1310: new           #41                 // class dawn/rt/PanicError928    1313: dup929    1314: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for930    1316: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V931    1319: athrow932    1320: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev933    1323: invokestatic  #138                // Method dawn$pkg$tileir/dev.dawn$impl$StagedVar$Tile$var_get:(JLdawn$pkg$tileir/dev$ev$Dev;)J934    1326: lload         62935    1328: new           #16                 // class ev$Pack936    1331: dup937    1332: ldc2_w        #17                 // long 130822816777737l938    1335: aload         13939    1337: ldc2_w        #17                 // long 130822816777737l940    1340: lstore        81941    1342: astore        83942    1344: aload         83943    1346: instanceof    #16                 // class ev$Pack944    1349: ifeq          1390945    1352: aload         83946    1354: checkcast     #16                 // class ev$Pack947    1357: getfield      #32                 // Field ev$Pack.key:J948    1360: lload         81949    1362: lcmp950    1363: ifne          1377951    1366: aload         83952    1368: checkcast     #16                 // class ev$Pack953    1371: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;954    1374: goto          1400955    1377: aload         83956    1379: checkcast     #16                 // class ev$Pack957    1382: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;958    1385: astore        83959    1387: goto          1344960    1390: new           #41                 // class dawn/rt/PanicError961    1393: dup962    1394: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for963    1396: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V964    1399: athrow965    1400: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev966    1403: getstatic     #24                 // Field dawn/rt/Unit.INSTANCE:Ldawn/rt/Unit;967    1406: invokespecial #28                 // Method ev$Pack."<init>":(JLjava/lang/Object;Ljava/lang/Object;)V968    1409: ldc2_w        #17                 // long 130822816777737l969    1412: lstore        84970    1414: astore        86971    1416: aload         86972    1418: instanceof    #16                 // class ev$Pack973    1421: ifeq          1462974    1424: aload         86975    1426: checkcast     #16                 // class ev$Pack976    1429: getfield      #32                 // Field ev$Pack.key:J977    1432: lload         84978    1434: lcmp979    1435: ifne          1449980    1438: aload         86981    1440: checkcast     #16                 // class ev$Pack982    1443: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;983    1446: goto          1472984    1449: aload         86985    1451: checkcast     #16                 // class ev$Pack986    1454: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;987    1457: astore        86988    1459: goto          1416989    1462: new           #41                 // class dawn/rt/PanicError990    1465: dup991    1466: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for992    1468: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V993    1471: athrow994    1472: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev995    1475: invokestatic  #233                // Method dawn$pkg$tileir/dev.dawn$impl$Sub$Tile$sub:(JJLdawn$pkg$tileir/dev$ev$Dev;)J996    1478: aload         13997    1480: ldc2_w        #17                 // long 130822816777737l998    1483: lstore        87999    1485: astore        891000    1487: aload         891001    1489: instanceof    #16                 // class ev$Pack1002    1492: ifeq          15331003    1495: aload         891004    1497: checkcast     #16                 // class ev$Pack1005    1500: getfield      #32                 // Field ev$Pack.key:J1006    1503: lload         871007    1505: lcmp1008    1506: ifne          15201009    1509: aload         891010    1511: checkcast     #16                 // class ev$Pack1011    1514: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;1012    1517: goto          15431013    1520: aload         891014    1522: checkcast     #16                 // class ev$Pack1015    1525: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;1016    1528: astore        891017    1530: goto          14871018    1533: new           #41                 // class dawn/rt/PanicError1019    1536: dup1020    1537: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for1021    1539: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V1022    1542: athrow1023    1543: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev1024    1546: invokestatic  #290                // Method dawn$pkg$tileir/dev.exp:(JLdawn$pkg$tileir/dev$ev$Dev;)J1025    1549: lstore        901026    1551: lload         61027    1553: lload         61028    1555: new           #16                 // class ev$Pack1029    1558: dup1030    1559: ldc2_w        #17                 // long 130822816777737l1031    1562: aload         131032    1564: ldc2_w        #17                 // long 130822816777737l1033    1567: lstore        921034    1569: astore        941035    1571: aload         941036    1573: instanceof    #16                 // class ev$Pack1037    1576: ifeq          16171038    1579: aload         941039    1581: checkcast     #16                 // class ev$Pack1040    1584: getfield      #32                 // Field ev$Pack.key:J1041    1587: lload         921042    1589: lcmp1043    1590: ifne          16041044    1593: aload         941045    1595: checkcast     #16                 // class ev$Pack1046    1598: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;1047    1601: goto          16271048    1604: aload         941049    1606: checkcast     #16                 // class ev$Pack1050    1609: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;1051    1612: astore        941052    1614: goto          15711053    1617: new           #41                 // class dawn/rt/PanicError1054    1620: dup1055    1621: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for1056    1623: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V1057    1626: athrow1058    1627: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev1059    1630: getstatic     #24                 // Field dawn/rt/Unit.INSTANCE:Ldawn/rt/Unit;1060    1633: invokespecial #28                 // Method ev$Pack."<init>":(JLjava/lang/Object;Ljava/lang/Object;)V1061    1636: ldc2_w        #17                 // long 130822816777737l1062    1639: lstore        951063    1641: astore        971064    1643: aload         971065    1645: instanceof    #16                 // class ev$Pack1066    1648: ifeq          16891067    1651: aload         971068    1653: checkcast     #16                 // class ev$Pack1069    1656: getfield      #32                 // Field ev$Pack.key:J1070    1659: lload         951071    1661: lcmp1072    1662: ifne          16761073    1665: aload         971074    1667: checkcast     #16                 // class ev$Pack1075    1670: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;1076    1673: goto          16991077    1676: aload         971078    1678: checkcast     #16                 // class ev$Pack1079    1681: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;1080    1684: astore        971081    1686: goto          16431082    1689: new           #41                 // class dawn/rt/PanicError1083    1692: dup1084    1693: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for1085    1695: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V1086    1698: athrow1087    1699: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev1088    1702: invokestatic  #138                // Method dawn$pkg$tileir/dev.dawn$impl$StagedVar$Tile$var_get:(JLdawn$pkg$tileir/dev$ev$Dev;)J1089    1705: lload         901090    1707: new           #16                 // class ev$Pack1091    1710: dup1092    1711: ldc2_w        #17                 // long 130822816777737l1093    1714: aload         131094    1716: ldc2_w        #17                 // long 130822816777737l1095    1719: lstore        981096    1721: astore        1001097    1723: aload         1001098    1725: instanceof    #16                 // class ev$Pack1099    1728: ifeq          17691100    1731: aload         1001101    1733: checkcast     #16                 // class ev$Pack1102    1736: getfield      #32                 // Field ev$Pack.key:J1103    1739: lload         981104    1741: lcmp1105    1742: ifne          17561106    1745: aload         1001107    1747: checkcast     #16                 // class ev$Pack1108    1750: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;1109    1753: goto          17791110    1756: aload         1001111    1758: checkcast     #16                 // class ev$Pack1112    1761: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;1113    1764: astore        1001114    1766: goto          17231115    1769: new           #41                 // class dawn/rt/PanicError1116    1772: dup1117    1773: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for1118    1775: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V1119    1778: athrow1120    1779: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev1121    1782: getstatic     #24                 // Field dawn/rt/Unit.INSTANCE:Ldawn/rt/Unit;1122    1785: invokespecial #28                 // Method ev$Pack."<init>":(JLjava/lang/Object;Ljava/lang/Object;)V1123    1788: ldc2_w        #17                 // long 130822816777737l1124    1791: lstore        1011125    1793: astore        1031126    1795: aload         1031127    1797: instanceof    #16                 // class ev$Pack1128    1800: ifeq          18411129    1803: aload         1031130    1805: checkcast     #16                 // class ev$Pack1131    1808: getfield      #32                 // Field ev$Pack.key:J1132    1811: lload         1011133    1813: lcmp1134    1814: ifne          18281135    1817: aload         1031136    1819: checkcast     #16                 // class ev$Pack1137    1822: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;1138    1825: goto          18511139    1828: aload         1031140    1830: checkcast     #16                 // class ev$Pack1141    1833: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;1142    1836: astore        1031143    1838: goto          17951144    1841: new           #41                 // class dawn/rt/PanicError1145    1844: dup1146    1845: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for1147    1847: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V1148    1850: athrow1149    1851: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev1150    1854: invokestatic  #214                // Method dawn$pkg$tileir/dev.dawn$impl$Mul$Tile$mul:(JJLdawn$pkg$tileir/dev$ev$Dev;)J1151    1857: lload         731152    1859: lstore        1041153    1861: iconst_11154    1862: istore        1061155    1864: lload         1041156    1866: invokestatic  #268                // Method dawn$pkg$tileir/dev.reduce_sum$default$1:(J)J1157    1869: lstore        1071158    1871: lload         1041159    1873: lload         1071160    1875: iload         1061161    1877: aload         131162    1879: ldc2_w        #17                 // long 130822816777737l1163    1882: lstore        1091164    1884: astore        1111165    1886: aload         1111166    1888: instanceof    #16                 // class ev$Pack1167    1891: ifeq          19321168    1894: aload         1111169    1896: checkcast     #16                 // class ev$Pack1170    1899: getfield      #32                 // Field ev$Pack.key:J1171    1902: lload         1091172    1904: lcmp1173    1905: ifne          19191174    1908: aload         1111175    1910: checkcast     #16                 // class ev$Pack1176    1913: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;1177    1916: goto          19421178    1919: aload         1111179    1921: checkcast     #16                 // class ev$Pack1180    1924: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;1181    1927: astore        1111182    1929: goto          18861183    1932: new           #41                 // class dawn/rt/PanicError1184    1935: dup1185    1936: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for1186    1938: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V1187    1941: athrow1188    1942: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev1189    1945: invokestatic  #274                // Method dawn$pkg$tileir/dev.reduce_sum:(JJZLdawn$pkg$tileir/dev$ev$Dev;)J1190    1948: new           #16                 // class ev$Pack1191    1951: dup1192    1952: ldc2_w        #17                 // long 130822816777737l1193    1955: aload         131194    1957: ldc2_w        #17                 // long 130822816777737l1195    1960: lstore        1121196    1962: astore        1141197    1964: aload         1141198    1966: instanceof    #16                 // class ev$Pack1199    1969: ifeq          20101200    1972: aload         1141201    1974: checkcast     #16                 // class ev$Pack1202    1977: getfield      #32                 // Field ev$Pack.key:J1203    1980: lload         1121204    1982: lcmp1205    1983: ifne          19971206    1986: aload         1141207    1988: checkcast     #16                 // class ev$Pack1208    1991: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;1209    1994: goto          20201210    1997: aload         1141211    1999: checkcast     #16                 // class ev$Pack1212    2002: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;1213    2005: astore        1141214    2007: goto          19641215    2010: new           #41                 // class dawn/rt/PanicError1216    2013: dup1217    2014: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for1218    2016: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V1219    2019: athrow1220    2020: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev1221    2023: getstatic     #24                 // Field dawn/rt/Unit.INSTANCE:Ldawn/rt/Unit;1222    2026: invokespecial #28                 // Method ev$Pack."<init>":(JLjava/lang/Object;Ljava/lang/Object;)V1223    2029: ldc2_w        #17                 // long 130822816777737l1224    2032: lstore        1151225    2034: astore        1171226    2036: aload         1171227    2038: instanceof    #16                 // class ev$Pack1228    2041: ifeq          20821229    2044: aload         1171230    2046: checkcast     #16                 // class ev$Pack1231    2049: getfield      #32                 // Field ev$Pack.key:J1232    2052: lload         1151233    2054: lcmp1234    2055: ifne          20691235    2058: aload         1171236    2060: checkcast     #16                 // class ev$Pack1237    2063: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;1238    2066: goto          20921239    2069: aload         1171240    2071: checkcast     #16                 // class ev$Pack1241    2074: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;1242    2077: astore        1171243    2079: goto          20361244    2082: new           #41                 // class dawn/rt/PanicError1245    2085: dup1246    2086: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for1247    2088: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V1248    2091: athrow1249    2092: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev1250    2095: invokestatic  #52                 // Method dawn$pkg$tileir/dev.dawn$impl$Add$Tile$add:(JJLdawn$pkg$tileir/dev$ev$Dev;)J1251    2098: new           #16                 // class ev$Pack1252    2101: dup1253    2102: ldc2_w        #17                 // long 130822816777737l1254    2105: aload         131255    2107: ldc2_w        #17                 // long 130822816777737l1256    2110: lstore        1181257    2112: astore        1201258    2114: aload         1201259    2116: instanceof    #16                 // class ev$Pack1260    2119: ifeq          21601261    2122: aload         1201262    2124: checkcast     #16                 // class ev$Pack1263    2127: getfield      #32                 // Field ev$Pack.key:J1264    2130: lload         1181265    2132: lcmp1266    2133: ifne          21471267    2136: aload         1201268    2138: checkcast     #16                 // class ev$Pack1269    2141: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;1270    2144: goto          21701271    2147: aload         1201272    2149: checkcast     #16                 // class ev$Pack1273    2152: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;1274    2155: astore        1201275    2157: goto          21141276    2160: new           #41                 // class dawn/rt/PanicError1277    2163: dup1278    2164: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for1279    2166: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V1280    2169: athrow1281    2170: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev1282    2173: getstatic     #24                 // Field dawn/rt/Unit.INSTANCE:Ldawn/rt/Unit;1283    2176: invokespecial #28                 // Method ev$Pack."<init>":(JLjava/lang/Object;Ljava/lang/Object;)V1284    2179: ldc2_w        #17                 // long 130822816777737l1285    2182: lstore        1211286    2184: astore        1231287    2186: aload         1231288    2188: instanceof    #16                 // class ev$Pack1289    2191: ifeq          22321290    2194: aload         1231291    2196: checkcast     #16                 // class ev$Pack1292    2199: getfield      #32                 // Field ev$Pack.key:J1293    2202: lload         1211294    2204: lcmp1295    2205: ifne          22191296    2208: aload         1231297    2210: checkcast     #16                 // class ev$Pack1298    2213: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;1299    2216: goto          22421300    2219: aload         1231301    2221: checkcast     #16                 // class ev$Pack1302    2224: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;1303    2227: astore        1231304    2229: goto          21861305    2232: new           #41                 // class dawn/rt/PanicError1306    2235: dup1307    2236: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for1308    2238: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V1309    2241: athrow1310    2242: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev1311    2245: invokestatic  #157                // Method dawn$pkg$tileir/dev.dawn$impl$StagedVar$Tile$var_set:(JJLdawn$pkg$tileir/dev$ev$Dev;)Ldawn/rt/Unit;1312    2248: pop1313    2249: lload         81314    2251: lload         731315    2253: aload         101316    2255: invokestatic  #80                 // Method dawn/rt/Array.array_new:()Ldawn/rt/Array;1317    2258: lload         111318    2260: invokestatic  #86                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;1319    2263: invokestatic  #90                 // Method dawn/rt/Array.array_push:(Ldawn/rt/Array;Ljava/lang/Object;)Ldawn/rt/Array;1320    2266: invokestatic  #96                 // Method std/pvec.from_array:(Ldawn/rt/Array;)Lstd/pvec$Vec;1321    2269: aload         131322    2271: ldc2_w        #17                 // long 130822816777737l1323    2274: lstore        1241324    2276: astore        1261325    2278: aload         1261326    2280: instanceof    #16                 // class ev$Pack1327    2283: ifeq          23241328    2286: aload         1261329    2288: checkcast     #16                 // class ev$Pack1330    2291: getfield      #32                 // Field ev$Pack.key:J1331    2294: lload         1241332    2296: lcmp1333    2297: ifne          23111334    2300: aload         1261335    2302: checkcast     #16                 // class ev$Pack1336    2305: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;1337    2308: goto          23341338    2311: aload         1261339    2313: checkcast     #16                 // class ev$Pack1340    2316: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;1341    2319: astore        1261342    2321: goto          22781343    2324: new           #41                 // class dawn/rt/PanicError1344    2327: dup1345    2328: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for1346    2330: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V1347    2333: athrow1348    2334: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev1349    2337: invokestatic  #100                // Method dawn$pkg$tileir/dev.load_at:(Ldawn/rt/Tuple2;Lstd/pvec$Vec;Ldawn$pkg$tileir/dev$ev$Dev;)J1350    2340: lload         81351    2342: new           #16                 // class ev$Pack1352    2345: dup1353    2346: ldc2_w        #17                 // long 130822816777737l1354    2349: aload         131355    2351: ldc2_w        #17                 // long 130822816777737l1356    2354: lstore        1271357    2356: astore        1291358    2358: aload         1291359    2360: instanceof    #16                 // class ev$Pack1360    2363: ifeq          24041361    2366: aload         1291362    2368: checkcast     #16                 // class ev$Pack1363    2371: getfield      #32                 // Field ev$Pack.key:J1364    2374: lload         1271365    2376: lcmp1366    2377: ifne          23911367    2380: aload         1291368    2382: checkcast     #16                 // class ev$Pack1369    2385: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;1370    2388: goto          24141371    2391: aload         1291372    2393: checkcast     #16                 // class ev$Pack1373    2396: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;1374    2399: astore        1291375    2401: goto          23581376    2404: new           #41                 // class dawn/rt/PanicError1377    2407: dup1378    2408: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for1379    2410: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V1380    2413: athrow1381    2414: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev1382    2417: getstatic     #24                 // Field dawn/rt/Unit.INSTANCE:Ldawn/rt/Unit;1383    2420: invokespecial #28                 // Method ev$Pack."<init>":(JLjava/lang/Object;Ljava/lang/Object;)V1384    2423: ldc2_w        #17                 // long 130822816777737l1385    2426: lstore        1301386    2428: astore        1321387    2430: aload         1321388    2432: instanceof    #16                 // class ev$Pack1389    2435: ifeq          24761390    2438: aload         1321391    2440: checkcast     #16                 // class ev$Pack1392    2443: getfield      #32                 // Field ev$Pack.key:J1393    2446: lload         1301394    2448: lcmp1395    2449: ifne          24631396    2452: aload         1321397    2454: checkcast     #16                 // class ev$Pack1398    2457: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;1399    2460: goto          24861400    2463: aload         1321401    2465: checkcast     #16                 // class ev$Pack1402    2468: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;1403    2471: astore        1321404    2473: goto          24301405    2476: new           #41                 // class dawn/rt/PanicError1406    2479: dup1407    2480: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for1408    2482: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V1409    2485: athrow1410    2486: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev1411    2489: invokestatic  #138                // Method dawn$pkg$tileir/dev.dawn$impl$StagedVar$Tile$var_get:(JLdawn$pkg$tileir/dev$ev$Dev;)J1412    2492: lload         901413    2494: new           #16                 // class ev$Pack1414    2497: dup1415    2498: ldc2_w        #17                 // long 130822816777737l1416    2501: aload         131417    2503: ldc2_w        #17                 // long 130822816777737l1418    2506: lstore        1331419    2508: astore        1351420    2510: aload         1351421    2512: instanceof    #16                 // class ev$Pack1422    2515: ifeq          25561423    2518: aload         1351424    2520: checkcast     #16                 // class ev$Pack1425    2523: getfield      #32                 // Field ev$Pack.key:J1426    2526: lload         1331427    2528: lcmp1428    2529: ifne          25431429    2532: aload         1351430    2534: checkcast     #16                 // class ev$Pack1431    2537: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;1432    2540: goto          25661433    2543: aload         1351434    2545: checkcast     #16                 // class ev$Pack1435    2548: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;1436    2551: astore        1351437    2553: goto          25101438    2556: new           #41                 // class dawn/rt/PanicError1439    2559: dup1440    2560: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for1441    2562: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V1442    2565: athrow1443    2566: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev1444    2569: getstatic     #24                 // Field dawn/rt/Unit.INSTANCE:Ldawn/rt/Unit;1445    2572: invokespecial #28                 // Method ev$Pack."<init>":(JLjava/lang/Object;Ljava/lang/Object;)V1446    2575: ldc2_w        #17                 // long 130822816777737l1447    2578: lstore        1361448    2580: astore        1381449    2582: aload         1381450    2584: instanceof    #16                 // class ev$Pack1451    2587: ifeq          26281452    2590: aload         1381453    2592: checkcast     #16                 // class ev$Pack1454    2595: getfield      #32                 // Field ev$Pack.key:J1455    2598: lload         1361456    2600: lcmp1457    2601: ifne          26151458    2604: aload         1381459    2606: checkcast     #16                 // class ev$Pack1460    2609: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;1461    2612: goto          26381462    2615: aload         1381463    2617: checkcast     #16                 // class ev$Pack1464    2620: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;1465    2623: astore        1381466    2625: goto          25821467    2628: new           #41                 // class dawn/rt/PanicError1468    2631: dup1469    2632: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for1470    2634: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V1471    2637: athrow1472    2638: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev1473    2641: invokestatic  #214                // Method dawn$pkg$tileir/dev.dawn$impl$Mul$Tile$mul:(JJLdawn$pkg$tileir/dev$ev$Dev;)J1474    2644: getstatic     #177                // Field dawn/dict/main$dict$20911459306561$Float.INSTANCE:Ldawn/tr/dawn$pkg$tileir$dev$FloatDtype;1475    2647: aload         131476    2649: ldc2_w        #17                 // long 130822816777737l1477    2652: lstore        1391478    2654: astore        1411479    2656: aload         1411480    2658: instanceof    #16                 // class ev$Pack1481    2661: ifeq          27021482    2664: aload         1411483    2666: checkcast     #16                 // class ev$Pack1484    2669: getfield      #32                 // Field ev$Pack.key:J1485    2672: lload         1391486    2674: lcmp1487    2675: ifne          26891488    2678: aload         1411489    2680: checkcast     #16                 // class ev$Pack1490    2683: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;1491    2686: goto          27121492    2689: aload         1411493    2691: checkcast     #16                 // class ev$Pack1494    2694: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;1495    2697: astore        1411496    2699: goto          26561497    2702: new           #41                 // class dawn/rt/PanicError1498    2705: dup1499    2706: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for1500    2708: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V1501    2711: athrow1502    2712: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev1503    2715: invokestatic  #455                // Method dawn$pkg$tileir/dev.mma:(JJJLjava/lang/Object;Ldawn$pkg$tileir/dev$ev$Dev;)J1504    2718: new           #16                 // class ev$Pack1505    2721: dup1506    2722: ldc2_w        #17                 // long 130822816777737l1507    2725: aload         131508    2727: ldc2_w        #17                 // long 130822816777737l1509    2730: lstore        1421510    2732: astore        1441511    2734: aload         1441512    2736: instanceof    #16                 // class ev$Pack1513    2739: ifeq          27801514    2742: aload         1441515    2744: checkcast     #16                 // class ev$Pack1516    2747: getfield      #32                 // Field ev$Pack.key:J1517    2750: lload         1421518    2752: lcmp1519    2753: ifne          27671520    2756: aload         1441521    2758: checkcast     #16                 // class ev$Pack1522    2761: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;1523    2764: goto          27901524    2767: aload         1441525    2769: checkcast     #16                 // class ev$Pack1526    2772: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;1527    2775: astore        1441528    2777: goto          27341529    2780: new           #41                 // class dawn/rt/PanicError1530    2783: dup1531    2784: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for1532    2786: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V1533    2789: athrow1534    2790: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev1535    2793: getstatic     #24                 // Field dawn/rt/Unit.INSTANCE:Ldawn/rt/Unit;1536    2796: invokespecial #28                 // Method ev$Pack."<init>":(JLjava/lang/Object;Ljava/lang/Object;)V1537    2799: ldc2_w        #17                 // long 130822816777737l1538    2802: lstore        1451539    2804: astore        1471540    2806: aload         1471541    2808: instanceof    #16                 // class ev$Pack1542    2811: ifeq          28521543    2814: aload         1471544    2816: checkcast     #16                 // class ev$Pack1545    2819: getfield      #32                 // Field ev$Pack.key:J1546    2822: lload         1451547    2824: lcmp1548    2825: ifne          28391549    2828: aload         1471550    2830: checkcast     #16                 // class ev$Pack1551    2833: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;1552    2836: goto          28621553    2839: aload         1471554    2841: checkcast     #16                 // class ev$Pack1555    2844: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;1556    2847: astore        1471557    2849: goto          28061558    2852: new           #41                 // class dawn/rt/PanicError1559    2855: dup1560    2856: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for1561    2858: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V1562    2861: athrow1563    2862: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev1564    2865: invokestatic  #157                // Method dawn$pkg$tileir/dev.dawn$impl$StagedVar$Tile$var_set:(JJLdawn$pkg$tileir/dev$ev$Dev;)Ldawn/rt/Unit;1565    2868: pop1566    2869: lload         41567    2871: lload         621568    2873: new           #16                 // class ev$Pack1569    2876: dup1570    2877: ldc2_w        #17                 // long 130822816777737l1571    2880: aload         131572    2882: ldc2_w        #17                 // long 130822816777737l1573    2885: lstore        1481574    2887: astore        1501575    2889: aload         1501576    2891: instanceof    #16                 // class ev$Pack1577    2894: ifeq          29351578    2897: aload         1501579    2899: checkcast     #16                 // class ev$Pack1580    2902: getfield      #32                 // Field ev$Pack.key:J1581    2905: lload         1481582    2907: lcmp1583    2908: ifne          29221584    2911: aload         1501585    2913: checkcast     #16                 // class ev$Pack1586    2916: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;1587    2919: goto          29451588    2922: aload         1501589    2924: checkcast     #16                 // class ev$Pack1590    2927: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;1591    2930: astore        1501592    2932: goto          28891593    2935: new           #41                 // class dawn/rt/PanicError1594    2938: dup1595    2939: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for1596    2941: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V1597    2944: athrow1598    2945: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev1599    2948: getstatic     #24                 // Field dawn/rt/Unit.INSTANCE:Ldawn/rt/Unit;1600    2951: invokespecial #28                 // Method ev$Pack."<init>":(JLjava/lang/Object;Ljava/lang/Object;)V1601    2954: ldc2_w        #17                 // long 130822816777737l1602    2957: lstore        1511603    2959: astore        1531604    2961: aload         1531605    2963: instanceof    #16                 // class ev$Pack1606    2966: ifeq          30071607    2969: aload         1531608    2971: checkcast     #16                 // class ev$Pack1609    2974: getfield      #32                 // Field ev$Pack.key:J1610    2977: lload         1511611    2979: lcmp1612    2980: ifne          29941613    2983: aload         1531614    2985: checkcast     #16                 // class ev$Pack1615    2988: getfield      #36                 // Field ev$Pack.ev:Ljava/lang/Object;1616    2991: goto          30171617    2994: aload         1531618    2996: checkcast     #16                 // class ev$Pack1619    2999: getfield      #39                 // Field ev$Pack.outer:Ljava/lang/Object;1620    3002: astore        1531621    3004: goto          29611622    3007: new           #41                 // class dawn/rt/PanicError1623    3010: dup1624    3011: ldc           #43                 // String effect evidence missing: no pack entry for the atom this call site asked for1625    3013: invokespecial #46                 // Method dawn/rt/PanicError."<init>":(Ljava/lang/String;)V1626    3016: athrow1627    3017: checkcast     #48                 // class dawn$pkg$tileir/dev$ev$Dev1628    3020: invokestatic  #157                // Method dawn$pkg$tileir/dev.dawn$impl$StagedVar$Tile$var_set:(JJLdawn$pkg$tileir/dev$ev$Dev;)Ldawn/rt/Unit;1629    3023: pop1630    3024: getstatic     #24                 // Field dawn/rt/Unit.INSTANCE:Ldawn/rt/Unit;1631    3027: areturn

attend, host only

Attention without the exponential, on lists: dot products, a normalisation and a weighted sum. It is not a kernel, so it has no Tile IR tab. What it does have is the three shapes worth clicking: a call, a call inside a call (range(0, len(xs))), and a closure handed to a call, whose body the compiler lifts out into a function of its own.

attend12 calls

Dawn sourcesite/explorer/attend.dawn:1–25

1# The explorer page's host-only program (site/explorer/record.py): attention2# without the exponential, on lists. Small enough to read whole, and made of3# the three shapes the page shows (a call, a call inside a call, a closure4# handed to a call), so a click on any of them has something to light in the5# C and the JVM listing. It is not a kernel: it has no Tile IR.67fn dot(xs: List[Float], ys: List[Float]) -> Float = {8  let ps = map(range(0, len(xs)), i => xs[i] * ys[i])9  fold(ps, 0.0, (a, b) => a + b)10}1112fn normalize(xs: List[Float]) -> List[Float] = {13  let total = fold(xs, 0.0, (a, b) => a + b)14  map(xs, x => x / total)15}1617fn attend(q: List[Float], keys: List[List[Float]], vals: List[Float]) -> Float = {18  let w = normalize(map(keys, k => dot(q, k)))19  dot(w, vals)20}2122pub fn main() -> Unit !io = {23  let out = attend([1.0, 2.0], [[1.0, 0.0], [0.0, 1.0]], [10.0, 20.0])24  println("out = ${out}")25}

C, from dawn __emitc142 of 7625 lines

1double dawn_attend__dot(void* p0, void* p1) {2  DAWN_OWN_FRAME(8);3  dawn_own[1] = p0;4  dawn_own[2] = p1;5  dawn_own[3] = dawn_std_2pvec__range(INT64_C(0), dawn_std_2pvec__count(((void*)dawn_own[1])));6  dawn_clo* t0 = dawn_clo_new((void*)dawn_attend__lambda_30__clo, 2, UINT64_C(0x0000000000000003));7  t0->caps[0].p = ((void*)dawn_dup(((void*)dawn_own[1])));8  t0->caps[1].p = ((void*)dawn_take(&dawn_own[2]));9  dawn_own[4] = t0;10  void* t1 = ((void*)dawn_unit_box);11  dawn_own[5] = dawn_std_2list__map(((void*)dawn_take(&dawn_own[3])), ((dawn_clo*)dawn_take(&dawn_own[4])), t1);12  dawn_drop(dawn_own[1]); dawn_own[1] = NULL;13  dawn_own[6] = dawn_box_float(0.0);14  dawn_clo* t2 = dawn_clo_new((void*)dawn_attend__lambda_31__clo, 0, UINT64_C(0));15  dawn_own[7] = t2;16  void* t3 = ((void*)dawn_unit_box);17  dawn_own[8] = dawn_std_2list__fold(((void*)dawn_take(&dawn_own[5])), ((void*)dawn_take(&dawn_own[6])), ((dawn_clo*)dawn_take(&dawn_own[7])), t3);18  double v23 = (((dawn_box*)(((void*)dawn_own[8])))->val.f);19  dawn_drop(dawn_own[8]); dawn_own[8] = NULL;20  DAWN_RETURN(v23);21}2223void* dawn_attend__normalize(void* p3) {24  DAWN_OWN_FRAME(6);25  dawn_own[1] = p3;26  dawn_own[2] = ((void*)dawn_dup(((void*)dawn_own[1])));27  dawn_own[3] = dawn_box_float(0.0);28  dawn_clo* t0 = dawn_clo_new((void*)dawn_attend__lambda_32__clo, 0, UINT64_C(0));29  dawn_own[4] = t0;30  void* t1 = ((void*)dawn_unit_box);31  dawn_own[5] = dawn_std_2list__fold(((void*)dawn_take(&dawn_own[2])), ((void*)dawn_take(&dawn_own[3])), ((dawn_clo*)dawn_take(&dawn_own[4])), t1);32  double v25 = (((dawn_box*)(((void*)dawn_own[5])))->val.f);33  dawn_drop(dawn_own[5]); dawn_own[5] = NULL;34  double v4 = v25;35  dawn_clo* t2 = dawn_clo_new((void*)dawn_attend__lambda_33__clo, 1, UINT64_C(0x0000000000000000));36  t2->caps[0].f = v4;37  dawn_own[6] = t2;38  void* t3 = ((void*)dawn_unit_box);39  DAWN_RETURN(dawn_std_2list__map(((void*)dawn_take(&dawn_own[1])), ((dawn_clo*)dawn_take(&dawn_own[6])), t3));40}4142double dawn_attend__attend(void* p5, void* p6, void* p7) {43  DAWN_OWN_FRAME(5);44  dawn_own[1] = p5;45  dawn_own[2] = p6;46  dawn_own[3] = p7;47  dawn_clo* t0 = dawn_clo_new((void*)dawn_attend__lambda_34__clo, 1, UINT64_C(0x0000000000000001));48  t0->caps[0].p = ((void*)dawn_take(&dawn_own[1]));49  dawn_own[4] = t0;50  void* t1 = ((void*)dawn_unit_box);51  dawn_own[5] = dawn_attend__normalize(dawn_std_2list__map(((void*)dawn_take(&dawn_own[2])), ((dawn_clo*)dawn_take(&dawn_own[4])), t1));52  void* t2 = ((void*)dawn_take(&dawn_own[3]));53  DAWN_RETURN(dawn_attend__dot(((void*)dawn_take(&dawn_own[5])), t2));54}5556dawn_unit dawn_attend__main(void) {57  DAWN_OWN_FRAME(6);58  dawn_array* t0 = dawn_array_new();59  t0 = dawn_array_push_own(t0, ((void*)(dawn_box_float(1.0))));60  t0 = dawn_array_push_own(t0, ((void*)(dawn_box_float(2.0))));61  dawn_own[1] = dawn_std_2pvec__from_1array(t0);62  dawn_array* t1 = dawn_array_new();63  dawn_array* t2 = dawn_array_new();64  t2 = dawn_array_push_own(t2, ((void*)(dawn_box_float(1.0))));65  t2 = dawn_array_push_own(t2, ((void*)(dawn_box_float(0.0))));66  t1 = dawn_array_push_own(t1, ((void*)(((void*)(dawn_std_2pvec__from_1array(t2))))));67  dawn_array* t3 = dawn_array_new();68  t3 = dawn_array_push_own(t3, ((void*)(dawn_box_float(0.0))));69  t3 = dawn_array_push_own(t3, ((void*)(dawn_box_float(1.0))));70  t1 = dawn_array_push_own(t1, ((void*)(((void*)(dawn_std_2pvec__from_1array(t3))))));71  dawn_own[2] = dawn_std_2pvec__from_1array(t1);72  dawn_array* t4 = dawn_array_new();73  t4 = dawn_array_push_own(t4, ((void*)(dawn_box_float(10.0))));74  t4 = dawn_array_push_own(t4, ((void*)(dawn_box_float(20.0))));75  void* t5 = dawn_std_2pvec__from_1array(t4);76  double v9 = dawn_attend__attend(((void*)dawn_take(&dawn_own[1])), ((void*)dawn_take(&dawn_own[2])), t5);77  static dawn_str t6_lit = {{DAWN_IMMORTAL, DAWN_K_STR}, 6, "out = "};78  dawn_own[3] = (&t6_lit);79  dawn_own[4] = dawn_std_2fmt__dtoa(v9);80  dawn_own[5] = dawn_str_concat(((dawn_str*)dawn_own[3]), ((dawn_str*)dawn_own[4]));81  dawn_drop(dawn_own[4]); dawn_own[4] = NULL;82  dawn_drop(dawn_own[3]); dawn_own[3] = NULL;83  dawn_own[6] = ((dawn_str*)dawn_take(&dawn_own[5]));84  (void)(dawn_std_2io__println(((dawn_str*)dawn_own[6])));85  dawn_drop(dawn_own[6]); dawn_own[6] = NULL;86  DAWN_RETURN(DAWN_UNIT);87}8889double dawn_attend__lambda_30(void* p0, void* p1, int64_t v10, void* p11) {90  DAWN_OWN_FRAME(5);91  dawn_own[1] = p0;92  dawn_own[2] = p1;93  dawn_own[3] = p11;94  dawn_own[4] = dawn_std_2pvec__index(((void*)dawn_own[1]), v10);95  double v31 = (((dawn_box*)(((void*)dawn_own[4])))->val.f);96  dawn_drop(dawn_own[4]); dawn_own[4] = NULL;97  double t0 = v31;98  dawn_own[5] = dawn_std_2pvec__index(((void*)dawn_own[2]), v10);99  double v33 = (((dawn_box*)(((void*)dawn_own[5])))->val.f);100  dawn_drop(dawn_own[5]); dawn_own[5] = NULL;101  double t1 = v33;102  double v34 = (t0 * t1);103  dawn_drop(dawn_own[1]); dawn_own[1] = NULL;104  dawn_drop(dawn_own[2]); dawn_own[2] = NULL;105  dawn_drop(dawn_own[3]); dawn_own[3] = NULL;106  DAWN_RETURN(v34);107}108109double dawn_attend__lambda_31(double v12, double v13, void* p14) {110  DAWN_QUIET_FRAME(1);111  dawn_own[1] = p14;112  double v35 = (v12 + v13);113  dawn_drop(dawn_own[1]); dawn_own[1] = NULL;114  DAWN_RETURN(v35);115}116117double dawn_attend__lambda_32(double v15, double v16, void* p17) {118  DAWN_QUIET_FRAME(1);119  dawn_own[1] = p17;120  double v36 = (v15 + v16);121  dawn_drop(dawn_own[1]); dawn_own[1] = NULL;122  DAWN_RETURN(v36);123}124125double dawn_attend__lambda_33(double v4, double v18, void* p19) {126  DAWN_QUIET_FRAME(1);127  dawn_own[1] = p19;128  double v37 = (v18 / v4);129  dawn_drop(dawn_own[1]); dawn_own[1] = NULL;130  DAWN_RETURN(v37);131}132133double dawn_attend__lambda_34(void* p5, void* p20, void* p21) {134  DAWN_OWN_FRAME(3);135  dawn_own[1] = p5;136  dawn_own[2] = p20;137  dawn_own[3] = p21;138  void* t0 = ((void*)dawn_take(&dawn_own[2]));139  double v38 = dawn_attend__dot(((void*)dawn_take(&dawn_own[1])), t0);140  dawn_drop(dawn_own[3]); dawn_own[3] = NULL;141  DAWN_RETURN(v38);142}

JVM, from javap -c -p -s158 of 190 lines

1  public static double attend(std.pvec$Vec, std.pvec$Vec, std.pvec$Vec);2    descriptor: (Lstd/pvec$Vec;Lstd/pvec$Vec;Lstd/pvec$Vec;)D3    Code:4       0: aload_15       1: new           #82                 // class dawn/fn/attend$46       4: dup7       5: aload_08       6: invokespecial #85                 // Method dawn/fn/attend$4."<init>":(Lstd/pvec$Vec;)V9       9: getstatic     #32                 // Field dawn/rt/Unit.INSTANCE:Ldawn/rt/Unit;10      12: invokestatic  #38                 // Method std/list.map:(Lstd/pvec$Vec;Ldawn/rt/Fn2;Ljava/lang/Object;)Lstd/pvec$Vec;11      15: invokestatic  #87                 // Method normalize:(Lstd/pvec$Vec;)Lstd/pvec$Vec;12      18: astore_313      19: aload_314      20: aload_215      21: invokestatic  #89                 // Method dot:(Lstd/pvec$Vec;Lstd/pvec$Vec;)D16      24: dreturn1718  public static double dot(std.pvec$Vec, std.pvec$Vec);19    descriptor: (Lstd/pvec$Vec;Lstd/pvec$Vec;)D20    Code:21       0: ldc2_w        #9                  // long 0l22       3: aload_023       4: invokestatic  #16                 // Method std/pvec.count:(Lstd/pvec$Vec;)J24       7: invokestatic  #20                 // Method std/pvec.range:(JJ)Lstd/pvec$Vec;25      10: new           #22                 // class dawn/fn/attend$026      13: dup27      14: aload_028      15: aload_129      16: invokespecial #26                 // Method dawn/fn/attend$0."<init>":(Lstd/pvec$Vec;Lstd/pvec$Vec;)V30      19: getstatic     #32                 // Field dawn/rt/Unit.INSTANCE:Ldawn/rt/Unit;31      22: invokestatic  #38                 // Method std/list.map:(Lstd/pvec$Vec;Ldawn/rt/Fn2;Ljava/lang/Object;)Lstd/pvec$Vec;32      25: astore_233      26: aload_234      27: ldc2_w        #39                 // double 0.0d35      30: invokestatic  #46                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;36      33: getstatic     #51                 // Field dawn/fn/attend$1.INSTANCE:Ldawn/rt/Fn3;37      36: getstatic     #32                 // Field dawn/rt/Unit.INSTANCE:Ldawn/rt/Unit;38      39: invokestatic  #55                 // Method std/list.fold:(Lstd/pvec$Vec;Ljava/lang/Object;Ldawn/rt/Fn3;Ljava/lang/Object;)Ljava/lang/Object;39      42: checkcast     #42                 // class java/lang/Double40      45: invokevirtual #59                 // Method java/lang/Double.doubleValue:()D41      48: dreturn4243  public static dawn.rt.Unit main();44    descriptor: ()Ldawn/rt/Unit;45    Code:46       0: invokestatic  #99                 // Method dawn/rt/Array.array_new:()Ldawn/rt/Array;47       3: ldc2_w        #100                // double 1.0d48       6: invokestatic  #46                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;49       9: invokestatic  #105                // Method dawn/rt/Array.array_push:(Ldawn/rt/Array;Ljava/lang/Object;)Ldawn/rt/Array;50      12: ldc2_w        #106                // double 2.0d51      15: invokestatic  #46                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;52      18: invokestatic  #105                // Method dawn/rt/Array.array_push:(Ldawn/rt/Array;Ljava/lang/Object;)Ldawn/rt/Array;53      21: invokestatic  #111                // Method std/pvec.from_array:(Ldawn/rt/Array;)Lstd/pvec$Vec;54      24: invokestatic  #99                 // Method dawn/rt/Array.array_new:()Ldawn/rt/Array;55      27: invokestatic  #99                 // Method dawn/rt/Array.array_new:()Ldawn/rt/Array;56      30: ldc2_w        #100                // double 1.0d57      33: invokestatic  #46                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;58      36: invokestatic  #105                // Method dawn/rt/Array.array_push:(Ldawn/rt/Array;Ljava/lang/Object;)Ldawn/rt/Array;59      39: ldc2_w        #39                 // double 0.0d60      42: invokestatic  #46                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;61      45: invokestatic  #105                // Method dawn/rt/Array.array_push:(Ldawn/rt/Array;Ljava/lang/Object;)Ldawn/rt/Array;62      48: invokestatic  #111                // Method std/pvec.from_array:(Ldawn/rt/Array;)Lstd/pvec$Vec;63      51: invokestatic  #105                // Method dawn/rt/Array.array_push:(Ldawn/rt/Array;Ljava/lang/Object;)Ldawn/rt/Array;64      54: invokestatic  #99                 // Method dawn/rt/Array.array_new:()Ldawn/rt/Array;65      57: ldc2_w        #39                 // double 0.0d66      60: invokestatic  #46                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;67      63: invokestatic  #105                // Method dawn/rt/Array.array_push:(Ldawn/rt/Array;Ljava/lang/Object;)Ldawn/rt/Array;68      66: ldc2_w        #100                // double 1.0d69      69: invokestatic  #46                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;70      72: invokestatic  #105                // Method dawn/rt/Array.array_push:(Ldawn/rt/Array;Ljava/lang/Object;)Ldawn/rt/Array;71      75: invokestatic  #111                // Method std/pvec.from_array:(Ldawn/rt/Array;)Lstd/pvec$Vec;72      78: invokestatic  #105                // Method dawn/rt/Array.array_push:(Ldawn/rt/Array;Ljava/lang/Object;)Ldawn/rt/Array;73      81: invokestatic  #111                // Method std/pvec.from_array:(Ldawn/rt/Array;)Lstd/pvec$Vec;74      84: invokestatic  #99                 // Method dawn/rt/Array.array_new:()Ldawn/rt/Array;75      87: ldc2_w        #112                // double 10.0d76      90: invokestatic  #46                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;77      93: invokestatic  #105                // Method dawn/rt/Array.array_push:(Ldawn/rt/Array;Ljava/lang/Object;)Ldawn/rt/Array;78      96: ldc2_w        #114                // double 20.0d79      99: invokestatic  #46                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;80     102: invokestatic  #105                // Method dawn/rt/Array.array_push:(Ldawn/rt/Array;Ljava/lang/Object;)Ldawn/rt/Array;81     105: invokestatic  #111                // Method std/pvec.from_array:(Ldawn/rt/Array;)Lstd/pvec$Vec;82     108: invokestatic  #117                // Method attend:(Lstd/pvec$Vec;Lstd/pvec$Vec;Lstd/pvec$Vec;)D83     111: dstore_084     112: ldc           #119                // String out =85     114: dload_086     115: invokestatic  #125                // Method std/fmt.dtoa:(D)Ljava/lang/String;87     118: invokevirtual #131                // Method java/lang/String.concat:(Ljava/lang/String;)Ljava/lang/String;88     121: invokestatic  #137                // Method std/io.println:(Ljava/lang/String;)Ldawn/rt/Unit;89     124: areturn9091  public static std.pvec$Vec normalize(std.pvec$Vec);92    descriptor: (Lstd/pvec$Vec;)Lstd/pvec$Vec;93    Code:94       0: aload_095       1: ldc2_w        #39                 // double 0.0d96       4: invokestatic  #46                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;97       7: getstatic     #72                 // Field dawn/fn/attend$2.INSTANCE:Ldawn/rt/Fn3;98      10: getstatic     #32                 // Field dawn/rt/Unit.INSTANCE:Ldawn/rt/Unit;99      13: invokestatic  #55                 // Method std/list.fold:(Lstd/pvec$Vec;Ljava/lang/Object;Ldawn/rt/Fn3;Ljava/lang/Object;)Ljava/lang/Object;100      16: checkcast     #42                 // class java/lang/Double101      19: invokevirtual #59                 // Method java/lang/Double.doubleValue:()D102      22: dstore_1103      23: aload_0104      24: new           #74                 // class dawn/fn/attend$3105      27: dup106      28: dload_1107      29: invokespecial #77                 // Method dawn/fn/attend$3."<init>":(D)V108      32: getstatic     #32                 // Field dawn/rt/Unit.INSTANCE:Ldawn/rt/Unit;109      35: invokestatic  #38                 // Method std/list.map:(Lstd/pvec$Vec;Ldawn/rt/Fn2;Ljava/lang/Object;)Lstd/pvec$Vec;110      38: areturn111112  public static double lambda$0(std.pvec$Vec, std.pvec$Vec, long, java.lang.Object);113    descriptor: (Lstd/pvec$Vec;Lstd/pvec$Vec;JLjava/lang/Object;)D114    Code:115       0: aload_0116       1: lload_2117       2: invokestatic  #65                 // Method std/pvec.index:(Lstd/pvec$Vec;J)Ljava/lang/Object;118       5: checkcast     #42                 // class java/lang/Double119       8: invokevirtual #59                 // Method java/lang/Double.doubleValue:()D120      11: aload_1121      12: lload_2122      13: invokestatic  #65                 // Method std/pvec.index:(Lstd/pvec$Vec;J)Ljava/lang/Object;123      16: checkcast     #42                 // class java/lang/Double124      19: invokevirtual #59                 // Method java/lang/Double.doubleValue:()D125      22: dmul126      23: dreturn127128  public static double lambda$1(double, double, java.lang.Object);129    descriptor: (DDLjava/lang/Object;)D130    Code:131       0: dload_0132       1: dload_2133       2: dadd134       3: dreturn135136  public static double lambda$2(double, double, java.lang.Object);137    descriptor: (DDLjava/lang/Object;)D138    Code:139       0: dload_0140       1: dload_2141       2: dadd142       3: dreturn143144  public static double lambda$3(double, double, java.lang.Object);145    descriptor: (DDLjava/lang/Object;)D146    Code:147       0: dload_2148       1: dload_0149       2: ddiv150       3: dreturn151152  public static double lambda$4(std.pvec$Vec, std.pvec$Vec, java.lang.Object);153    descriptor: (Lstd/pvec$Vec;Lstd/pvec$Vec;Ljava/lang/Object;)D154    Code:155       0: aload_0156       1: aload_1157       2: invokestatic  #89                 // Method dot:(Lstd/pvec$Vec;Lstd/pvec$Vec;)D158       5: dreturn

Where the lines come from

Nothing here is a hand-written table. Each compiler says which call wrote which lines: dawn __emitc --map for C, dawn __emit --map for bytecode (listed by javap -c -p -s), and the recording behind the cuTile page for Tile IR. site/explorer/record.py restricts them to the function shown, and the generator checks them again, so a call without a place in a listing, or a range outside it, stops the build. The listings are made when the site is built and are not checked in, since they change whenever the compiler does. Only the function shown is listed: the rest of a program's C and bytecode is the standard library's and tileir's.