Last active
September 1, 2021 16:47
-
-
Save dgryski/0be7ddd4b13ad5ed2fc8bb201dee5ae9 to your computer and use it in GitHub Desktop.
decompiled wasm and execution trace for https://github.com/tinygo-org/tinygo/issues/2041
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
export memory memory(initial: 2, max: 0); | |
global g_a:int = 65536; | |
table T_a:funcref(min: 12, max: 12); | |
data d_syncunlockofunlockedMutexinv(offset: 65536) = | |
"\08\00\01\00\1e\00\00\00sync: unlock of unlocked Mutexinvalid syntaxre" | |
"flect: call of reflect.Type. on invalid typeTreflect: call of reflect." | |
"Value. on invalid type/proc/self/exeout of memorypanic: runtime error:" | |
" index out of rangenil pointer dereferenceslice out of rangenilinvalid" | |
" channel stateunreachable\00\00\00\00\00\00\00Z\01\01\00\0b\00\00\00pa" | |
"nic: i)i)NaN+Inf-InfNaN+Inf-Inftruefalseunreachableclose of nil channe" | |
"lclose of closed channelclose channel during send schedule awake: r" | |
"un:deadlocked: no event source\00\00\00\00\0b\00\00\00\0b\00\00\00"; | |
data d_b(offset: 66024) = | |
"<\03\01\00<\03\01\00\fc\01\01\00\01\00\00\00\01\00\00\00\92\00\01\00\0e" | |
"\00\00\00p\02\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00" | |
"\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\e8" | |
"\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00D\02\01\00\00\00\00\00\00" | |
"\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00<" | |
"\03\01\00"; | |
import function runtime_fd_write(a:int, b:int, c:int, d:int):int; | |
import function runtime_args_sizes_get(a:int, b:int):int; | |
import function runtime_args_get(a:int, b:int):int; | |
import function runtime_clock_time_get(a:int, b:long, c:int):int; | |
import function runtime_poll_oneoff(a:int, b:int, c:int, d:int):int; | |
function wasm_call_ctors() { | |
} | |
function strlen(a:ubyte_ptr):int { | |
var c:int; | |
var d:int; | |
var b:int = a; | |
if (eqz(a & 3)) goto B_c; | |
if (a[0]) goto B_d; | |
return a - a; | |
label B_d: | |
b = a + 1; | |
loop L_e { | |
if (eqz(b & 3)) goto B_c; | |
c = b[0]:ubyte; | |
d = b + 1; | |
b = d; | |
if (eqz(c)) goto B_b; | |
continue L_e; | |
} | |
label B_c: | |
b = b + -4; | |
loop L_f { | |
b = b + 4; | |
c = b[0]:int; | |
if (eqz(((c ^ -1) & c + -16843009) & -2139062144)) continue L_f; | |
} | |
if (c & 255) goto B_g; | |
return b - a; | |
label B_g: | |
loop L_h { | |
c = b[1]:ubyte; | |
d = b + 1; | |
b = d; | |
if (c) continue L_h; | |
goto B_a; | |
} | |
label B_b: | |
d = d + -1; | |
label B_a: | |
return d - a; | |
} | |
function memcpy(a:int, b:int, c:int):int { | |
var d:int; | |
var e:int; | |
var f:int; | |
var h:int; | |
var i:int; | |
var g:int; | |
if (eqz(c)) goto B_b; | |
if (eqz(b & 3)) goto B_b; | |
d = a; | |
loop L_c { | |
d[0]:byte = b[0]:ubyte; | |
e = c + -1; | |
d = d + 1; | |
b = b + 1; | |
if (c == 1) goto B_a; | |
c = e; | |
if (b & 3) continue L_c; | |
goto B_a; | |
} | |
label B_b: | |
e = c; | |
d = a; | |
label B_a: | |
c = d & 3; | |
if (c) goto B_e; | |
if (e < 16) goto B_f; | |
loop L_g { | |
d[0]:int = b[0]:int; | |
(d + 4)[0]:int = (b + 4)[0]:int; | |
(d + 8)[0]:int = (b + 8)[0]:int; | |
(d + 12)[0]:int = (b + 12)[0]:int; | |
d = d + 16; | |
b = b + 16; | |
e = e + -16; | |
if (e > 15) continue L_g; | |
} | |
label B_f: | |
if (eqz(e & 8)) goto B_h; | |
d[0]:long@4 = b[0]:long@4; | |
b = b + 8; | |
d = d + 8; | |
label B_h: | |
if (eqz(e & 4)) goto B_i; | |
d[0]:int = b[0]:int; | |
b = b + 4; | |
d = d + 4; | |
label B_i: | |
if (eqz(e & 2)) goto B_j; | |
d[0]:byte = b[0]:ubyte; | |
d[1]:byte = b[1]:ubyte; | |
d = d + 2; | |
b = b + 2; | |
label B_j: | |
if (eqz(e & 1)) goto B_d; | |
d[0]:byte = b[0]:ubyte; | |
return a; | |
label B_e: | |
if (e < 32) goto B_k; | |
br_table[B_n, B_m, B_l, ..B_k](c + -1) | |
label B_n: | |
d[1]:byte = b[1]:ubyte; | |
d[0]:byte = (f = b[0]:int); | |
d[2]:byte = b[2]:ubyte; | |
e = e + -3; | |
g = d + 3; | |
c = 0; | |
loop L_o { | |
d = g + c; | |
d[0]:int = (i = ((h = b + c) + 4)[0]:int) << 8 | f >> 24; | |
(d + 4)[0]:int = (f = (h + 8)[0]:int) << 8 | i >> 24; | |
(d + 8)[0]:int = (i = (h + 12)[0]:int) << 8 | f >> 24; | |
(d + 12)[0]:int = (f = (h + 16)[0]:int) << 8 | i >> 24; | |
c = c + 16; | |
e = e + -16; | |
if (e > 16) continue L_o; | |
} | |
d = g + c; | |
b = b + c + 3; | |
goto B_k; | |
label B_m: | |
d[0]:byte = (f = b[0]:int); | |
d[1]:byte = b[1]:ubyte; | |
e = e + -2; | |
g = d + 2; | |
c = 0; | |
loop L_p { | |
d = g + c; | |
d[0]:int = (i = ((h = b + c) + 4)[0]:int) << 16 | f >> 16; | |
(d + 4)[0]:int = (f = (h + 8)[0]:int) << 16 | i >> 16; | |
(d + 8)[0]:int = (i = (h + 12)[0]:int) << 16 | f >> 16; | |
(d + 12)[0]:int = (f = (h + 16)[0]:int) << 16 | i >> 16; | |
c = c + 16; | |
e = e + -16; | |
if (e > 17) continue L_p; | |
} | |
d = g + c; | |
b = b + c + 2; | |
goto B_k; | |
label B_l: | |
d[0]:byte = (f = b[0]:int); | |
e = e + -1; | |
g = d + 1; | |
c = 0; | |
loop L_q { | |
d = g + c; | |
d[0]:int = (i = ((h = b + c) + 4)[0]:int) << 24 | f >> 8; | |
(d + 4)[0]:int = (f = (h + 8)[0]:int) << 24 | i >> 8; | |
(d + 8)[0]:int = (i = (h + 12)[0]:int) << 24 | f >> 8; | |
(d + 12)[0]:int = (f = (h + 16)[0]:int) << 24 | i >> 8; | |
c = c + 16; | |
e = e + -16; | |
if (e > 18) continue L_q; | |
} | |
d = g + c; | |
b = b + c + 1; | |
label B_k: | |
if (eqz(e & 16)) goto B_r; | |
d[0]:short@1 = b[0]:ushort@1; | |
d[2]:byte = b[2]:ubyte; | |
d[3]:byte = b[3]:ubyte; | |
d[4]:byte = b[4]:ubyte; | |
d[5]:byte = b[5]:ubyte; | |
d[6]:byte = b[6]:ubyte; | |
d[7]:byte = b[7]:ubyte; | |
d[8]:byte = b[8]:ubyte; | |
d[9]:byte = b[9]:ubyte; | |
d[10]:byte = b[10]:ubyte; | |
d[11]:byte = b[11]:ubyte; | |
d[12]:byte = b[12]:ubyte; | |
d[13]:byte = b[13]:ubyte; | |
d[14]:byte = b[14]:ubyte; | |
d[15]:byte = b[15]:ubyte; | |
d = d + 16; | |
b = b + 16; | |
label B_r: | |
if (eqz(e & 8)) goto B_s; | |
d[0]:byte = b[0]:ubyte; | |
d[1]:byte = b[1]:ubyte; | |
d[2]:byte = b[2]:ubyte; | |
d[3]:byte = b[3]:ubyte; | |
d[4]:byte = b[4]:ubyte; | |
d[5]:byte = b[5]:ubyte; | |
d[6]:byte = b[6]:ubyte; | |
d[7]:byte = b[7]:ubyte; | |
d = d + 8; | |
b = b + 8; | |
label B_s: | |
if (eqz(e & 4)) goto B_t; | |
d[0]:byte = b[0]:ubyte; | |
d[1]:byte = b[1]:ubyte; | |
d[2]:byte = b[2]:ubyte; | |
d[3]:byte = b[3]:ubyte; | |
d = d + 4; | |
b = b + 4; | |
label B_t: | |
if (eqz(e & 2)) goto B_u; | |
d[0]:byte = b[0]:ubyte; | |
d[1]:byte = b[1]:ubyte; | |
d = d + 2; | |
b = b + 2; | |
label B_u: | |
if (eqz(e & 1)) goto B_d; | |
d[0]:byte = b[0]:ubyte; | |
label B_d: | |
return a; | |
} | |
function memset(a:{ a:byte, b:byte, c:byte, d:byte }, b:long_ptr, c:int):int { | |
var e:int; | |
var f:int; | |
if (eqz(c)) goto B_a; | |
a.a = b; | |
var d:{ a:int, b:int, c:int, d:int, e:int, f:int, g:int } = c + a; | |
(d + -1)[0]:byte = b; | |
if (c < 3) goto B_a; | |
a.c = b; | |
a.b = b; | |
(d + -3)[0]:byte = b; | |
(d + -2)[0]:byte = b; | |
if (c < 7) goto B_a; | |
a.d = b; | |
(d + -4)[0]:byte = b; | |
if (c < 9) goto B_a; | |
d = a + (e = 0 - a & 3); | |
d.a = (b = (b & 255) * 16843009); | |
c = d + (e = c - e & -4); | |
(c + -4)[0]:int = b; | |
if (e < 9) goto B_a; | |
d.c = b; | |
d.b = b; | |
(c + -8)[0]:int = b; | |
(c + -12)[0]:int = b; | |
if (e < 25) goto B_a; | |
d.g = b; | |
d.f = b; | |
d.e = b; | |
d.d = b; | |
(c + -16)[0]:int = b; | |
(c + -20)[0]:int = b; | |
(c + -24)[0]:int = b; | |
(c + -28)[0]:int = b; | |
c = e - (f = (d & 4) | 24); | |
if (c < 32) goto B_a; | |
var g:long = i64_extend_i32_u(b); | |
g = g << 32L | g; | |
b = d + f; | |
loop L_b { | |
b[0] = g; | |
(b + 24)[0]:long = g; | |
(b + 16)[0]:long = g; | |
(b + 8)[0]:long = g; | |
b = b + 32; | |
c = c + -32; | |
if (c > 31) continue L_b; | |
} | |
label B_a: | |
return a; | |
} | |
function runtime_interrupt_Disable(a:int, b:int):int { | |
return 0 | |
} | |
function runtime_interrupt_Restore(a:int, b:int, c:int) { | |
} | |
function Pop(a:int_ptr, b:int, c:int):int { | |
var e:int_ptr; | |
var d:int = runtime_interrupt_Disable(a, a); | |
if (eqz(a)) goto B_l; | |
if (eqz(a)) goto B_k; | |
e = a[0]; | |
if (e) goto B_m; | |
runtime_interrupt_Restore(d, a, a); | |
return 0; | |
label B_m: | |
if (eqz(a)) goto B_a; | |
if (eqz(e)) goto B_j; | |
if (eqz(e)) goto B_i; | |
if (eqz(a)) goto B_h; | |
a[0] = e[0]; | |
if (eqz(a)) goto B_g; | |
var f:int_ptr = a + 4; | |
if (eqz(f)) goto B_f; | |
if (f[0] != e) goto B_n; | |
if (eqz(a)) goto B_e; | |
a = a + 4; | |
if (eqz(a)) goto B_d; | |
a[0] = 0; | |
label B_n: | |
if (eqz(e)) goto B_c; | |
if (eqz(e)) goto B_b; | |
e[0] = 0; | |
runtime_interrupt_Restore(d, a, a); | |
return e; | |
label B_l: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_k: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_j: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_i: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_h: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_g: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_f: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_e: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_d: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_c: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_b: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_a: | |
runtime_nilPanic(a, 0); | |
return unreachable; | |
} | |
function runtime_nilPanic(a:int, b:int) { | |
var c:int; | |
runtime_runtimePanic(65749, 23, c, c); | |
} | |
function Push(a:int_ptr, b:int_ptr, c:int, d:int) { | |
var e:int = runtime_interrupt_Disable(a, a); | |
if (eqz(a)) goto B_n; | |
var f:int_ptr = a + 4; | |
if (eqz(f)) goto B_m; | |
if (eqz(f[0])) goto B_o; | |
if (eqz(a)) goto B_l; | |
f = a + 4; | |
if (eqz(f)) goto B_k; | |
f = f[0]; | |
if (eqz(f)) goto B_j; | |
if (eqz(f)) goto B_i; | |
f[0] = b; | |
label B_o: | |
if (eqz(a)) goto B_h; | |
f = a + 4; | |
if (eqz(f)) goto B_g; | |
f[0] = b; | |
if (eqz(b)) goto B_f; | |
if (eqz(b)) goto B_e; | |
b[0] = 0; | |
if (eqz(a)) goto B_d; | |
if (eqz(a)) goto B_c; | |
if (a[0]) goto B_p; | |
if (eqz(a)) goto B_b; | |
if (eqz(a)) goto B_a; | |
a[0] = b; | |
label B_p: | |
runtime_interrupt_Restore(e, a, a); | |
return ; | |
label B_n: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_m: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_l: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_k: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_j: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_i: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_h: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_g: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_f: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_e: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_d: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_c: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_b: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_a: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
} | |
function Pop_1(a:int_ptr, b:int, c:int):int { | |
var e:int_ptr; | |
var d:int = runtime_interrupt_Disable(a, a); | |
if (eqz(a)) goto B_h; | |
if (eqz(a)) goto B_g; | |
e = a[0]; | |
if (eqz(e)) goto B_i; | |
if (eqz(a)) goto B_f; | |
if (eqz(e)) goto B_e; | |
if (eqz(e)) goto B_d; | |
if (eqz(a)) goto B_c; | |
a[0] = e[0]; | |
if (eqz(e)) goto B_b; | |
if (eqz(e)) goto B_a; | |
e[0] = 0; | |
label B_i: | |
runtime_interrupt_Restore(d, a, a); | |
return e; | |
label B_h: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_g: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_f: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_e: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_d: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_c: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_b: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_a: | |
runtime_nilPanic(a, 0); | |
return unreachable; | |
} | |
function Push_1(a:int_ptr, b:int_ptr, c:int, d:int) { | |
var e:int = runtime_interrupt_Disable(a, a); | |
if (eqz(a)) goto B_f; | |
if (eqz(b)) goto B_e; | |
if (eqz(a)) goto B_d; | |
if (eqz(a)) goto B_c; | |
if (eqz(a)) goto B_b; | |
var f:int = a[0]; | |
a[0] = b; | |
if (eqz(b)) goto B_a; | |
b[0] = f; | |
runtime_interrupt_Restore(e, a, a); | |
return ; | |
label B_f: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_e: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_d: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_c: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_b: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_a: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
} | |
function Resume(a:int_ptr, b:int, c:int) { | |
if (eqz(a)) goto B_c; | |
a = a + 16; | |
if (eqz(a)) goto B_b; | |
if (eqz(a)) goto B_a; | |
a = a[0]; | |
call_indirect(a, a[0]); | |
return ; | |
label B_c: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_b: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_a: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
} | |
function getReturnPtr(a:int_ptr, b:int, c:int):int { | |
if (eqz(a)) goto B_b; | |
a = a + 4; | |
if (eqz(a)) goto B_a; | |
return a[0]; | |
label B_b: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_a: | |
runtime_nilPanic(a, 0); | |
return unreachable; | |
} | |
function returnCurrent(a:int, b:int, c:int) { | |
runtime_runqueuePushBack(a, a, a) | |
} | |
function runtime_runqueuePushBack(a:int, b:int, c:int) { | |
Push(66280, a, a, a) | |
} | |
function returnTo(a:int_ptr, b:int, c:int, d:int) { | |
if (eqz(a)) goto B_c; | |
var e:int = a + 16; | |
if (eqz(e)) goto B_b; | |
if (eqz(e)) goto B_a; | |
a[4] = b; | |
returnCurrent(a, a, a); | |
return ; | |
label B_c: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_b: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_a: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
} | |
function setReturnPtr(a:int_ptr, b:int, c:int, d:int) { | |
if (eqz(a)) goto B_b; | |
a = a + 4; | |
if (eqz(a)) goto B_a; | |
a[0] = b; | |
return ; | |
label B_b: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_a: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
} | |
function setState(a:int_ptr, b:int, c:int, d:int):int { | |
var e:int_ptr = g_a - 16; | |
g_a = e; | |
e[2] = 0; | |
if (eqz(a)) goto B_f; | |
if (a == -16) goto B_e; | |
e[2] = a[4]; | |
if (eqz(a)) goto B_d; | |
a = a + 16; | |
if (eqz(a)) goto B_c; | |
if (eqz(a)) goto B_b; | |
a[0] = b; | |
if (eqz(e + 8)) goto B_a; | |
a = e[2]; | |
g_a = e + 16; | |
return a; | |
label B_f: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_e: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_d: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_c: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_b: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_a: | |
runtime_nilPanic(a, 0); | |
return unreachable; | |
} | |
function internal_task_createTask(a:int, b:int):int { | |
var c:int_ptr; | |
c = runtime_alloc(24, c, 0); | |
var d:int = c + 16; | |
if (eqz(d)) goto B_b; | |
if (eqz(d)) goto B_a; | |
c[4] = 66016; | |
return c; | |
label B_b: | |
runtime_nilPanic(c, 0); | |
unreachable; | |
label B_a: | |
runtime_nilPanic(c, 0); | |
return unreachable; | |
} | |
function runtime_alloc(a:int, b:int, c:int):int { | |
var d:int; | |
var e:int; | |
d_b[1]:int = (d = runtime_align(a, a, a)) + (e = d_b[1]:int); | |
loop L_b { | |
if (d_b[1]:int < 0[16538]:int) goto B_a; | |
if (runtime_growHeap(a, a) & 1) continue L_b; | |
runtime_runtimePanic(65696, 13, a, a); | |
continue L_b; | |
} | |
label B_a: | |
a = 0; | |
loop L_d { | |
if (a >= d) goto B_c; | |
(e + a)[0]:int = 0; | |
a = a + 4; | |
continue L_d; | |
} | |
label B_c: | |
return e; | |
} | |
function Lock(a:int, b:int, c:int) { | |
if (eqz(a)) goto B_e; | |
if (eqz(a)) goto B_d; | |
if (eqz(a[0]:ubyte)) goto B_f; | |
if (eqz(a)) goto B_c; | |
Push_1(a + 4, c, a, a); | |
return ; | |
label B_f: | |
if (eqz(a)) goto B_a; | |
if (eqz(a)) goto B_b; | |
a[0]:byte = 1; | |
returnCurrent(c, a, a); | |
return ; | |
label B_e: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_d: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_c: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_b: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_a: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
} | |
function Unlock(a:int, b:int, c:int) { | |
var d:int; | |
if (a) goto B_a; | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_a: | |
if (eqz(a)) goto B_g; | |
if (eqz(a[0]:ubyte)) goto B_c; | |
if (eqz(a)) goto B_f; | |
d = Pop_1(a + 4, a, a); | |
if (d) goto B_b; | |
if (eqz(a)) goto B_e; | |
if (eqz(a)) goto B_d; | |
a[0]:byte = 0; | |
return ; | |
label B_g: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_f: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_e: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_d: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_c: | |
runtime_panic(34, 65536, a, 0); | |
unreachable; | |
label B_b: | |
runtime_runqueuePushBack(d, a, a); | |
} | |
function runtime_panic(a:int, b:int, c:int, d:int) { | |
runtime_printstring(65840, 7, a, a); | |
runtime_printitf(a, b, a, a); | |
runtime_printnl(a, a); | |
runtime_abort(a, a); | |
} | |
function Do(a:int, b:int, c:int, d:int, e:int) { | |
var f:int; | |
f = runtime_alloc(48, f, f); | |
f[8]:int = e; | |
f[1]:int = 1; | |
f[0]:int = 2; | |
f[7]:int = a; | |
var g:int = setState(e, f, f, f); | |
f[5]:int = b; | |
f[9]:int = g; | |
(f + 24)[0]:int = c; | |
f[10]:int = 0; | |
Lcoro_devirt_trigger(0); | |
if (a) goto B_a; | |
runtime_nilPanic(f, 0); | |
unreachable; | |
label B_a: | |
Lock(a + 4, f, e); | |
f[44]:byte = 0; | |
} | |
function Do_destroy(a:int) { | |
runtime_free(a, a, a) | |
} | |
function Do_resume(a:int_ptr) { | |
var b:int = a[7]; | |
if (eqz(b)) goto B_d; | |
a[2] = 0; | |
(a + 12)[0]:int = a[10]; | |
(a + 16)[0]:int = b + 4; | |
a[10] = a + 8; | |
b = a[7]; | |
if (eqz(b)) goto B_c; | |
if (eqz(b[0]:ubyte)) goto B_e; | |
loop L_g { | |
b = a[10]; | |
if (eqz(b)) goto B_f; | |
a[10] = b[1]:int; | |
Unlock(b[2]:int, a, a); | |
continue L_g; | |
} | |
label B_f: | |
returnTo(a[8], a[9], a, a); | |
runtime_free(a, a, a); | |
return ; | |
label B_e: | |
if (eqz(b)) goto B_a; | |
var c:int = (a + 24)[0]:int; | |
var d:int = a[5]; | |
b[0]:byte = 1; | |
if (eqz(c)) goto B_b; | |
main_main_1(d, a); | |
loop L_i { | |
b = a[10]; | |
if (eqz(b)) goto B_h; | |
a[10] = b[1]:int; | |
Unlock(b[2]:int, a, a); | |
continue L_i; | |
} | |
label B_h: | |
returnTo(a[8], a[9], a, a); | |
runtime_free(a, a, a); | |
return ; | |
label B_d: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_c: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_b: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_a: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
} | |
function Lcoro_devirt_trigger(a:int) { | |
} | |
function Error(a:{ a:int, b:int }, b:int, c:int) { | |
a.b = 14; | |
a.a = 65574; | |
} | |
function Error_1(a:{ a:int, b:int }, b:int, c:int, d:int) { | |
var e:int_ptr = g_a - 16; | |
g_a = e; | |
Error(e + 8, e, e); | |
a.a = e[2]; | |
a.b = e[3]; | |
g_a = e + 16; | |
} | |
function Error_invoke(a:{ a:int, b:int }, b:int, c:int, d:int) { | |
var e:int_ptr = g_a - 16; | |
g_a = e; | |
Error(e + 8, c, d); | |
a.a = e[2]; | |
a.b = e[3]; | |
g_a = e + 16; | |
} | |
function String(a:{ a:int, b:int }, b:int_ptr, c:int, d:int) { | |
var e:int_ptr = g_a - 16; | |
g_a = e; | |
if (b) goto B_a; | |
runtime_nilPanic(e, 0); | |
unreachable; | |
label B_a: | |
String_1(e + 8, b[0], e, e); | |
a.a = e[2]; | |
a.b = e[3]; | |
g_a = e + 16; | |
} | |
function String_1(a:{ a:int, b:int }, b:int, c:int, d:int) { | |
a.b = 1; | |
a.a = 65634; | |
} | |
function Error_2(a:{ a:int, b:int }, b:{ a:int, b:int }, c:int, d:int) { | |
var e:{ a:int, b:int, c:int, d:int } = g_a - 16; | |
g_a = e; | |
if (eqz(b)) goto B_b; | |
if (eqz(b)) goto B_a; | |
runtime_stringConcat(e + 8, 65588, 30, b.a, b.b, e, 0); | |
runtime_stringConcat(e, e.c, e.d, 65618, 16, e, 0); | |
a.a = e.a; | |
a.b = e.b; | |
g_a = e + 16; | |
return ; | |
label B_b: | |
runtime_nilPanic(e, 0); | |
unreachable; | |
label B_a: | |
runtime_nilPanic(e, 0); | |
unreachable; | |
} | |
function runtime_stringConcat(a:long_ptr, b:int, c:int, d:int, e:int, f:int, g:int) { | |
var h:int = g_a - 32; | |
g_a = h; | |
h[2]:int = b; | |
h[3]:int = c; | |
h[4]:int = d; | |
h[5]:int = e; | |
if (eqz(h + 8 | 4)) goto B_k; | |
if (h[3]:int) goto B_l; | |
a[0] = h[2]:long; | |
g_a = h + 32; | |
return ; | |
label B_l: | |
if (h + 16 == -4) goto B_a; | |
if (h[5]:int) goto B_m; | |
a[0] = h[1]:long; | |
g_a = h + 32; | |
return ; | |
label B_m: | |
if (h + 8 == -4) goto B_b; | |
if (h + 16 == -4) goto B_j; | |
d = h[3]:int + h[5]:int; | |
e = runtime_alloc(d, h, h); | |
if (eqz(h + 8)) goto B_i; | |
if (h + 8 == -4) goto B_h; | |
e = memcpy(e, h[2]:int, h[3]:int); | |
if (eqz(h + 8 | 4)) goto B_g; | |
if (eqz(h + 16)) goto B_f; | |
if (h + 16 == -4) goto B_e; | |
memcpy(e + h[3]:int, h[4]:int, h[5]:int); | |
h[3]:long = 0L; | |
if (eqz(h + 24)) goto B_d; | |
h[6]:int = e; | |
if (eqz(h + 24 | 4)) goto B_c; | |
h[7]:int = d; | |
a[0] = h[3]:long; | |
g_a = h + 32; | |
return ; | |
label B_k: | |
runtime_nilPanic(h, 0); | |
unreachable; | |
label B_j: | |
runtime_nilPanic(h, 0); | |
unreachable; | |
label B_i: | |
runtime_nilPanic(h, 0); | |
unreachable; | |
label B_h: | |
runtime_nilPanic(h, 0); | |
unreachable; | |
label B_g: | |
runtime_nilPanic(h, 0); | |
unreachable; | |
label B_f: | |
runtime_nilPanic(h, 0); | |
unreachable; | |
label B_e: | |
runtime_nilPanic(h, 0); | |
unreachable; | |
label B_d: | |
runtime_nilPanic(h, 0); | |
unreachable; | |
label B_c: | |
runtime_nilPanic(h, 0); | |
unreachable; | |
label B_b: | |
runtime_nilPanic(h, 0); | |
unreachable; | |
label B_a: | |
runtime_nilPanic(h, 0); | |
unreachable; | |
} | |
function String_invoke(a:{ a:int, b:int }, b:int, c:int, d:int) { | |
var e:int_ptr = g_a - 16; | |
g_a = e; | |
String_1(e + 8, b, c, d); | |
a.a = e[2]; | |
a.b = e[3]; | |
g_a = e + 16; | |
} | |
function Error_3(a:{ a:int, b:int }, b:{ a:int, b:int }, c:int, d:int) { | |
var e:{ a:int, b:int, c:int, d:int } = g_a - 16; | |
g_a = e; | |
if (eqz(b)) goto B_b; | |
if (eqz(b)) goto B_a; | |
runtime_stringConcat(e + 8, 65635, 31, b.a, b.b, e, 0); | |
runtime_stringConcat(e, e.c, e.d, 65666, 16, e, 0); | |
a.a = e.a; | |
a.b = e.b; | |
g_a = e + 16; | |
return ; | |
label B_b: | |
runtime_nilPanic(e, 0); | |
unreachable; | |
label B_a: | |
runtime_nilPanic(e, 0); | |
unreachable; | |
} | |
function runtime_align(a:int, b:int, c:int):int { | |
return a + 3 & -4 | |
} | |
function runtime_growHeap(a:int, b:int):int { | |
var c:int; | |
if (memory_grow(memory_size()) != -1) goto B_a; | |
return 0; | |
label B_a: | |
runtime_setHeapEnd(memory_size() << 16, c, c); | |
return 1; | |
} | |
function runtime_runtimePanic(a:int, b:int, c:int, d:int) { | |
runtime_printstring(65709, 22, a, a); | |
runtime_printstring(a, b, a, 0); | |
runtime_printnl(a, 0); | |
runtime_abort(a, a); | |
} | |
function runtime_setHeapEnd(a:int, b:int, c:int) { | |
0[16538]:int = a | |
} | |
function runtime_printstring(a:int, b:int, c:int, d:int) { | |
var e:int = 0; | |
loop L_b { | |
if (e >= b) goto B_a; | |
runtime_putchar((a + e)[0]:ubyte, e, e); | |
e = e + 1; | |
continue L_b; | |
} | |
label B_a: | |
} | |
function runtime_printnl(a:int, b:int) { | |
var c:int; | |
runtime_putchar(13, c, c); | |
runtime_putchar(10, c, c); | |
} | |
function runtime_abort(a:int, b:int) { | |
unreachable | |
} | |
function runtime_putchar(a:int, b:int, c:int) { | |
var d:int; | |
d = 0[16539]:int; | |
if (d <= 119) goto B_a; | |
runtime_lookupPanic(a, 0); | |
unreachable; | |
label B_a: | |
(d + 66160)[0]:byte = a; | |
0[16539]:int = 0[16539]:int + 1; | |
if ((a & 255) == 10) goto B_c; | |
if (0[16539]:int <= 119) goto B_b; | |
label B_c: | |
d_b[8]:int = 0[16539]:int; | |
runtime_fd_write(1, 66052, 1, 66288); | |
0[16539]:int = 0; | |
label B_b: | |
} | |
function runtime_lookupPanic(a:int, b:int) { | |
var c:int; | |
runtime_runtimePanic(65731, 18, c, c); | |
} | |
function runtime_init_1(a:int, b:int) { | |
var c:int_ptr; | |
var d:int; | |
var e:int; | |
var f:int; | |
var g:int; | |
var h:int; | |
c = runtime_alloc(4, c, 0); | |
runtime_args_sizes_get(c, d = runtime_alloc(4, c, 0)); | |
if (eqz(c[0])) goto B_f; | |
if (0) goto B_h; | |
if (0) goto B_h; | |
e = c[0]; | |
if (e >= 0) goto B_g; | |
label B_h: | |
runtime_slicePanic(c, 0); | |
unreachable; | |
label B_g: | |
f = runtime_alloc(e << 2, c, 0); | |
if (0) goto B_e; | |
if (0) goto B_e; | |
d = d[0]:int; | |
if (d <= -1) goto B_e; | |
g = runtime_alloc(d, c, 0); | |
if (eqz(e)) goto B_d; | |
if (eqz(d)) goto B_c; | |
runtime_args_get(f, g); | |
if (0) goto B_b; | |
if (0) goto B_b; | |
c = c[0]; | |
if (c <= -1) goto B_b; | |
d = runtime_alloc(c << 3, c, 0); | |
d_b[4]:int = c; | |
d_b[3]:int = c; | |
d_b[2]:int = d; | |
g = 0; | |
c = 0; | |
h = 0; | |
goto B_a; | |
label B_f: | |
return ; | |
label B_e: | |
runtime_slicePanic(c, 0); | |
unreachable; | |
label B_d: | |
runtime_lookupPanic(c, 0); | |
unreachable; | |
label B_c: | |
runtime_lookupPanic(c, 0); | |
unreachable; | |
label B_b: | |
runtime_slicePanic(c, 0); | |
unreachable; | |
label B_a: | |
loop L_k { | |
if (c >= e) goto B_m; | |
if (c < e) goto B_l; | |
runtime_lookupPanic(c, 0); | |
unreachable; | |
label B_m: | |
return ; | |
label B_l: | |
var i:int = (f + g)[0]:int; | |
var j:int = strlen(i); | |
d = runtime_alloc(8, c, 0); | |
if (d == -4) goto B_n; | |
d[1]:int = j; | |
if (eqz(d)) goto B_j; | |
d[0]:int = i; | |
if (c >= d_b[3]:int) goto B_i; | |
(d_b[2]:int + h)[0]:long@4 = d[0]:long@4; | |
g = g + 4; | |
c = c + 1; | |
h = h + 8; | |
continue L_k; | |
label B_n: | |
} | |
runtime_nilPanic(c, 0); | |
unreachable; | |
label B_j: | |
runtime_nilPanic(c, 0); | |
unreachable; | |
label B_i: | |
runtime_lookupPanic(c, 0); | |
unreachable; | |
} | |
function runtime_slicePanic(a:int, b:int) { | |
var c:int; | |
runtime_runtimePanic(65772, 18, c, c); | |
} | |
function runtime_chanDebug(a:int, b:int, c:int) { | |
} | |
function runtime_printptr(a:int, b:int, c:int) { | |
var e:int; | |
if (eqz(a)) goto B_a; | |
runtime_putchar(48, a, a); | |
runtime_putchar(120, a, a); | |
var d:int = 0; | |
loop L_b { | |
if (d > 7) goto B_d; | |
e = a >> 28; | |
if (e > 9) goto B_e; | |
runtime_putchar(e | 48, a, a); | |
goto B_c; | |
label B_e: | |
runtime_putchar(e + 87, a, a); | |
goto B_c; | |
label B_d: | |
return ; | |
label B_c: | |
d = d + 1; | |
a = a << 4; | |
continue L_b; | |
} | |
label B_a: | |
runtime_printstring(65790, 3, a, 0); | |
} | |
function detach(a:int, b:int, c:int) { | |
var e:int_ptr; | |
var g:int; | |
var h:int; | |
var k:int; | |
var f:{ a:int, b:int } | |
var i:int; | |
var j:int; | |
var d:int = g_a - 32; | |
g_a = d; | |
if (a) goto B_a; | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_a: | |
e = a + 12; | |
if (eqz(e)) goto B_e; | |
if (e[0]) goto B_f; | |
g_a = d + 32; | |
return ; | |
label B_f: | |
d[3]:long = 0L; | |
d[2]:long = 0L; | |
d[1]:long = 0L; | |
if (eqz(a)) goto B_c; | |
f = a + 12; | |
if (eqz(f)) goto B_d; | |
g = f.b; | |
h = f.a; | |
i = d + 8 == -4; | |
j = d + 8 == -8; | |
e = 0; | |
k = 0; | |
goto B_b; | |
label B_e: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_d: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_c: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_b: | |
loop L_g { | |
if (e >= g) goto B_i; | |
if (e < g) goto B_h; | |
runtime_lookupPanic(d, 0); | |
unreachable; | |
label B_i: | |
g_a = d + 32; | |
return ; | |
label B_h: | |
var l:int = h + k; | |
var m:long = l[0]:long@4; | |
var n:long = l[2]:long@4; | |
d[3]:long = l[4]:long@4; | |
d[2]:long = n; | |
d[1]:long = m; | |
if (eqz(a)) goto B_kb; | |
if (eqz(f)) goto B_jb; | |
if (e >= f.b) goto B_ib; | |
if (a - f.a == k) goto B_j; | |
if (i) goto B_k; | |
if (eqz(d[3]:int)) goto B_j; | |
if (j) goto B_hb; | |
l = d[4]:int; | |
if (eqz(l)) goto B_gb; | |
if (eqz(l)) goto B_fb; | |
var o:int_ptr = l[0]:int; | |
if (eqz(o)) goto B_eb; | |
var p:int = d + 8 != -8; | |
if (eqz(p)) goto B_db; | |
l = d[4]:int; | |
if (eqz(l)) goto B_cb; | |
if (eqz(l)) goto B_bb; | |
l = l[0]:int; | |
if (eqz(l)) goto B_ab; | |
l = l + 12; | |
if (eqz(l)) goto B_za; | |
if (eqz(a)) goto B_ya; | |
if (eqz(f)) goto B_xa; | |
if (e >= f.b) goto B_wa; | |
l = remove(l[0]:int, f.a + k, d, d); | |
o = o + 12; | |
if (eqz(o)) goto B_va; | |
o[0] = l; | |
if (eqz(p)) goto B_ua; | |
l = d[4]:int; | |
if (eqz(l)) goto B_ta; | |
if (eqz(l)) goto B_sa; | |
l = l[0]:int; | |
if (eqz(l)) goto B_ra; | |
l = l + 12; | |
if (eqz(l)) goto B_qa; | |
if (l[0]:int) goto B_lb; | |
if (j) goto B_pa; | |
l = d[4]:int; | |
if (eqz(l)) goto B_oa; | |
l = l + 4; | |
if (eqz(l)) goto B_na; | |
if (l[0]:int) goto B_mb; | |
if (j) goto B_ma; | |
l = d[4]:int; | |
if (eqz(l)) goto B_la; | |
if (eqz(l)) goto B_ka; | |
l = l[0]:int; | |
if (eqz(l)) goto B_ja; | |
l = l + 8; | |
if (eqz(l)) goto B_ia; | |
if (l[0]:ubyte == 4) goto B_lb; | |
if (j) goto B_ha; | |
l = d[4]:int; | |
if (eqz(l)) goto B_ga; | |
if (eqz(l)) goto B_fa; | |
l = l[0]:int; | |
if (eqz(l)) goto B_ea; | |
l = l + 8; | |
if (eqz(l)) goto B_da; | |
l[0]:byte = 0; | |
goto B_lb; | |
label B_mb: | |
if (j) goto B_l; | |
l = d[4]:int; | |
if (eqz(l)) goto B_ca; | |
if (eqz(l)) goto B_ba; | |
l = l[0]:int; | |
if (eqz(l)) goto B_aa; | |
l = l + 24; | |
if (eqz(l)) goto B_z; | |
if (l[0]:int) goto B_nb; | |
if (j) goto B_y; | |
l = d[4]:int; | |
if (eqz(l)) goto B_x; | |
if (eqz(l)) goto B_w; | |
l = l[0]:int; | |
if (eqz(l)) goto B_v; | |
l = l + 8; | |
if (eqz(l)) goto B_u; | |
l[0]:byte = 0; | |
goto B_lb; | |
label B_nb: | |
if (j) goto B_m; | |
l = d[4]:int; | |
if (eqz(l)) goto B_t; | |
if (eqz(l)) goto B_s; | |
l = l[0]:int; | |
if (eqz(l)) goto B_r; | |
l = l + 8; | |
if (eqz(l)) goto B_q; | |
l[0]:byte = 3; | |
label B_lb: | |
if (j) goto B_p; | |
l = d[4]:int; | |
if (eqz(l)) goto B_o; | |
if (eqz(l)) goto B_n; | |
runtime_chanDebug(l[0]:int, d, d); | |
goto B_j; | |
label B_kb: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_jb: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_ib: | |
runtime_lookupPanic(d, 0); | |
unreachable; | |
label B_hb: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_gb: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_fb: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_eb: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_db: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_cb: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_bb: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_ab: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_za: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_ya: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_xa: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_wa: | |
runtime_lookupPanic(d, 0); | |
unreachable; | |
label B_va: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_ua: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_ta: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_sa: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_ra: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_qa: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_pa: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_oa: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_na: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_ma: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_la: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_ka: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_ja: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_ia: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_ha: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_ga: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_fa: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_ea: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_da: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_ca: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_ba: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_aa: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_z: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_y: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_x: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_w: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_v: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_u: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_t: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_s: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_r: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_q: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_p: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_o: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_n: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_m: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_l: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_k: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_j: | |
e = e + 1; | |
k = k + 24; | |
continue L_g; | |
} | |
} | |
function remove(a:int_ptr, b:int_ptr, c:int, d:int):int { | |
var e:int_ptr; | |
if (a != b) goto B_c; | |
if (a) goto B_b; | |
runtime_nilPanic(e, 0); | |
unreachable; | |
label B_c: | |
e = a; | |
loop L_f { | |
if (eqz(e)) goto B_a; | |
if (e) goto B_g; | |
runtime_nilPanic(e, 0); | |
unreachable; | |
label B_g: | |
if (eqz(e)) goto B_h; | |
if (e[0] == b) goto B_a; | |
if (eqz(e)) goto B_e; | |
if (eqz(e)) goto B_d; | |
e = e[0]; | |
continue L_f; | |
label B_h: | |
} | |
runtime_nilPanic(e, 0); | |
unreachable; | |
label B_e: | |
runtime_nilPanic(e, 0); | |
unreachable; | |
label B_d: | |
runtime_nilPanic(e, 0); | |
unreachable; | |
label B_b: | |
if (eqz(a)) goto B_i; | |
return a[0]; | |
label B_i: | |
runtime_nilPanic(e, 0); | |
unreachable; | |
label B_a: | |
if (eqz(e)) goto B_m; | |
if (e) goto B_n; | |
runtime_nilPanic(e, 0); | |
unreachable; | |
label B_n: | |
if (eqz(b)) goto B_l; | |
if (eqz(b)) goto B_k; | |
if (eqz(e)) goto B_j; | |
e[0] = b[0]; | |
label B_m: | |
return a; | |
label B_l: | |
runtime_nilPanic(e, 0); | |
unreachable; | |
label B_k: | |
runtime_nilPanic(e, 0); | |
unreachable; | |
label B_j: | |
runtime_nilPanic(e, 0); | |
return unreachable; | |
} | |
function pop(a:int_ptr, b:int, c:int, d:int):int { | |
if (eqz(a)) goto B_x; | |
var e:int_ptr = a + 24; | |
if (eqz(e)) goto B_w; | |
if (e[0]) goto B_y; | |
return 0; | |
label B_y: | |
if (eqz(a)) goto B_a; | |
if (a == -28) goto B_v; | |
if (eqz(a)) goto B_u; | |
if (eqz(a)) goto B_t; | |
if (eqz(a)) goto B_s; | |
if (a == -20) goto B_r; | |
if (eqz(a)) goto B_q; | |
if (eqz(a)) goto B_p; | |
memcpy(b, e = a[7] + a[0] * a[5], a[0]); | |
if (eqz(a)) goto B_o; | |
if (eqz(a)) goto B_n; | |
memset(e, 0, a[0]); | |
if (eqz(a)) goto B_m; | |
e = a + 24; | |
if (eqz(e)) goto B_l; | |
if (eqz(e)) goto B_k; | |
a[6] = e[0] + -1; | |
if (eqz(a)) goto B_j; | |
e = a + 20; | |
if (eqz(e)) goto B_i; | |
if (eqz(e)) goto B_h; | |
a[5] = e[0] + 1; | |
if (eqz(a)) goto B_g; | |
if (a == -20) goto B_f; | |
if (eqz(a)) goto B_e; | |
e = a + 4; | |
if (eqz(e)) goto B_d; | |
if (a[5] != e[0]) goto B_z; | |
if (eqz(a)) goto B_c; | |
a = a + 20; | |
if (eqz(a)) goto B_b; | |
a[0] = 0; | |
label B_z: | |
return 1; | |
label B_x: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_w: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_v: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_u: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_t: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_s: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_r: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_q: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_p: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_o: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_n: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_m: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_l: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_k: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_j: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_i: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_h: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_g: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_f: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_e: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_d: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_c: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_b: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_a: | |
runtime_nilPanic(a, 0); | |
return unreachable; | |
} | |
function push(a:int_ptr, b:int, c:int, d:int):int { | |
if (eqz(a)) goto B_z; | |
var e:int_ptr = a + 4; | |
if (eqz(e)) goto B_y; | |
if (e[0]) goto B_aa; | |
return 0; | |
label B_aa: | |
if (eqz(a)) goto B_a; | |
if (a == -24) goto B_x; | |
if (eqz(a)) goto B_w; | |
e = a + 4; | |
if (eqz(e)) goto B_v; | |
if (a[6] != e[0]) goto B_ba; | |
return 0; | |
label B_ba: | |
if (eqz(a)) goto B_b; | |
if (a == -28) goto B_u; | |
if (eqz(a)) goto B_t; | |
if (eqz(a)) goto B_s; | |
if (eqz(a)) goto B_r; | |
if (a == -16) goto B_q; | |
if (eqz(a)) goto B_p; | |
if (eqz(a)) goto B_o; | |
memcpy(a[7] + a[0] * a[4], b, a[0]); | |
if (eqz(a)) goto B_n; | |
e = a + 24; | |
if (eqz(e)) goto B_m; | |
if (eqz(e)) goto B_l; | |
a[6] = e[0] + 1; | |
if (eqz(a)) goto B_k; | |
e = a + 16; | |
if (eqz(e)) goto B_j; | |
if (eqz(e)) goto B_i; | |
a[4] = e[0] + 1; | |
if (eqz(a)) goto B_h; | |
if (a == -16) goto B_g; | |
if (eqz(a)) goto B_f; | |
e = a + 4; | |
if (eqz(e)) goto B_e; | |
if (a[4] != e[0]) goto B_ca; | |
if (eqz(a)) goto B_d; | |
a = a + 16; | |
if (eqz(a)) goto B_c; | |
a[0] = 0; | |
label B_ca: | |
return 1; | |
label B_z: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_y: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_x: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_w: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_v: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_u: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_t: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_s: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_r: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_q: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_p: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_o: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_n: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_m: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_l: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_k: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_j: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_i: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_h: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_g: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_f: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_e: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_d: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_c: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_b: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_a: | |
runtime_nilPanic(a, 0); | |
return unreachable; | |
} | |
function resumeRX(a:int, b:int_ptr, c:int, d:int):int { | |
var e:int_ptr; | |
var f:int_ptr; | |
if (eqz(a)) goto B_s; | |
if (eqz(a)) goto B_r; | |
if (a == -12) goto B_q; | |
if (eqz(a)) goto B_p; | |
e = a + 12; | |
if (eqz(e)) goto B_o; | |
f = e[0]; | |
if (eqz(f)) goto B_n; | |
if (eqz(f)) goto B_m; | |
var g:int_ptr = a + 12; | |
if (eqz(g)) goto B_l; | |
e = a[3]:int; | |
g[0] = f[0]; | |
if (eqz(e)) goto B_k; | |
f = e + 4; | |
if (eqz(f)) goto B_j; | |
f = f[0]; | |
if (eqz(f)) goto B_i; | |
f = f + 4; | |
if (eqz(f)) goto B_h; | |
f = f[0]; | |
if (b & 1) goto B_a; | |
if (eqz(a)) goto B_b; | |
if (eqz(a)) goto B_g; | |
memset(f, 0, a[0]:int); | |
if (eqz(e)) goto B_f; | |
a = e + 4; | |
if (eqz(a)) goto B_e; | |
a = a[0]:int; | |
if (eqz(a)) goto B_d; | |
a = a + 8; | |
if (eqz(a)) goto B_c; | |
a[0]:long = 0L; | |
goto B_a; | |
label B_s: | |
runtime_nilPanic(e, 0); | |
unreachable; | |
label B_r: | |
runtime_nilPanic(e, 0); | |
unreachable; | |
label B_q: | |
runtime_nilPanic(e, 0); | |
unreachable; | |
label B_p: | |
runtime_nilPanic(e, 0); | |
unreachable; | |
label B_o: | |
runtime_nilPanic(e, 0); | |
unreachable; | |
label B_n: | |
runtime_nilPanic(e, 0); | |
unreachable; | |
label B_m: | |
runtime_nilPanic(e, 0); | |
unreachable; | |
label B_l: | |
runtime_nilPanic(e, 0); | |
unreachable; | |
label B_k: | |
runtime_nilPanic(e, 0); | |
unreachable; | |
label B_j: | |
runtime_nilPanic(e, 0); | |
unreachable; | |
label B_i: | |
runtime_nilPanic(e, 0); | |
unreachable; | |
label B_h: | |
runtime_nilPanic(e, 0); | |
unreachable; | |
label B_g: | |
runtime_nilPanic(e, 0); | |
unreachable; | |
label B_f: | |
runtime_nilPanic(e, 0); | |
unreachable; | |
label B_e: | |
runtime_nilPanic(e, 0); | |
unreachable; | |
label B_d: | |
runtime_nilPanic(e, 0); | |
unreachable; | |
label B_c: | |
runtime_nilPanic(e, 0); | |
unreachable; | |
label B_b: | |
runtime_nilPanic(e, 0); | |
unreachable; | |
label B_a: | |
if (eqz(e)) goto B_ca; | |
a = e + 8; | |
if (eqz(a)) goto B_ba; | |
if (eqz(a[0]:int)) goto B_da; | |
if (eqz(e)) goto B_aa; | |
a = e + 4; | |
if (eqz(a)) goto B_z; | |
a = a[0]:int; | |
if (eqz(a)) goto B_y; | |
if (eqz(e)) goto B_x; | |
b = e + 8; | |
if (eqz(b)) goto B_w; | |
a = a + 4; | |
if (eqz(a)) goto B_v; | |
a[0]:int = b[0]; | |
detach(e, e, e); | |
label B_da: | |
if (eqz(e)) goto B_u; | |
e = e + 4; | |
if (eqz(e)) goto B_t; | |
Push(66280, e[0], e, e); | |
return f; | |
label B_ca: | |
runtime_nilPanic(e, 0); | |
unreachable; | |
label B_ba: | |
runtime_nilPanic(e, 0); | |
unreachable; | |
label B_aa: | |
runtime_nilPanic(e, 0); | |
unreachable; | |
label B_z: | |
runtime_nilPanic(e, 0); | |
unreachable; | |
label B_y: | |
runtime_nilPanic(e, 0); | |
unreachable; | |
label B_x: | |
runtime_nilPanic(e, 0); | |
unreachable; | |
label B_w: | |
runtime_nilPanic(e, 0); | |
unreachable; | |
label B_v: | |
runtime_nilPanic(e, 0); | |
unreachable; | |
label B_u: | |
runtime_nilPanic(e, 0); | |
unreachable; | |
label B_t: | |
runtime_nilPanic(e, 0); | |
return unreachable; | |
} | |
function resumeTX(a:int_ptr, b:int, c:int):int { | |
if (eqz(a)) goto B_z; | |
if (eqz(a)) goto B_y; | |
if (a == -12) goto B_x; | |
if (eqz(a)) goto B_w; | |
var d:int_ptr = a + 12; | |
if (eqz(d)) goto B_v; | |
d = d[0]; | |
if (eqz(d)) goto B_u; | |
if (eqz(d)) goto B_t; | |
var e:int_ptr = a + 12; | |
if (eqz(e)) goto B_s; | |
a = a[3]; | |
e[0] = d[0]; | |
if (eqz(a)) goto B_r; | |
d = a + 4; | |
if (eqz(d)) goto B_q; | |
d = d[0]; | |
if (eqz(d)) goto B_p; | |
e = d + 4; | |
if (eqz(e)) goto B_o; | |
if (eqz(a)) goto B_n; | |
d = a + 8; | |
if (eqz(d)) goto B_m; | |
if (d[0]) goto B_ba; | |
d = e[0]; | |
goto B_aa; | |
label B_ba: | |
if (eqz(a)) goto B_a; | |
d = a + 8; | |
if (eqz(d)) goto B_l; | |
d = d[0]; | |
if (eqz(d)) goto B_k; | |
d = d + 4; | |
if (eqz(d)) goto B_j; | |
if (eqz(a)) goto B_i; | |
e = a + 4; | |
if (eqz(e)) goto B_h; | |
e = e[0]; | |
if (eqz(e)) goto B_g; | |
if (eqz(a)) goto B_f; | |
var f:int_ptr = a + 8; | |
if (eqz(f)) goto B_e; | |
e = e + 4; | |
if (eqz(e)) goto B_d; | |
d = d[0]; | |
e[0] = f[0]; | |
detach(a, a, a); | |
label B_aa: | |
if (eqz(a)) goto B_c; | |
a = a + 4; | |
if (eqz(a)) goto B_b; | |
Push(66280, a[0], a, a); | |
return d; | |
label B_z: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_y: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_x: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_w: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_v: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_u: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_t: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_s: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_r: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_q: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_p: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_o: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_n: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_m: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_l: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_k: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_j: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_i: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_h: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_g: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_f: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_e: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_d: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_c: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_b: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_a: | |
runtime_nilPanic(a, 0); | |
return unreachable; | |
} | |
function tryRecv(a:short_ptr, b:int, c:int, d:int, e:int) { | |
var g:int; | |
var f:int; | |
if (eqz(b)) goto B_d; | |
f = runtime_interrupt_Disable(b, b); | |
if (b) goto B_e; | |
runtime_nilPanic(b, 0); | |
unreachable; | |
label B_e: | |
g = b + 8; | |
if (eqz(g)) goto B_c; | |
g = g[0]:ubyte; | |
if (g != 3) goto B_b; | |
goto B_a; | |
label B_d: | |
a[0] = 0; | |
return ; | |
label B_c: | |
runtime_nilPanic(b, 0); | |
unreachable; | |
label B_b: | |
if (g == 2) goto B_a; | |
if (g == 1) goto B_h; | |
if (eqz(g)) goto B_h; | |
if (g != 4) goto B_j; | |
if (pop(b, c, b, b) & 1) goto B_g; | |
if (b) goto B_i; | |
runtime_nilPanic(b, 0); | |
unreachable; | |
label B_j: | |
runtime_runtimePanic(65793, 21, b, b); | |
runtime_runtimePanic(65814, 11, b, b); | |
a[0] = 0; | |
return ; | |
label B_i: | |
if (eqz(b)) goto B_f; | |
memset(c, 0, b[0]:int); | |
runtime_interrupt_Restore(f, b, b); | |
a[0] = 1; | |
return ; | |
label B_h: | |
runtime_interrupt_Restore(f, b, b); | |
a[0] = 0; | |
return ; | |
label B_g: | |
runtime_interrupt_Restore(f, b, b); | |
a[0] = 257; | |
return ; | |
label B_f: | |
runtime_nilPanic(b, 0); | |
unreachable; | |
label B_a: | |
if (eqz(pop(b, c, b, b) & 1)) goto B_ca; | |
if (b) goto B_da; | |
runtime_nilPanic(b, 0); | |
unreachable; | |
label B_da: | |
c = b + 12; | |
if (eqz(c)) goto B_ba; | |
if (eqz(c[0]:int)) goto B_ea; | |
push(b, resumeTX(b, b, b), b, b); | |
if (eqz(b)) goto B_aa; | |
c = b + 12; | |
if (eqz(c)) goto B_z; | |
if (c[0]:int) goto B_ea; | |
if (eqz(b)) goto B_y; | |
c = b + 8; | |
if (eqz(c)) goto B_x; | |
c[0]:byte = 3; | |
label B_ea: | |
if (eqz(b)) goto B_w; | |
c = b + 24; | |
if (eqz(c)) goto B_v; | |
if (c[0]:int) goto B_fa; | |
if (eqz(b)) goto B_u; | |
b = b + 8; | |
if (eqz(b)) goto B_t; | |
b[0]:byte = 0; | |
label B_fa: | |
runtime_interrupt_Restore(f, b, b); | |
a[0] = 257; | |
return ; | |
label B_ca: | |
if (eqz(b)) goto B_l; | |
g = b + 12; | |
if (eqz(g)) goto B_s; | |
if (eqz(g[0]:int)) goto B_k; | |
g = resumeTX(b, b, b); | |
if (eqz(b)) goto B_r; | |
if (eqz(b)) goto B_q; | |
memcpy(c, g, b[0]:int); | |
if (eqz(b)) goto B_p; | |
c = b + 12; | |
if (eqz(c)) goto B_o; | |
if (c[0]:int) goto B_ga; | |
if (eqz(b)) goto B_n; | |
b = b + 8; | |
if (eqz(b)) goto B_m; | |
b[0]:byte = 0; | |
label B_ga: | |
runtime_interrupt_Restore(f, b, b); | |
a[0] = 257; | |
return ; | |
label B_ba: | |
runtime_nilPanic(b, 0); | |
unreachable; | |
label B_aa: | |
runtime_nilPanic(b, 0); | |
unreachable; | |
label B_z: | |
runtime_nilPanic(b, 0); | |
unreachable; | |
label B_y: | |
runtime_nilPanic(b, 0); | |
unreachable; | |
label B_x: | |
runtime_nilPanic(b, 0); | |
unreachable; | |
label B_w: | |
runtime_nilPanic(b, 0); | |
unreachable; | |
label B_v: | |
runtime_nilPanic(b, 0); | |
unreachable; | |
label B_u: | |
runtime_nilPanic(b, 0); | |
unreachable; | |
label B_t: | |
runtime_nilPanic(b, 0); | |
unreachable; | |
label B_s: | |
runtime_nilPanic(b, 0); | |
unreachable; | |
label B_r: | |
runtime_nilPanic(b, 0); | |
unreachable; | |
label B_q: | |
runtime_nilPanic(b, 0); | |
unreachable; | |
label B_p: | |
runtime_nilPanic(b, 0); | |
unreachable; | |
label B_o: | |
runtime_nilPanic(b, 0); | |
unreachable; | |
label B_n: | |
runtime_nilPanic(b, 0); | |
unreachable; | |
label B_m: | |
runtime_nilPanic(b, 0); | |
unreachable; | |
label B_l: | |
runtime_nilPanic(b, 0); | |
unreachable; | |
label B_k: | |
runtime_interrupt_Restore(f, b, b); | |
a[0] = 0; | |
} | |
function runtime_deadlock(a:int, b:int) { | |
var c:{ a:int, b:int, c:byte } | |
c = runtime_alloc(12, c, c); | |
c.b = 3; | |
c.a = 4; | |
setState(b, c, c, c); | |
c.c = 0; | |
Lcoro_devirt_trigger(0); | |
} | |
function runtime_deadlock_destroy(a:int) { | |
Lcoro_devirt_trigger(0); | |
runtime_free(a, a, a); | |
} | |
function runtime_deadlock_resume(a:int) { | |
var b:int; | |
Lcoro_devirt_trigger(0); | |
runtime_panic(34, 65832, b, 0); | |
unreachable; | |
} | |
function runtime_printitf(a:int, b:int, c:int, d:int) { | |
var g:int; | |
var i:int; | |
var e:int_ptr = g_a - 32; | |
g_a = e; | |
var f:{ a:int, b:int } = 0; | |
g = a == 2; | |
if (eqz(g)) goto B_a; | |
f = b; | |
label B_a: | |
if (eqz(g)) goto B_c; | |
runtime_printbool(f, a, 0); | |
goto B_b; | |
label B_c: | |
if (1) goto B_d; | |
runtime_printint32(0, a, 0); | |
goto B_b; | |
label B_d: | |
if (1) goto B_e; | |
runtime_printint8(0, a, 0); | |
goto B_b; | |
label B_e: | |
if (1) goto B_f; | |
runtime_printint16(0, a, 0); | |
goto B_b; | |
label B_f: | |
if (1) goto B_g; | |
runtime_printint32(0, a, 0); | |
goto B_b; | |
label B_g: | |
if (1) goto B_h; | |
runtime_printint64(0L, a, 0); | |
goto B_b; | |
label B_h: | |
if (1) goto B_i; | |
runtime_printuint32(0, a, 0); | |
goto B_b; | |
label B_i: | |
f = 0; | |
if (a != 16) goto B_j; | |
f = b; | |
label B_j: | |
if (a != 16) goto B_k; | |
runtime_printuint8(f, a, 0); | |
goto B_b; | |
label B_k: | |
if (1) goto B_l; | |
runtime_printuint16(0, a, 0); | |
goto B_b; | |
label B_l: | |
f = 0; | |
if (a != 20) goto B_m; | |
f = b; | |
label B_m: | |
if (a != 20) goto B_n; | |
runtime_printuint32(f, a, 0); | |
goto B_b; | |
label B_n: | |
var h:long = 0L; | |
if (a != 22) goto B_o; | |
h = b[0]:long; | |
label B_o: | |
if (a != 22) goto B_p; | |
runtime_printuint64(h, a, 0); | |
goto B_b; | |
label B_p: | |
f = 0; | |
if (a != 24) goto B_q; | |
f = b; | |
label B_q: | |
if (a != 24) goto B_r; | |
runtime_printptr(f, a, 0); | |
goto B_b; | |
label B_r: | |
if (1) goto B_s; | |
runtime_printfloat32(0.0f, a, 0); | |
goto B_b; | |
label B_s: | |
if (1) goto B_t; | |
runtime_printfloat64(0.0, a, 0); | |
goto B_b; | |
label B_t: | |
if (1) goto B_u; | |
runtime_printcomplex64(0.0f, 0.0f, a, 0); | |
goto B_b; | |
label B_u: | |
if (1) goto B_v; | |
runtime_printcomplex128(0.0, 0.0, a, 0); | |
goto B_b; | |
label B_v: | |
f = 0; | |
g = 0; | |
if (a != 34) goto B_w; | |
g = b[1]:int; | |
f = b[0]:int; | |
label B_w: | |
if (a != 34) goto B_x; | |
runtime_printstring(f, g, a, 0); | |
goto B_b; | |
label B_x: | |
f = 0; | |
g = 0; | |
i = error_typeassert(a) & 1; | |
if (eqz(i)) goto B_y; | |
f = a; | |
g = b; | |
label B_y: | |
if (eqz(i)) goto B_z; | |
Error_4(e, g, a, a, f, 0); | |
runtime_printstring(e[0], e[1], a, 0); | |
goto B_b; | |
label B_z: | |
f = 0; | |
g = 0; | |
i = runtime_stringer_typeassert(a) & 1; | |
if (eqz(i)) goto B_aa; | |
f = a; | |
g = b; | |
label B_aa: | |
if (eqz(i)) goto B_ba; | |
String_2(e + 8, g, a, a, f, 0); | |
runtime_printstring(e[2], e[3], a, 0); | |
goto B_b; | |
label B_ba: | |
f = runtime_alloc(8, a, 0); | |
f.b = b; | |
f.a = a; | |
e[6] = a; | |
e[7] = b; | |
runtime_putchar(40, a, a); | |
if (eqz(e + 24)) goto B_da; | |
runtime_printuint32(e[6], a, a); | |
runtime_putchar(58, a, a); | |
if (e + 24 != -4) goto B_ca; | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_da: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_ca: | |
runtime_printptr(e[7], a, 0); | |
runtime_putchar(41, a, a); | |
label B_b: | |
g_a = e + 32; | |
} | |
function runtime_printbool(a:int, b:int, c:int) { | |
if (eqz(a & 1)) goto B_a; | |
runtime_printstring(65873, 4, a, a); | |
return ; | |
label B_a: | |
runtime_printstring(65877, 5, a, a); | |
} | |
function runtime_printint32(a:int, b:int, c:int) { | |
if (a > -1) goto B_a; | |
runtime_putchar(45, a, a); | |
a = 0 - a; | |
label B_a: | |
runtime_printuint32(a, a, a); | |
} | |
function runtime_printint8(a:int, b:int, c:int) { | |
runtime_printint32((a << 24) >> 24, a, a) | |
} | |
function runtime_printint16(a:int, b:int, c:int) { | |
runtime_printint32((a << 16) >> 16, a, a) | |
} | |
function runtime_printint64(a:long, b:int, c:int) { | |
var d:int; | |
if (a > -1L) goto B_a; | |
runtime_putchar(45, d, d); | |
a = 0L - a; | |
label B_a: | |
runtime_printuint64(a, d, d); | |
} | |
function runtime_printuint32(a:int, b:int, c:int) { | |
runtime_printuint64(i64_extend_i32_u(a), a, a) | |
} | |
function runtime_printuint8(a:int, b:int, c:int) { | |
runtime_printuint32(a & 255, a, a) | |
} | |
function runtime_printuint16(a:int, b:int, c:int) { | |
runtime_printuint32(a & 65535, a, a) | |
} | |
function runtime_printuint64(a:long, b:int, c:int) { | |
var g:int; | |
var d:int = g_a - 32; | |
g_a = d; | |
d[28]:int@1 = 0; | |
d[20]:long@1 = 0L; | |
d[12]:long@1 = 0L; | |
var e:int = 19; | |
var f:int = 19; | |
loop L_b { | |
if (f < 0) goto B_a; | |
(d + 12 + f)[0]:byte = (g = i32_wrap_i64(a % 10L) | 48); | |
if (g == 48) goto B_c; | |
e = f; | |
label B_c: | |
f = f + -1; | |
a = a / 10L; | |
continue L_b; | |
} | |
label B_a: | |
loop L_e { | |
if (e > 19) goto B_d; | |
runtime_putchar((d + 12 + e)[0]:ubyte, e, e); | |
e = e + 1; | |
continue L_e; | |
} | |
label B_d: | |
g_a = d + 32; | |
} | |
function runtime_printfloat32(a:float, b:int, c:int) { | |
var f:int; | |
var e:int; | |
var g:int; | |
var j:int; | |
var i:int; | |
var d:int = g_a - 32; | |
g_a = d; | |
if (a != a) goto B_b; | |
e = a + a != a; | |
if (eqz(e)) goto B_d; | |
f = 0; | |
goto B_c; | |
label B_d: | |
f = a > 0.0f; | |
label B_c: | |
if (f) goto B_e; | |
if (eqz(e)) goto B_g; | |
f = 0; | |
goto B_f; | |
label B_g: | |
f = a < 0.0f; | |
label B_f: | |
if (f) goto B_h; | |
g = 0; | |
d[16]:short@1 = 0; | |
d[12]:int@1 = 0; | |
d[4]:long@1 = 43L; | |
if (a != 0.0f) goto B_i; | |
if (1.0f / a < 0.0f ^ 1) goto B_a; | |
d[4]:byte = 45; | |
goto B_a; | |
label B_i: | |
if (a < 0.0f ^ 1) goto B_j; | |
d[4]:byte = 45; | |
a = -(a); | |
label B_j: | |
g = 1; | |
loop L_k { | |
if (a >= 10.0f) goto B_l; | |
loop L_n { | |
if (a < 1.0f ^ 1) goto B_m; | |
g = g + -1; | |
a = a * 10.0f; | |
continue L_n; | |
} | |
label B_m: | |
e = g + -1; | |
f = 0; | |
var h:float = 5.0f; | |
loop L_p { | |
if (f > 6) goto B_o; | |
f = f + 1; | |
h = h / 10.0f; | |
continue L_p; | |
} | |
label B_o: | |
a = a + h; | |
if (eqz(a >= 10.0f ^ 1)) goto B_q; | |
g = e; | |
goto B_a; | |
label B_q: | |
a = a / 10.0f; | |
goto B_a; | |
label B_l: | |
g = g + 1; | |
a = a / 10.0f; | |
continue L_k; | |
} | |
label B_h: | |
runtime_printstring(65869, 4, d, d); | |
g_a = d + 32; | |
return ; | |
label B_e: | |
runtime_printstring(65865, 4, d, d); | |
g_a = d + 32; | |
return ; | |
label B_b: | |
runtime_printstring(65862, 3, d, d); | |
g_a = d + 32; | |
return ; | |
label B_a: | |
f = 0; | |
loop L_r { | |
if (f > 6) goto B_t; | |
if (eqz(abs(a) < 2147483648.0f)) goto B_v; | |
e = i32_trunc_f32_s(a); | |
goto B_u; | |
label B_v: | |
e = -2147483648; | |
label B_u: | |
i = f + 2; | |
if (i <= 13) goto B_s; | |
runtime_lookupPanic(d, 0); | |
unreachable; | |
label B_t: | |
d[13]:short@1 = 11109; | |
f = d[6]:ubyte; | |
d[6]:byte = 46; | |
d[5]:byte = f; | |
if (g > -1) goto B_w; | |
d[14]:byte = 45; | |
g = 0 - g; | |
label B_w: | |
d[17]:byte = (e = g % 10 + 48); | |
d[15]:byte = (i = g / 100 + 48); | |
d[16]:byte = (j = (g / 10 & 255) % 10 | 48); | |
g = d[14]:ubyte; | |
var k:int = d[13]:ubyte; | |
var l:int = d[12]:ubyte; | |
var m:int = d[11]:ubyte; | |
var n:int = d[10]:ubyte; | |
var o:int = d[9]:ubyte; | |
var p:int = d[8]:ubyte; | |
var q:int = d[7]:ubyte; | |
var r:int = d[6]:ubyte; | |
var s:int = d[5]:ubyte; | |
var t:int = d[4]:ubyte; | |
f = 0; | |
loop L_x { | |
if (f > 13) goto B_z; | |
if (f <= 13) goto B_y; | |
runtime_lookupPanic(d, 0); | |
unreachable; | |
label B_z: | |
g_a = d + 32; | |
return ; | |
label B_y: | |
d[18]:byte = t; | |
d[19]:byte = s; | |
d[20]:byte = r; | |
d[21]:byte = q; | |
d[22]:byte = p; | |
d[23]:byte = o; | |
d[24]:byte = n; | |
d[25]:byte = m; | |
d[26]:byte = l; | |
d[27]:byte = k; | |
d[28]:byte = g; | |
d[29]:byte = i; | |
d[30]:byte = j; | |
d[31]:byte = e; | |
runtime_putchar((d + 18 + f)[0]:ubyte, d, d); | |
f = f + 1; | |
continue L_x; | |
} | |
label B_s: | |
(d + 4 + f + 2)[0]:byte = | |
(e = | |
select_if( | |
select_if( | |
e, | |
j = | |
select_if(0, | |
select_if(2147483647, -2147483648, f = a >= -2147483648.0f), | |
a != a), | |
a <= 2147483392.0f), | |
j, | |
f)) + | |
48; | |
f = i + -1; | |
a = (a - f32_convert_i32_s(e)) * 10.0f; | |
continue L_r; | |
} | |
} | |
function runtime_printfloat64(a:double, b:int, c:int) { | |
var f:int; | |
var e:int; | |
var g:int; | |
var j:int; | |
var i:int; | |
var d:int = g_a - 32; | |
g_a = d; | |
if (a != a) goto B_b; | |
e = a + a != a; | |
if (eqz(e)) goto B_d; | |
f = 0; | |
goto B_c; | |
label B_d: | |
f = a > 0.0; | |
label B_c: | |
if (f) goto B_e; | |
if (eqz(e)) goto B_g; | |
f = 0; | |
goto B_f; | |
label B_g: | |
f = a < 0.0; | |
label B_f: | |
if (f) goto B_h; | |
g = 0; | |
d[16]:short@1 = 0; | |
d[12]:int@1 = 0; | |
d[4]:long@1 = 43L; | |
if (a != 0.0) goto B_i; | |
if (1.0 / a < 0.0 ^ 1) goto B_a; | |
d[4]:byte = 45; | |
goto B_a; | |
label B_i: | |
if (a < 0.0 ^ 1) goto B_j; | |
d[4]:byte = 45; | |
a = -(a); | |
label B_j: | |
g = 1; | |
loop L_k { | |
if (a >= 10.0) goto B_l; | |
loop L_n { | |
if (a < 1.0 ^ 1) goto B_m; | |
g = g + -1; | |
a = a * 10.0; | |
continue L_n; | |
} | |
label B_m: | |
e = g + -1; | |
f = 0; | |
var h:double = 5.0; | |
loop L_p { | |
if (f > 6) goto B_o; | |
f = f + 1; | |
h = h / 10.0; | |
continue L_p; | |
} | |
label B_o: | |
a = a + h; | |
if (eqz(a >= 10.0 ^ 1)) goto B_q; | |
g = e; | |
goto B_a; | |
label B_q: | |
a = a / 10.0; | |
goto B_a; | |
label B_l: | |
g = g + 1; | |
a = a / 10.0; | |
continue L_k; | |
} | |
label B_h: | |
runtime_printstring(65858, 4, d, d); | |
g_a = d + 32; | |
return ; | |
label B_e: | |
runtime_printstring(65854, 4, d, d); | |
g_a = d + 32; | |
return ; | |
label B_b: | |
runtime_printstring(65851, 3, d, d); | |
g_a = d + 32; | |
return ; | |
label B_a: | |
f = 0; | |
loop L_r { | |
if (f > 6) goto B_t; | |
if (eqz(abs(a) < 2147483648.0)) goto B_v; | |
e = i32_trunc_f64_s(a); | |
goto B_u; | |
label B_v: | |
e = -2147483648; | |
label B_u: | |
i = f + 2; | |
if (i <= 13) goto B_s; | |
runtime_lookupPanic(d, 0); | |
unreachable; | |
label B_t: | |
d[13]:short@1 = 11109; | |
f = d[6]:ubyte; | |
d[6]:byte = 46; | |
d[5]:byte = f; | |
if (g > -1) goto B_w; | |
d[14]:byte = 45; | |
g = 0 - g; | |
label B_w: | |
d[17]:byte = (e = g % 10 + 48); | |
d[15]:byte = (i = g / 100 + 48); | |
d[16]:byte = (j = (g / 10 & 255) % 10 | 48); | |
g = d[14]:ubyte; | |
var k:int = d[13]:ubyte; | |
var l:int = d[12]:ubyte; | |
var m:int = d[11]:ubyte; | |
var n:int = d[10]:ubyte; | |
var o:int = d[9]:ubyte; | |
var p:int = d[8]:ubyte; | |
var q:int = d[7]:ubyte; | |
var r:int = d[6]:ubyte; | |
var s:int = d[5]:ubyte; | |
var t:int = d[4]:ubyte; | |
f = 0; | |
loop L_x { | |
if (f > 13) goto B_z; | |
if (f <= 13) goto B_y; | |
runtime_lookupPanic(d, 0); | |
unreachable; | |
label B_z: | |
g_a = d + 32; | |
return ; | |
label B_y: | |
d[18]:byte = t; | |
d[19]:byte = s; | |
d[20]:byte = r; | |
d[21]:byte = q; | |
d[22]:byte = p; | |
d[23]:byte = o; | |
d[24]:byte = n; | |
d[25]:byte = m; | |
d[26]:byte = l; | |
d[27]:byte = k; | |
d[28]:byte = g; | |
d[29]:byte = i; | |
d[30]:byte = j; | |
d[31]:byte = e; | |
runtime_putchar((d + 18 + f)[0]:ubyte, d, d); | |
f = f + 1; | |
continue L_x; | |
} | |
label B_s: | |
(d + 4 + f + 2)[0]:byte = | |
(e = | |
select_if( | |
select_if( | |
e, | |
j = | |
select_if(0, | |
select_if(2147483647, -2147483648, f = a >= -2147483648.0), | |
a != a), | |
a <= 2147483647.0), | |
j, | |
f)) + | |
48; | |
f = i + -1; | |
a = (a - f64_convert_i32_s(e)) * 10.0; | |
continue L_r; | |
} | |
} | |
function runtime_printcomplex64(a:float, b:float, c:int, d:int) { | |
var e:int; | |
runtime_putchar(40, e, e); | |
runtime_printfloat32(a, e, e); | |
runtime_printfloat32(b, e, e); | |
runtime_printstring(65849, 2, e, e); | |
} | |
function runtime_printcomplex128(a:double, b:double, c:int, d:int) { | |
var e:int; | |
runtime_putchar(40, e, e); | |
runtime_printfloat64(a, e, e); | |
runtime_printfloat64(b, e, e); | |
runtime_printstring(65847, 2, e, e); | |
} | |
function error_typeassert(a:int):int { | |
if (a == 8165) goto B_a; | |
if (a == 6117) goto B_a; | |
if (a == 7141) goto B_a; | |
if (a == 255) goto B_a; | |
return 0; | |
label B_a: | |
return 1; | |
} | |
function Error_4(a:{ a:int, b:int }, b:int, c:int, d:int, e:int, f:int) { | |
var g:{ a:int, b:int, c:int, d:int, e:int, f:int, g:int, h:int } = | |
g_a - 32; | |
g_a = g; | |
if (e == 8165) goto B_d; | |
if (e == 6117) goto B_c; | |
if (e == 7141) goto B_b; | |
if (e == 255) goto B_a; | |
runtime_nilPanic(g, g); | |
unreachable; | |
label B_d: | |
Error_1(g, b, c, d); | |
a.a = g.a; | |
a.b = g.b; | |
g_a = g + 32; | |
return ; | |
label B_c: | |
Error_3(g + 8, b, c, d); | |
a.a = g.c; | |
a.b = g.d; | |
g_a = g + 32; | |
return ; | |
label B_b: | |
Error_2(g + 16, b, c, d); | |
a.a = g.e; | |
a.b = g.f; | |
g_a = g + 32; | |
return ; | |
label B_a: | |
Error_invoke(g + 24, b, c, d); | |
a.a = g.g; | |
a.b = g.h; | |
g_a = g + 32; | |
} | |
function runtime_stringer_typeassert(a:int):int { | |
if (a == 4869) goto B_a; | |
if (a == 152) goto B_a; | |
return 0; | |
label B_a: | |
return 1; | |
} | |
function String_2(a:{ a:int, b:int }, b:int, c:int, d:int, e:int, f:int) { | |
var g:{ a:int, b:int, c:int, d:int } = g_a - 16; | |
g_a = g; | |
if (e == 4869) goto B_b; | |
if (e == 152) goto B_a; | |
runtime_nilPanic(g, g); | |
unreachable; | |
label B_b: | |
String(g, b, c, d); | |
a.a = g.a; | |
a.b = g.b; | |
g_a = g + 16; | |
return ; | |
label B_a: | |
String_invoke(g + 8, b, c, d); | |
a.a = g.c; | |
a.b = g.d; | |
g_a = g + 16; | |
} | |
function runtime_chanRecv(a:int, b:int_ptr, c:int, d:int, e:int):int { | |
var g:int; | |
var h:int; | |
var i:byte_ptr; | |
var f:ubyte_ptr = g_a - 16; | |
g_a = f; | |
g = runtime_alloc(64, g, g); | |
g[11]:int = e; | |
g[1]:int = 5; | |
g[0]:int = 6; | |
g[10]:int = c; | |
g[9]:int = b; | |
g[8]:int = a; | |
g[12]:int = (h = setState(e, g, g, g)); | |
g[13]:int = (i = getReturnPtr(e, g, g)); | |
g[14]:int = (c = runtime_interrupt_Disable(g, g)); | |
tryRecv(f + 8, a, b, g, g); | |
var j:int = f[9]; | |
b = f[8]; | |
Lcoro_devirt_trigger(0); | |
if (eqz(b)) goto B_h; | |
runtime_chanDebug(a, g, g); | |
runtime_interrupt_Restore(c, g, g); | |
i[0] = j & 1; | |
returnTo(e, h, g, g); | |
runtime_free(g, g, g); | |
goto B_g; | |
label B_h: | |
if (a) goto B_i; | |
runtime_interrupt_Restore(c, g, g); | |
runtime_deadlock(g, e); | |
g[60]:byte = 0; | |
goto B_g; | |
label B_i: | |
e = g[8]:int; | |
if (eqz(e)) goto B_f; | |
a = g[11]:int; | |
e[8]:byte = 1; | |
if (eqz(a)) goto B_e; | |
a[1]:int = g[9]:int; | |
e = g[10]:int; | |
a[1]:long = 1L; | |
(g + 24)[0]:long@4 = 0L; | |
(g + 16)[0]:long@4 = 0L; | |
g[2]:long@4 = 0L; | |
if (eqz(e)) goto B_d; | |
b = g[8]:int; | |
if (eqz(b)) goto B_c; | |
e = g[10]:int; | |
if (eqz(e)) goto B_b; | |
b = b[3]; | |
e[5]:int = 0; | |
e[3]:long@4 = 0L; | |
e[1]:long@4 = 0L; | |
e[0]:int = b; | |
b = g[8]:int; | |
e[1]:int = a; | |
if (eqz(b)) goto B_a; | |
e = g[14]:int; | |
a = g[8]:int; | |
a[3]:int = g[10]:int; | |
runtime_chanDebug(a, g, g); | |
runtime_interrupt_Restore(e, g, g); | |
g[60]:byte = 1; | |
label B_g: | |
g_a = f + 16; | |
return g; | |
label B_f: | |
runtime_nilPanic(g, 0); | |
unreachable; | |
label B_e: | |
runtime_nilPanic(g, 0); | |
unreachable; | |
label B_d: | |
runtime_nilPanic(g, 0); | |
unreachable; | |
label B_c: | |
runtime_nilPanic(g, 0); | |
unreachable; | |
label B_b: | |
runtime_nilPanic(g, 0); | |
unreachable; | |
label B_a: | |
runtime_nilPanic(g, 0); | |
return unreachable; | |
} | |
function runtime_chanRecv_destroy(a:int) { | |
runtime_free(a, a, a) | |
} | |
function runtime_chanRecv_resume(a:int) { | |
var d:int_ptr; | |
var c:int; | |
var b:int = 0; | |
if (a[60]:ubyte) goto B_h; | |
b = a[8]:int; | |
if (eqz(b)) goto B_g; | |
c = a[11]:int; | |
b[8]:byte = 1; | |
if (eqz(c)) goto B_f; | |
c[1]:int = a[9]:int; | |
b = a[10]:int; | |
c[1]:long = 1L; | |
(a + 24)[0]:long@4 = 0L; | |
(a + 16)[0]:long@4 = 0L; | |
a[2]:long@4 = 0L; | |
if (eqz(b)) goto B_e; | |
d = a[8]:int; | |
if (eqz(d)) goto B_d; | |
b = a[10]:int; | |
if (eqz(b)) goto B_c; | |
d = d[3]; | |
b[5]:int = 0; | |
b[3]:long@4 = 0L; | |
b[1]:long@4 = 0L; | |
b[0]:int = d; | |
d = a[8]:int; | |
b[1]:int = c; | |
if (eqz(d)) goto B_b; | |
b = a[14]:int; | |
c = a[8]:int; | |
c[3]:int = a[10]:int; | |
runtime_chanDebug(c, a, a); | |
runtime_interrupt_Restore(b, a, a); | |
a[60]:byte = 1; | |
b = 255; | |
label B_h: | |
if (b) goto B_i; | |
b = a[11]:int; | |
if (eqz(b)) goto B_a; | |
b[1]:int = 0; | |
c = a[12]:int; | |
d = a[11]:int; | |
var e:byte_ptr = a[13]:int; | |
var f:long = b[1]:long; | |
b[1]:long = 0L; | |
e[0] = f == 1L; | |
returnTo(d, c, a, a); | |
runtime_free(a, a, a); | |
label B_i: | |
return ; | |
label B_g: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_f: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_e: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_d: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_c: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_b: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_a: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
} | |
function runtime_free(a:int, b:int, c:int) { | |
} | |
function runtime_chanClose(a:byte_ptr, b:int, c:int) { | |
var e:int; | |
if (a) goto B_a; | |
runtime_runtimePanic(65893, 20, a, a); | |
label B_a: | |
var d:int = runtime_interrupt_Disable(a, a); | |
if (a) goto B_b; | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_b: | |
e = a + 8; | |
if (eqz(e)) goto B_f; | |
e = e[0]:ubyte; | |
if (e == 4) goto B_d; | |
goto B_e; | |
label B_f: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_e: | |
if (e != 2) goto B_g; | |
runtime_interrupt_Restore(d, a, a); | |
runtime_runtimePanic(65936, 25, a, a); | |
goto B_c; | |
label B_g: | |
if (e != 1) goto B_c; | |
if (a) goto B_h; | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_h: | |
e = a + 8; | |
if (eqz(e)) goto B_j; | |
e[0]:byte = 4; | |
if (eqz(a)) goto B_k; | |
e = a + 12; | |
loop L_l { | |
if (eqz(e)) goto B_i; | |
if (eqz(e[0]:int)) goto B_c; | |
resumeRX(a, 0, a, a); | |
if (a) continue L_l; | |
} | |
label B_k: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_j: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_i: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_d: | |
runtime_interrupt_Restore(d, a, a); | |
runtime_runtimePanic(65913, 23, a, a); | |
label B_c: | |
if (a) goto B_m; | |
runtime_nilPanic(a, 0); | |
unreachable; | |
label B_m: | |
if (a == -8) goto B_n; | |
a[8] = 4; | |
runtime_interrupt_Restore(d, a, a); | |
runtime_chanDebug(a, a, a); | |
return ; | |
label B_n: | |
runtime_nilPanic(a, 0); | |
unreachable; | |
} | |
function runtime_initHeap(a:int, b:int) { | |
} | |
function runtime_ticks(a:int, b:int):long { | |
var c:long_ptr; | |
runtime_clock_time_get(0, 1000L, c = runtime_alloc(8, c, 0)); | |
return c[0]; | |
} | |
function runtime_postinit(a:int, b:int) { | |
} | |
export function start() { | |
var a:int; | |
d_b[0]:int = 66364; | |
0[16538]:int = memory_size() << 16; | |
wasm_call_ctors(); | |
runtime_run(a, a); | |
} | |
function runtime_run(a:int, b:int) { | |
var c:int; | |
runtime_initHeap(c, c); | |
runtime_run_1(c, internal_task_createTask(c, c)); | |
runtime_scheduler(c, c); | |
} | |
function runtime_run_1(a:int, b:int) { | |
var c:{ a:int, b:int, c:int, d:int, e:byte } | |
c = runtime_alloc(20, c, c); | |
c.c = b; | |
c.b = 7; | |
c.a = 8; | |
c.d = setState(b, c, c, c); | |
runtime_initAll(c, c); | |
runtime_postinit(c, c); | |
main_main(c, b); | |
c.e = 0; | |
Lcoro_devirt_trigger(0); | |
} | |
function runtime_scheduler(a:int, b:int) { | |
var d:int; | |
var c:long = 0L; | |
loop L_b { | |
if (0[66332]:ubyte) goto B_k; | |
runtime_scheduleLog(0, 0, d, d); | |
runtime_scheduleLog(65961, 10, d, d); | |
if (eqz(0[16584]:int)) goto B_l; | |
c = runtime_ticks(d, d); | |
label B_l: | |
if (eqz(0[16584]:int)) goto B_c; | |
d = 0[16584]:int; | |
if (d) goto B_m; | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_m: | |
d = d + 8; | |
if (eqz(d)) goto B_j; | |
if (c - 0[8293]:long < d[0]:long) goto B_c; | |
runtime_scheduleLogTask(65971, 8, d = 0[16584]:int, d, d); | |
if (eqz(d)) goto B_i; | |
if (d == -8) goto B_h; | |
0[8293]:long = 0[8293]:long + d[1]:long; | |
if (eqz(d)) goto B_g; | |
if (eqz(d)) goto B_f; | |
0[16584]:int = d[0]:int; | |
if (eqz(d)) goto B_e; | |
if (eqz(d)) goto B_d; | |
d[0]:int = 0; | |
Push(66280, d, d, d); | |
goto B_c; | |
label B_k: | |
return ; | |
label B_j: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_i: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_h: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_g: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_f: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_e: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_d: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_c: | |
d = Pop(66280, d, d); | |
if (d) goto B_o; | |
if (0[16584]:int) goto B_n; | |
runtime_waitForEvents(d, d); | |
continue L_b; | |
label B_o: | |
runtime_scheduleLogTask(65979, 6, d, d, d); | |
Resume(d, d, d); | |
continue L_b; | |
label B_n: | |
d = 0[16584]:int; | |
if (eqz(d)) goto B_a; | |
d = d + 8; | |
if (eqz(d)) goto B_p; | |
runtime_sleepTicks(d[0]:long + 0[8293]:long - c, d, d); | |
continue L_b; | |
label B_p: | |
} | |
runtime_nilPanic(d, 0); | |
unreachable; | |
label B_a: | |
runtime_nilPanic(d, 0); | |
unreachable; | |
} | |
function runtime_run_1_destroy(a:int) { | |
Lcoro_devirt_trigger(0); | |
runtime_free(a, a, a); | |
} | |
function runtime_run_1_resume(a:int_ptr) { | |
Lcoro_devirt_trigger(0); | |
0[66332]:byte = 1; | |
returnTo(a[2], a[3], a, a); | |
runtime_free(a, a, a); | |
} | |
function runtime_initAll(a:int, b:int) { | |
var c:int; | |
0[16538]:int = memory_size() << 16; | |
runtime_init_1(c, c); | |
} | |
function main_main(a:int, b:int) { | |
var c:int; | |
c = runtime_alloc(44, c, c); | |
c[8]:int = b; | |
c[1]:int = 9; | |
c[0]:int = 10; | |
c[9]:int = setState(b, c, c, c); | |
Do(66352, c, 1, c, b); | |
c[40]:byte = 0; | |
Lcoro_devirt_trigger(0); | |
} | |
function runtime_scheduleLog(a:int, b:int, c:int, d:int) { | |
} | |
function runtime_scheduleLogTask(a:int, b:int, c:int, d:int, e:int) { | |
} | |
function runtime_waitForEvents(a:int, b:int) { | |
var c:int; | |
runtime_runtimePanic(65985, 27, c, c); | |
} | |
function runtime_sleepTicks(a:long, b:int, c:int) { | |
d_b[8]:long = a; | |
runtime_poll_oneoff(66064, 66296, 1, 66328); | |
} | |
function main_main_destroy(a:ubyte_ptr) { | |
if (a[40]) goto B_a; | |
Lcoro_devirt_trigger(0); | |
label B_a: | |
runtime_free(a, a, a); | |
} | |
function main_main_resume(a:int) { | |
var b:int = 0; | |
if (a[40]:ubyte) goto B_a; | |
Lcoro_devirt_trigger(0); | |
b = d_b[22]:int; | |
var c:int = a[8]:int; | |
setReturnPtr(c, a + 41, a, a); | |
runtime_chanRecv(b, a + 32, a + 8, a, c); | |
a[40]:byte = 1; | |
b = 255; | |
label B_a: | |
if (b) goto B_b; | |
returnTo(a[8]:int, a[9]:int, a, a); | |
runtime_free(a, a, a); | |
label B_b: | |
} | |
function main_main_1(a:int, b:int) { | |
var c:int; | |
runtime_chanClose(d_b[22]:int, c, 0); | |
} | |
function LNoopCoro_ResumeDestroy(a:int) { | |
} | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
export memory memory(initial: 2, max: 0); | |
global g_a:int = 65536; | |
table T_a:funcref(min: 8, max: 8); | |
data d_syncunlockofunlockedMutexpro(offset: 65536) = | |
"sync: unlock of unlocked Mutex/proc/self/exeout of memorypanic: runtim" | |
"e error: index out of rangenil pointer dereferenceslice out of rangepa" | |
"nic: close of closed channelclose channel during senddeadlocked: no ev" | |
"ent source\00\00\00\00\07\00\00\00\07\00\00\00"; | |
data d_b(offset: 65768) = | |
"\c8\01\01\00\00\00\00\00\fc\00\01\00\01\00\00\00\01\00\00\00\1e\00\01\00" | |
"\0e\00\00\004\01\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00" | |
"\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\c8\01\01\00"; | |
import function runtime_fd_write(a:int, b:int, c:int, d:int):int; | |
import function runtime_args_sizes_get(a:int, b:int):int; | |
import function runtime_args_get(a:int, b:int):int; | |
function wasm_call_ctors() { | |
} | |
function strlen(a:ubyte_ptr):int { | |
var c:int; | |
var d:int; | |
var b:int = a; | |
if (eqz(a & 3)) goto B_c; | |
if (a[0]) goto B_d; | |
return a - a; | |
label B_d: | |
b = a + 1; | |
loop L_e { | |
if (eqz(b & 3)) goto B_c; | |
c = b[0]:ubyte; | |
d = b + 1; | |
b = d; | |
if (eqz(c)) goto B_b; | |
continue L_e; | |
} | |
label B_c: | |
b = b + -4; | |
loop L_f { | |
b = b + 4; | |
c = b[0]:int; | |
if (eqz(((c ^ -1) & c + -16843009) & -2139062144)) continue L_f; | |
} | |
if (c & 255) goto B_g; | |
return b - a; | |
label B_g: | |
loop L_h { | |
c = b[1]:ubyte; | |
d = b + 1; | |
b = d; | |
if (c) continue L_h; | |
goto B_a; | |
} | |
label B_b: | |
d = d + -1; | |
label B_a: | |
return d - a; | |
} | |
function memset(a:{ a:byte, b:byte, c:byte, d:byte }, b:long_ptr, c:int):int { | |
var e:int; | |
var f:int; | |
if (eqz(c)) goto B_a; | |
a.a = b; | |
var d:{ a:int, b:int, c:int, d:int, e:int, f:int, g:int } = c + a; | |
(d + -1)[0]:byte = b; | |
if (c < 3) goto B_a; | |
a.c = b; | |
a.b = b; | |
(d + -3)[0]:byte = b; | |
(d + -2)[0]:byte = b; | |
if (c < 7) goto B_a; | |
a.d = b; | |
(d + -4)[0]:byte = b; | |
if (c < 9) goto B_a; | |
d = a + (e = 0 - a & 3); | |
d.a = (b = (b & 255) * 16843009); | |
c = d + (e = c - e & -4); | |
(c + -4)[0]:int = b; | |
if (e < 9) goto B_a; | |
d.c = b; | |
d.b = b; | |
(c + -8)[0]:int = b; | |
(c + -12)[0]:int = b; | |
if (e < 25) goto B_a; | |
d.g = b; | |
d.f = b; | |
d.e = b; | |
d.d = b; | |
(c + -16)[0]:int = b; | |
(c + -20)[0]:int = b; | |
(c + -24)[0]:int = b; | |
(c + -28)[0]:int = b; | |
c = e - (f = (d & 4) | 24); | |
if (c < 32) goto B_a; | |
var g:long = i64_extend_i32_u(b); | |
g = g << 32L | g; | |
b = d + f; | |
loop L_b { | |
b[0] = g; | |
(b + 24)[0]:long = g; | |
(b + 16)[0]:long = g; | |
(b + 8)[0]:long = g; | |
b = b + 32; | |
c = c + -32; | |
if (c > 31) continue L_b; | |
} | |
label B_a: | |
return a; | |
} | |
function Push(a:int_ptr) { | |
var b:int_ptr = 0[16492]:int; | |
if (eqz(b)) goto B_a; | |
b[0] = a; | |
label B_a: | |
0[16492]:int = a; | |
if (eqz(a)) goto B_b; | |
a[0] = 0; | |
if (0[16491]:int) goto B_c; | |
0[16491]:int = a; | |
label B_c: | |
return ; | |
label B_b: | |
runtime_nilPanic(); | |
unreachable; | |
} | |
function runtime_nilPanic() { | |
runtime_runtimePanic(65633, 23) | |
} | |
function returnTo(a:int_ptr, b:int) { | |
if (a) goto B_a; | |
runtime_nilPanic(); | |
unreachable; | |
label B_a: | |
a[4] = b; | |
Push(a); | |
} | |
function setState(a:int_ptr, b:int):int { | |
if (a) goto B_a; | |
runtime_nilPanic(); | |
unreachable; | |
label B_a: | |
var c:int = a[4]; | |
a[4] = b; | |
return c; | |
} | |
function Unlock(a:int) { | |
var b:int_ptr; | |
if (a) goto B_a; | |
runtime_nilPanic(); | |
unreachable; | |
label B_a: | |
if (eqz(a[0]:ubyte)) goto B_c; | |
b = a[1]:int; | |
if (b) goto B_b; | |
a[0]:byte = 0; | |
return ; | |
label B_c: | |
runtime_panic(); | |
unreachable; | |
label B_b: | |
a[1]:int = b[0]; | |
b[0] = 0; | |
Push(b); | |
} | |
function runtime_panic() { | |
runtime_printstring(65674, 7); | |
runtime_printitf(); | |
runtime_printnl(); | |
unreachable; | |
unreachable; | |
} | |
function Do(a:int, b:int, c:int, d:int, e:int_ptr) { | |
var f:int = runtime_alloc(32); | |
f[5]:int = e; | |
f[1]:int = 1; | |
f[0]:int = 2; | |
f[6]:int = setState(e, f); | |
if (eqz(0[65984]:ubyte)) goto B_c; | |
if (eqz(e)) goto B_a; | |
var g:int = 0[16497]:int; | |
0[16497]:int = e; | |
e[0] = g; | |
goto B_b; | |
label B_c: | |
0[65984]:byte = 1; | |
Push(e); | |
label B_b: | |
f[28]:byte = 0; | |
return ; | |
label B_a: | |
runtime_nilPanic(); | |
unreachable; | |
} | |
function runtime_alloc(a:int):int { | |
var b:int; | |
var c:int; | |
d_b[0]:int = (a = (b = d_b[0]:int) + (c = a + 3 & -4)); | |
loop L_b { | |
if (a >= 0[16459]:int) goto B_c; | |
a = 0; | |
loop L_d { | |
if (a >= c) goto B_a; | |
(b + a)[0]:int = 0; | |
a = a + 4; | |
continue L_d; | |
} | |
label B_c: | |
if (memory_grow(memory_size()) == -1) goto B_f; | |
0[16459]:int = memory_size() << 16; | |
goto B_e; | |
label B_f: | |
runtime_runtimePanic(65580, 13); | |
label B_e: | |
a = d_b[0]:int; | |
continue L_b; | |
} | |
label B_a: | |
return b; | |
} | |
function Do_destroy(a:int) { | |
} | |
function Do_resume(a:int) { | |
var c:{ a:int, b:int, c:int } | |
a[1]:long = 0L; | |
(a + 16)[0]:int = 65984; | |
var b:int_ptr = a + 8; | |
if (eqz(0[65980]:ubyte)) goto B_b; | |
loop L_c { | |
if (eqz(b)) goto B_a; | |
c = b[1]; | |
Unlock(b[2]); | |
b = c; | |
continue L_c; | |
} | |
label B_b: | |
0[65980]:byte = 1; | |
br_table[B_g, B_h, B_e, B_f, ..B_e](d_b[44]:ubyte + -1) | |
label B_h: | |
runtime_runtimePanic(65704, 25); | |
goto B_e; | |
label B_g: | |
d_b[44]:byte = 4; | |
loop L_i { | |
c = d_b[12]:int; | |
if (eqz(c)) goto B_e; | |
d_b[12]:int = c.a; | |
var d:int = c.b; | |
if (eqz(d)) goto B_d; | |
memset(d[1]:int, 0, d_b[9]:int); | |
d = c.b; | |
if (eqz(d)) goto B_d; | |
d[1]:long = 0L; | |
d = c.c; | |
if (eqz(d)) goto B_j; | |
var e:int_ptr = c.b; | |
if (eqz(e)) goto B_d; | |
e[1] = d; | |
detach(c); | |
label B_j: | |
Push(c.b); | |
continue L_i; | |
} | |
label B_f: | |
runtime_runtimePanic(65681, 23); | |
label B_e: | |
d_b[44]:byte = 4; | |
loop L_k { | |
if (eqz(b)) goto B_a; | |
c = b[1]; | |
Unlock(b[2]); | |
b = c; | |
continue L_k; | |
} | |
label B_d: | |
runtime_nilPanic(); | |
unreachable; | |
label B_a: | |
returnTo(a[5]:int, a[6]:int); | |
} | |
function runtime_runtimePanic(a:int, b:int) { | |
runtime_printstring(65593, 22); | |
runtime_printstring(a, b); | |
runtime_printnl(); | |
unreachable; | |
unreachable; | |
} | |
function runtime_printstring(a:ubyte_ptr, b:int) { | |
b = select_if(b, 0, b > 0); | |
loop L_b { | |
if (eqz(b)) goto B_a; | |
runtime_putchar(a[0]); | |
a = a + 1; | |
b = b + -1; | |
continue L_b; | |
} | |
label B_a: | |
} | |
function runtime_printnl() { | |
runtime_putchar(13); | |
runtime_putchar(10); | |
} | |
function runtime_putchar(a:int) { | |
var b:int; | |
var c:int; | |
b = 0[16460]:int; | |
if (b <= 119) goto B_a; | |
runtime_lookupPanic(); | |
unreachable; | |
label B_a: | |
0[16460]:int = (c = b + 1); | |
(b + 65844)[0]:byte = a; | |
if ((a & 255) == 10) goto B_c; | |
if (b != 119) goto B_b; | |
label B_c: | |
d_b[8]:int = c; | |
runtime_fd_write(1, 65796, 1, 65972); | |
0[16460]:int = 0; | |
label B_b: | |
} | |
function runtime_lookupPanic() { | |
runtime_runtimePanic(65615, 18) | |
} | |
function runtime_slicePanic() { | |
runtime_runtimePanic(65656, 18) | |
} | |
function detach(a:int_ptr) { | |
var l:int_ptr; | |
if (eqz(a)) goto B_a; | |
var b:int = a[3]; | |
if (eqz(b)) goto B_c; | |
var c:int = -1; | |
var d:int = (a + 16)[0]:int; | |
var e:int = select_if(d, 0, d > 0) + -1; | |
var f:int = d + -1; | |
loop L_d { | |
if (c == e) goto B_c; | |
if (c == f) goto B_b; | |
c = c + 1; | |
if (c >= a[4]) goto B_b; | |
var g:int = a[3]; | |
var h:int_ptr = g + (d = c * 24); | |
if (h == a) continue L_d; | |
d = b + d; | |
if (eqz(d[1]:int)) continue L_d; | |
var i:{ a:int, b:int } = d[2]:int; | |
if (eqz(i)) goto B_a; | |
var j:int_ptr = i.a; | |
if (eqz(j)) goto B_a; | |
var k:int = j[3]; | |
d = k; | |
if (k != h) goto B_f; | |
if (eqz(g)) goto B_a; | |
k = h[0]; | |
goto B_e; | |
label B_f: | |
loop L_g { | |
l = d; | |
if (eqz(l)) goto B_e; | |
d = l[0]; | |
if (d != h) continue L_g; | |
} | |
if (eqz(g)) goto B_a; | |
l[0] = h[0]; | |
label B_e: | |
j[3] = k; | |
d = i.a; | |
if (eqz(d)) goto B_a; | |
if (d[3]:int) continue L_d; | |
if (i.b) goto B_i; | |
if (d[8]:ubyte == 4) continue L_d; | |
goto B_h; | |
label B_i: | |
if (eqz(d[6]:int)) goto B_h; | |
d[8]:byte = 3; | |
continue L_d; | |
label B_h: | |
d[8]:byte = 0; | |
continue L_d; | |
} | |
label B_c: | |
return ; | |
label B_b: | |
runtime_lookupPanic(); | |
unreachable; | |
label B_a: | |
runtime_nilPanic(); | |
unreachable; | |
} | |
function runtime_printitf() { | |
runtime_printstring(65536, 30) | |
} | |
export function start() { | |
0[16459]:int = memory_size() << 16; | |
wasm_call_ctors(); | |
var a:int_ptr = runtime_alloc(24); | |
a[4] = 65760; | |
runtime_run_1(a, a); | |
loop L_a { | |
if (0[65976]:ubyte) goto B_c; | |
a = 0[16491]:int; | |
if (eqz(a)) goto B_b; | |
0[16491]:int = a[0]; | |
if (0[16492]:int != a) goto B_d; | |
0[16492]:int = 0; | |
label B_d: | |
a[0] = 0; | |
a = a[4]; | |
call_indirect(a, a[0]); | |
continue L_a; | |
label B_c: | |
return ; | |
label B_b: | |
runtime_runtimePanic(65729, 27); | |
continue L_a; | |
} | |
} | |
function runtime_run_1(a:int, b:int) { | |
var i:int; | |
var g:int; | |
var c:int_ptr = g_a - 16; | |
g_a = c; | |
var d:{ a:int, b:int, c:int, d:int, e:byte } = runtime_alloc(20); | |
d.c = b; | |
d.b = 3; | |
d.a = 4; | |
d.d = setState(b, d); | |
0[16459]:int = memory_size() << 16; | |
c[3] = 0; | |
c[2] = 0; | |
runtime_args_sizes_get(c + 12, c + 8); | |
var e:int = c[3]; | |
if (eqz(e)) goto B_c; | |
if (e < 0) goto B_b; | |
var f:int_ptr = runtime_alloc(e << 2); | |
g = c[2]; | |
if (g <= -1) goto B_b; | |
var h:int_ptr = runtime_alloc(g); | |
if (eqz(g)) goto B_a; | |
runtime_args_get(f, h); | |
g = 0; | |
h = runtime_alloc(e << 3); | |
d_b[4]:int = e; | |
d_b[3]:int = e; | |
d_b[2]:int = h; | |
loop L_d { | |
if (e == g) goto B_c; | |
if (g >= e) goto B_a; | |
(h + 4)[0]:int = strlen(i = f[0]); | |
h[0] = i; | |
f = f + 4; | |
h = h + 8; | |
g = g + 1; | |
continue L_d; | |
} | |
label B_c: | |
main_main(g, b); | |
d.e = 0; | |
g_a = c + 16; | |
return ; | |
label B_b: | |
runtime_slicePanic(); | |
unreachable; | |
label B_a: | |
runtime_lookupPanic(); | |
unreachable; | |
} | |
function runtime_run_1_destroy(a:int) { | |
} | |
function runtime_run_1_resume(a:int_ptr) { | |
0[65976]:byte = 1; | |
returnTo(a[2], a[3]); | |
} | |
function main_main(a:int, b:int) { | |
var c:int = runtime_alloc(44); | |
c[8]:int = b; | |
c[1]:int = 5; | |
c[0]:int = 6; | |
c[9]:int = setState(b, c); | |
Do(65980, c, 1, c, b); | |
c[40]:byte = 0; | |
} | |
function main_main_destroy(a:int) { | |
} | |
function main_main_resume(a:int) { | |
var b:int_ptr = a[8]:int; | |
if (a[40]:ubyte) goto B_c; | |
if (b) goto B_b; | |
goto B_a; | |
label B_c: | |
if (eqz(b)) goto B_a; | |
b[4] = a[9]:int; | |
Push(b); | |
return ; | |
label B_b: | |
unreachable; | |
unreachable; | |
label B_a: | |
runtime_nilPanic(); | |
unreachable; | |
} | |
function LNoopCoro_ResumeDestroy(a:int) { | |
} | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
_start () { | |
store.i32 0x1012c , 131072 | |
__wasm_call_ctors () { | |
} | |
runtime.alloc (i32: 24) { | |
load.i32 0x100e8 = 65992 | |
store.i32 0x100e8 , 66016 | |
iter { | |
load.i32 0x1012c = 131072 | |
iter { | |
store.i32 0x101c8 , 0 | |
} | |
iter { | |
store.i32 0x101cc , 0 | |
} | |
iter { | |
store.i32 0x101d0 , 0 | |
} | |
iter { | |
store.i32 0x101d4 , 0 | |
} | |
iter { | |
store.i32 0x101d8 , 0 | |
} | |
iter { | |
store.i32 0x101dc , 0 | |
} | |
iter { | |
} | |
} | |
} = 65992 | |
store.i32 0x101d8 , 65760 | |
runtime.run$1 (i32: 65992, i32: 65992) { | |
runtime.alloc (i32: 20) { | |
load.i32 0x100e8 = 66016 | |
store.i32 0x100e8 , 66036 | |
iter { | |
load.i32 0x1012c = 131072 | |
iter { | |
store.i32 0x101e0 , 0 | |
} | |
iter { | |
store.i32 0x101e4 , 0 | |
} | |
iter { | |
store.i32 0x101e8 , 0 | |
} | |
iter { | |
store.i32 0x101ec , 0 | |
} | |
iter { | |
store.i32 0x101f0 , 0 | |
} | |
iter { | |
} | |
} | |
} = 66016 | |
store.i32 0x101e8 , 65992 | |
store.i32 0x101e4 , 3 | |
store.i32 0x101e0 , 4 | |
(*internal/task.Task).setState (i32: 65992, i32: 66016) { | |
load.i32 0x101d8 = 65760 | |
store.i32 0x101d8 , 66016 | |
} = 65760 | |
store.i32 0x101ec , 65760 | |
store.i32 0x1012c , 131072 | |
store.i32 0xfffc , 0 | |
store.i32 0xfff8 , 0 | |
wasi_snapshot_preview1!args_sizes_get(65532, 65528) { <native> } = 0 | |
load.i32 0xfffc = 1 | |
runtime.alloc (i32: 4) { | |
load.i32 0x100e8 = 66036 | |
store.i32 0x100e8 , 66040 | |
iter { | |
load.i32 0x1012c = 131072 | |
iter { | |
store.i32 0x101f4 , 0 | |
} | |
iter { | |
} | |
} | |
} = 66036 | |
load.i32 0xfff8 = 13 | |
runtime.alloc (i32: 13) { | |
load.i32 0x100e8 = 66040 | |
store.i32 0x100e8 , 66056 | |
iter { | |
load.i32 0x1012c = 131072 | |
iter { | |
store.i32 0x101f8 , 0 | |
} | |
iter { | |
store.i32 0x101fc , 0 | |
} | |
iter { | |
store.i32 0x10200 , 0 | |
} | |
iter { | |
store.i32 0x10204 , 0 | |
} | |
iter { | |
} | |
} | |
} = 66040 | |
wasi_snapshot_preview1!args_get(66036, 66040) { <native> } = 0 | |
runtime.alloc (i32: 8) { | |
load.i32 0x100e8 = 66056 | |
store.i32 0x100e8 , 66064 | |
iter { | |
load.i32 0x1012c = 131072 | |
iter { | |
store.i32 0x10208 , 0 | |
} | |
iter { | |
store.i32 0x1020c , 0 | |
} | |
iter { | |
} | |
} | |
} = 66056 | |
store.i32 0x100f8 , 1 | |
store.i32 0x100f4 , 1 | |
store.i32 0x100f0 , 66056 | |
iter { | |
load.i32 0x101f4 = 66040 | |
strlen (i32: 66040) { | |
iter { | |
load.i32 0x101f8 = 1935766115 | |
} | |
iter { | |
load.i32 0x101fc = 779249000 | |
} | |
iter { | |
load.i32 0x10200 = 1836278135 | |
} | |
iter { | |
load.i32 0x10204 = 0 | |
} | |
} = 12 | |
store.i32 0x1020c , 12 | |
store.i32 0x10208 , 66040 | |
} | |
iter { | |
main.main (i32: 1, i32: 65992) { | |
runtime.alloc (i32: 44) { | |
load.i32 0x100e8 = 66064 | |
store.i32 0x100e8 , 66108 | |
iter { | |
load.i32 0x1012c = 131072 | |
iter { | |
store.i32 0x10210 , 0 | |
} | |
iter { | |
store.i32 0x10214 , 0 | |
} | |
iter { | |
store.i32 0x10218 , 0 | |
} | |
iter { | |
store.i32 0x1021c , 0 | |
} | |
iter { | |
store.i32 0x10220 , 0 | |
} | |
iter { | |
store.i32 0x10224 , 0 | |
} | |
iter { | |
store.i32 0x10228 , 0 | |
} | |
iter { | |
store.i32 0x1022c , 0 | |
} | |
iter { | |
store.i32 0x10230 , 0 | |
} | |
iter { | |
store.i32 0x10234 , 0 | |
} | |
iter { | |
store.i32 0x10238 , 0 | |
} | |
iter { | |
} | |
} | |
} = 66064 | |
store.i32 0x10230 , 65992 | |
store.i32 0x10214 , 5 | |
store.i32 0x10210 , 6 | |
(*internal/task.Task).setState (i32: 65992, i32: 66064) { | |
load.i32 0x101d8 = 66016 | |
store.i32 0x101d8 , 66064 | |
} = 66016 | |
store.i32 0x10234 , 66016 | |
(*sync.Once).Do (i32: 65980, i32: 66064, i32: 1, i32: 66064, i32: 65992) { | |
runtime.alloc (i32: 32) { | |
load.i32 0x100e8 = 66108 | |
store.i32 0x100e8 , 66140 | |
iter { | |
load.i32 0x1012c = 131072 | |
iter { | |
store.i32 0x1023c , 0 | |
} | |
iter { | |
store.i32 0x10240 , 0 | |
} | |
iter { | |
store.i32 0x10244 , 0 | |
} | |
iter { | |
store.i32 0x10248 , 0 | |
} | |
iter { | |
store.i32 0x1024c , 0 | |
} | |
iter { | |
store.i32 0x10250 , 0 | |
} | |
iter { | |
store.i32 0x10254 , 0 | |
} | |
iter { | |
store.i32 0x10258 , 0 | |
} | |
iter { | |
} | |
} | |
} = 66108 | |
store.i32 0x10250 , 65992 | |
store.i32 0x10240 , 1 | |
store.i32 0x1023c , 2 | |
(*internal/task.Task).setState (i32: 65992, i32: 66108) { | |
load.i32 0x101d8 = 66064 | |
store.i32 0x101d8 , 66108 | |
} = 66064 | |
store.i32 0x10254 , 66064 | |
load.i32 0x101c0 = 0 | |
store.i32 0x101c0 , 1 | |
(*internal/task.Queue).Push (i32: 65992) { | |
load.i32 0x101b0 = 0 | |
store.i32 0x101b0 , 65992 | |
store.i32 0x101c8 , 0 | |
load.i32 0x101ac = 0 | |
store.i32 0x101ac , 65992 | |
} | |
store.i32 0x10258 , 0 | |
} | |
store.i32 0x10238 , 0 | |
} | |
store.i32 0x101f0 , 0 | |
} | |
} | |
iter { | |
load.i32 0x101b8 = 0 | |
load.i32 0x101ac = 65992 | |
load.i32 0x101c8 = 0 | |
store.i32 0x101ac , 0 | |
load.i32 0x101b0 = 65992 | |
store.i32 0x101b0 , 0 | |
store.i32 0x101c8 , 0 | |
load.i32 0x101d8 = 66108 | |
load.i32 0x1023c = 2 | |
(*sync.Once).Do.resume (i32: 66108) { | |
store.i64 0x10244 , 0 | |
store.i32 0x1024c , 65984 | |
load.i32 0x101bc = 0 | |
store.i32 0x101bc , 1 | |
load.i32 0x10114 = 0 | |
store.i32 0x10114 , 4 | |
iter { | |
load.i32 0x10248 = 0 | |
load.i32 0x1024c = 65984 | |
(*sync.Mutex).Unlock (i32: 65984) { | |
load.i32 0x101c0 = 1 | |
load.i32 0x101c4 = 0 | |
store.i32 0x101c0 , 0 | |
} | |
} | |
iter { | |
load.i32 0x10250 = 65992 | |
load.i32 0x10254 = 66064 | |
(*internal/task.Task).returnTo (i32: 65992, i32: 66064) { | |
store.i32 0x101d8 , 66064 | |
(*internal/task.Queue).Push (i32: 65992) { | |
load.i32 0x101b0 = 0 | |
store.i32 0x101b0 , 65992 | |
store.i32 0x101c8 , 0 | |
load.i32 0x101ac = 0 | |
store.i32 0x101ac , 65992 | |
} | |
} | |
} | |
} | |
} | |
iter { | |
load.i32 0x101b8 = 0 | |
load.i32 0x101ac = 65992 | |
load.i32 0x101c8 = 0 | |
store.i32 0x101ac , 0 | |
load.i32 0x101b0 = 65992 | |
store.i32 0x101b0 , 0 | |
store.i32 0x101c8 , 0 | |
load.i32 0x101d8 = 66064 | |
load.i32 0x10210 = 6 | |
main.main.resume (i32: 66064) { | |
load.i32 0x10230 = 65992 | |
load.i32 0x10238 = 0 | |
} !trap = [trap] unreachable executed | |
} | |
} !trap = [trap] unreachable executed | |
Error: [trap] unreachable executed |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" | |
target triple = "x86_64--darwin" | |
%runtime.interfaceMethodInfo.1 = type { i8*, i64 } | |
%"internal/task.Queue" = type { %"internal/task.Task"*, %"internal/task.Task"* } | |
%"internal/task.Task" = type { %"internal/task.Task"*, i8*, i64, %"internal/task.state" } | |
%"internal/task.state" = type { i8* } | |
%sync.Once = type { i1, %sync.Mutex } | |
%sync.Mutex = type { i1, %"internal/task.Stack" } | |
%"internal/task.Stack" = type { %"internal/task.Task"* } | |
%NoopCoro.Frame = type { void (%NoopCoro.Frame*)*, void (%NoopCoro.Frame*)* } | |
%"(*sync.Once).Do.Frame" = type { void (%"(*sync.Once).Do.Frame"*)*, void (%"(*sync.Once).Do.Frame"*)*, { i64, %runtime._defer*, %sync.Mutex* }, i8*, i8*, i1 } | |
%runtime._defer = type { i64, %runtime._defer* } | |
%runtime.chanRecv.Frame = type { void (%runtime.chanRecv.Frame*)*, void (%runtime.chanRecv.Frame*)*, i8*, i8*, i1*, i1 } | |
%main.main.Frame = type { void (%main.main.Frame*)*, void (%main.main.Frame*)*, %runtime.channelBlockedList, i8*, i8*, {}, i1, i8 } | |
%runtime.channelBlockedList = type { %runtime.channelBlockedList*, %"internal/task.Task"*, %runtime.chanSelectState*, { %runtime.channelBlockedList*, i64, i64 } } | |
%runtime.chanSelectState = type { %runtime.channel*, i8* } | |
%runtime.channel = type { i64, i64, i8, %runtime.channelBlockedList*, i64, i64, i64, i8* } | |
%"runtime.run$1.Frame" = type { void (%"runtime.run$1.Frame"*)*, void (%"runtime.run$1.Frame"*)*, i8*, i8*, i1 } | |
@"(*sync.Mutex).Unlock$string" = internal unnamed_addr constant [30 x i8] c"sync: unlock of unlocked Mutex", align 1 | |
@runtime.args = internal unnamed_addr global { %runtime.interfaceMethodInfo.1*, i64, i64 } { %runtime.interfaceMethodInfo.1* bitcast ({ [14 x i8]*, [8 x i8] }* @"runtime$alloc" to %runtime.interfaceMethodInfo.1*), i64 1, i64 1 }, align 8, !dbg !0 | |
@"runtime$alloc" = internal global { [14 x i8]*, [8 x i8] } { [14 x i8]* @"runtime.init$string", [8 x i8] c"\0E\00\00\00\00\00\00\00" }, align 8 | |
@"runtime.init$string" = internal unnamed_addr constant [14 x i8] c"/proc/self/exe", align 1 | |
@runtime.heapSize = internal unnamed_addr global i64 131072, align 8, !dbg !15 | |
@runtime.heapStart = internal unnamed_addr global i64 0, align 8, !dbg !18 | |
@runtime.heapptr = internal unnamed_addr global i64 0, align 8, !dbg !20 | |
@runtime.runqueue = internal unnamed_addr global %"internal/task.Queue" zeroinitializer, align 8, !dbg !23 | |
@runtime.heapEnd = internal unnamed_addr global i64 0, align 8, !dbg !47 | |
@runtime.schedulerDone = internal unnamed_addr global i1 false, align 1, !dbg !49 | |
@"runtime.alloc$string" = internal unnamed_addr constant [13 x i8] c"out of memory", align 1 | |
@"runtime.runtimePanic$string" = internal unnamed_addr constant [22 x i8] c"panic: runtime error: ", align 1 | |
@"runtime.nilPanic$string" = internal unnamed_addr constant [23 x i8] c"nil pointer dereference", align 1 | |
@"runtime.lookupPanic$string" = internal unnamed_addr constant [18 x i8] c"index out of range", align 1 | |
@"(*runtime.channel).tryRecv$string" = internal unnamed_addr constant [21 x i8] c"invalid channel state", align 1 | |
@"runtime._panic$string" = internal unnamed_addr constant [7 x i8] c"panic: ", align 1 | |
@"runtime.chanClose$string.9" = internal unnamed_addr constant [23 x i8] c"close of closed channel", align 1 | |
@"runtime.chanClose$string.10" = internal unnamed_addr constant [25 x i8] c"close channel during send", align 1 | |
@"runtime.waitForEvents$string" = internal unnamed_addr constant [27 x i8] c"deadlocked: no event source", align 1 | |
@main.once = internal global %sync.Once zeroinitializer, align 8, !dbg !52 | |
@"main$alloc" = internal global {} zeroinitializer, align 8 | |
@"main$alloc.60" = internal global { [56 x i8], {}* } { [56 x i8] zeroinitializer, {}* @"main$alloc" }, align 8 | |
@NoopCoro.Frame.Const = private constant %NoopCoro.Frame { void (%NoopCoro.Frame*)* @NoopCoro.ResumeDestroy, void (%NoopCoro.Frame*)* @NoopCoro.ResumeDestroy } | |
@"(*sync.Once).Do.resumers" = private constant [3 x void (%"(*sync.Once).Do.Frame"*)*] [void (%"(*sync.Once).Do.Frame"*)* @"(*sync.Once).Do.resume", void (%"(*sync.Once).Do.Frame"*)* @"(*sync.Once).Do.destroy", void (%"(*sync.Once).Do.Frame"*)* @"(*sync.Once).Do.cleanup"] | |
@runtime.chanRecv.resumers = private constant [3 x void (%runtime.chanRecv.Frame*)*] [void (%runtime.chanRecv.Frame*)* @runtime.chanRecv.resume, void (%runtime.chanRecv.Frame*)* @runtime.chanRecv.destroy, void (%runtime.chanRecv.Frame*)* @runtime.chanRecv.cleanup] | |
@main.main.resumers = private constant [3 x void (%main.main.Frame*)*] [void (%main.main.Frame*)* @main.main.resume, void (%main.main.Frame*)* @main.main.destroy, void (%main.main.Frame*)* @main.main.cleanup] | |
@"runtime.run$1.resumers" = private constant [3 x void (%"runtime.run$1.Frame"*)*] [void (%"runtime.run$1.Frame"*)* @"runtime.run$1.resume", void (%"runtime.run$1.Frame"*)* @"runtime.run$1.destroy", void (%"runtime.run$1.Frame"*)* @"runtime.run$1.cleanup"] | |
; Function Attrs: nounwind readnone speculatable willreturn | |
declare void @llvm.dbg.value(metadata, metadata, metadata) #0 | |
; Function Attrs: optsize | |
define internal fastcc void @"(*internal/task.Queue).Push"(%"internal/task.Task"* dereferenceable_or_null(32) %t) unnamed_addr #1 !dbg !163 { | |
entry: | |
call void @llvm.dbg.value(metadata %"internal/task.Queue"* @runtime.runqueue, metadata !179, metadata !DIExpression()), !dbg !187 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %t, metadata !180, metadata !DIExpression()), !dbg !187 | |
call void @llvm.dbg.value(metadata i64 0, metadata !181, metadata !DIExpression()), !dbg !188 | |
%0 = load %"internal/task.Task"*, %"internal/task.Task"** getelementptr inbounds (%"internal/task.Queue", %"internal/task.Queue"* @runtime.runqueue, i64 0, i32 1), align 8, !dbg !189 | |
%.not = icmp eq %"internal/task.Task"* %0, null, !dbg !190 | |
br i1 %.not, label %store.next18, label %gep.next14, !dbg !191 | |
if.done4: ; preds = %store.next30, %gep.next20 | |
call void @llvm.dbg.value(metadata i64 0, metadata !181, metadata !DIExpression()), !dbg !192 | |
ret void, !dbg !193 | |
gep.next14: ; preds = %entry | |
call void @llvm.dbg.value(metadata %"internal/task.Queue"* @runtime.runqueue, metadata !179, metadata !DIExpression()), !dbg !194 | |
%1 = getelementptr inbounds %"internal/task.Task", %"internal/task.Task"* %0, i64 0, i32 0, !dbg !195 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %t, metadata !180, metadata !DIExpression()), !dbg !196 | |
store %"internal/task.Task"* %t, %"internal/task.Task"** %1, align 8, !dbg !195 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %t, metadata !183, metadata !DIExpression()), !dbg !195 | |
br label %store.next18, !dbg !191 | |
store.next18: ; preds = %entry, %gep.next14 | |
call void @llvm.dbg.value(metadata %"internal/task.Queue"* @runtime.runqueue, metadata !179, metadata !DIExpression()), !dbg !197 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %t, metadata !180, metadata !DIExpression()), !dbg !198 | |
store %"internal/task.Task"* %t, %"internal/task.Task"** getelementptr inbounds (%"internal/task.Queue", %"internal/task.Queue"* @runtime.runqueue, i64 0, i32 1), align 8, !dbg !199 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %t, metadata !185, metadata !DIExpression()), !dbg !199 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %t, metadata !180, metadata !DIExpression()), !dbg !200 | |
%2 = icmp eq %"internal/task.Task"* %t, null, !dbg !201 | |
br i1 %2, label %gep.throw19, label %gep.next20, !dbg !201 | |
gep.throw19: ; preds = %store.next18 | |
tail call fastcc void @runtime.nilPanic(), !dbg !201 | |
unreachable, !dbg !201 | |
gep.next20: ; preds = %store.next18 | |
%3 = getelementptr inbounds %"internal/task.Task", %"internal/task.Task"* %t, i64 0, i32 0, !dbg !201 | |
store %"internal/task.Task"* null, %"internal/task.Task"** %3, align 8, !dbg !201 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* null, metadata !183, metadata !DIExpression()), !dbg !201 | |
call void @llvm.dbg.value(metadata %"internal/task.Queue"* @runtime.runqueue, metadata !179, metadata !DIExpression()), !dbg !202 | |
%4 = load %"internal/task.Task"*, %"internal/task.Task"** getelementptr inbounds (%"internal/task.Queue", %"internal/task.Queue"* @runtime.runqueue, i64 0, i32 0), align 8, !dbg !203 | |
%5 = icmp eq %"internal/task.Task"* %4, null, !dbg !204 | |
br i1 %5, label %store.next30, label %if.done4, !dbg !191 | |
store.next30: ; preds = %gep.next20 | |
call void @llvm.dbg.value(metadata %"internal/task.Queue"* @runtime.runqueue, metadata !179, metadata !DIExpression()), !dbg !205 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %t, metadata !180, metadata !DIExpression()), !dbg !206 | |
store %"internal/task.Task"* %t, %"internal/task.Task"** getelementptr inbounds (%"internal/task.Queue", %"internal/task.Queue"* @runtime.runqueue, i64 0, i32 0), align 8, !dbg !207 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %t, metadata !186, metadata !DIExpression()), !dbg !207 | |
br label %if.done4, !dbg !191 | |
} | |
; Function Attrs: optsize | |
define internal fastcc void @"(*internal/task.Task).returnTo"(%"internal/task.Task"* dereferenceable_or_null(32) %t, i8* dereferenceable_or_null(1) %parent) unnamed_addr #1 !dbg !208 { | |
entry: | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %t, metadata !213, metadata !DIExpression()), !dbg !215 | |
call void @llvm.dbg.value(metadata i8* %parent, metadata !214, metadata !DIExpression()), !dbg !215 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %t, metadata !213, metadata !DIExpression()), !dbg !216 | |
%0 = icmp eq %"internal/task.Task"* %t, null, !dbg !217 | |
br i1 %0, label %gep.throw, label %gep.next, !dbg !217 | |
gep.throw: ; preds = %entry | |
tail call fastcc void @runtime.nilPanic(), !dbg !217 | |
unreachable, !dbg !217 | |
gep.next: ; preds = %entry | |
%1 = getelementptr inbounds %"internal/task.Task", %"internal/task.Task"* %t, i64 0, i32 3, i32 0, !dbg !217 | |
call void @llvm.dbg.value(metadata i8* %parent, metadata !214, metadata !DIExpression()), !dbg !218 | |
store i8* %parent, i8** %1, align 8, !dbg !218 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %t, metadata !213, metadata !DIExpression()), !dbg !219 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %t, metadata !220, metadata !DIExpression()), !dbg !225 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %t, metadata !220, metadata !DIExpression()), !dbg !227 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %t, metadata !228, metadata !DIExpression()), !dbg !233 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %t, metadata !228, metadata !DIExpression()), !dbg !235 | |
tail call fastcc void @"(*internal/task.Queue).Push"(%"internal/task.Task"* nonnull %t), !dbg !236 | |
ret void, !dbg !237 | |
} | |
; Function Attrs: optsize | |
define internal fastcc i8* @"(*internal/task.Task).setState"(%"internal/task.Task"* nocapture dereferenceable_or_null(32) %t, i8* dereferenceable_or_null(1) %s) unnamed_addr #1 !dbg !238 { | |
entry: | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %t, metadata !240, metadata !DIExpression()), !dbg !243 | |
call void @llvm.dbg.value(metadata i8* %s, metadata !241, metadata !DIExpression()), !dbg !243 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %t, metadata !240, metadata !DIExpression()), !dbg !244 | |
%0 = icmp eq %"internal/task.Task"* %t, null, !dbg !245 | |
br i1 %0, label %gep.throw, label %gep.next, !dbg !245 | |
gep.throw: ; preds = %entry | |
tail call fastcc void @runtime.nilPanic(), !dbg !245 | |
unreachable, !dbg !245 | |
gep.next: ; preds = %entry | |
%1 = getelementptr inbounds %"internal/task.Task", %"internal/task.Task"* %t, i64 0, i32 3, i32 0, !dbg !245 | |
%.unpack = load i8*, i8** %1, align 8, !dbg !245 | |
call void @llvm.dbg.value(metadata %"internal/task.state" undef, metadata !242, metadata !DIExpression()), !dbg !246 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %t, metadata !240, metadata !DIExpression()), !dbg !247 | |
call void @llvm.dbg.value(metadata i8* %s, metadata !241, metadata !DIExpression()), !dbg !248 | |
store i8* %s, i8** %1, align 8, !dbg !248 | |
ret i8* %.unpack, !dbg !249 | |
} | |
; Function Attrs: optsize | |
define internal fastcc void @"(*sync.Mutex).Unlock"(%sync.Mutex* nocapture dereferenceable_or_null(16) %m) unnamed_addr #1 !dbg !250 { | |
entry: | |
call void @llvm.dbg.value(metadata %sync.Mutex* %m, metadata !269, metadata !DIExpression()), !dbg !272 | |
call void @llvm.dbg.value(metadata %sync.Mutex* %m, metadata !269, metadata !DIExpression()), !dbg !273 | |
%0 = icmp eq %sync.Mutex* %m, null, !dbg !274 | |
br i1 %0, label %gep.throw, label %gep.next, !dbg !274 | |
if.then: ; preds = %gep.next4 | |
call void @llvm.dbg.value(metadata %"internal/task.Stack"* %7, metadata !275, metadata !DIExpression()), !dbg !289 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %9, metadata !286, metadata !DIExpression()), !dbg !291 | |
%1 = getelementptr inbounds %"internal/task.Task", %"internal/task.Task"* %9, i64 0, i32 0, !dbg !292 | |
%2 = bitcast %"internal/task.Task"* %9 to i64*, !dbg !292 | |
%3 = load i64, i64* %2, align 8, !dbg !292 | |
%4 = bitcast %"internal/task.Stack"* %7 to i64*, !dbg !293 | |
store i64 %3, i64* %4, align 8, !dbg !293 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* undef, metadata !287, metadata !DIExpression()), !dbg !293 | |
store %"internal/task.Task"* null, %"internal/task.Task"** %1, align 8, !dbg !294 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* null, metadata !288, metadata !DIExpression()), !dbg !294 | |
call void @llvm.dbg.value(metadata i64 0, metadata !285, metadata !DIExpression()), !dbg !295 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %9, metadata !270, metadata !DIExpression()), !dbg !296 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %9, metadata !228, metadata !DIExpression()), !dbg !297 | |
tail call fastcc void @"(*internal/task.Queue).Push"(%"internal/task.Task"* nonnull %9), !dbg !299 | |
br label %if.done1, !dbg !300 | |
if.done1: ; preds = %store.next, %if.then | |
ret void, !dbg !301 | |
if.then2: ; preds = %gep.next | |
tail call fastcc void @runtime._panic(), !dbg !302 | |
unreachable, !dbg !302 | |
gep.throw: ; preds = %entry | |
tail call fastcc void @runtime.nilPanic(), !dbg !274 | |
unreachable, !dbg !274 | |
gep.next: ; preds = %entry | |
%5 = getelementptr inbounds %sync.Mutex, %sync.Mutex* %m, i64 0, i32 0, !dbg !274 | |
%6 = load i1, i1* %5, align 1, !dbg !274 | |
br i1 %6, label %gep.next4, label %if.then2, !dbg !300 | |
gep.next4: ; preds = %gep.next | |
call void @llvm.dbg.value(metadata %sync.Mutex* %m, metadata !269, metadata !DIExpression()), !dbg !303 | |
%7 = getelementptr inbounds %sync.Mutex, %sync.Mutex* %m, i64 0, i32 1, !dbg !304 | |
call void @llvm.dbg.value(metadata i64 0, metadata !285, metadata !DIExpression()), !dbg !305 | |
call void @llvm.dbg.value(metadata %"internal/task.Stack"* %7, metadata !275, metadata !DIExpression()), !dbg !306 | |
%8 = getelementptr inbounds %"internal/task.Stack", %"internal/task.Stack"* %7, i64 0, i32 0, !dbg !307 | |
%9 = load %"internal/task.Task"*, %"internal/task.Task"** %8, align 8, !dbg !307 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %9, metadata !286, metadata !DIExpression()), !dbg !308 | |
%.not.i = icmp eq %"internal/task.Task"* %9, null, !dbg !309 | |
br i1 %.not.i, label %store.next, label %if.then, !dbg !310 | |
store.next: ; preds = %gep.next4 | |
call void @llvm.dbg.value(metadata i64 0, metadata !285, metadata !DIExpression()), !dbg !295 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %9, metadata !286, metadata !DIExpression()), !dbg !311 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %9, metadata !270, metadata !DIExpression()), !dbg !312 | |
call void @llvm.dbg.value(metadata %sync.Mutex* %m, metadata !269, metadata !DIExpression()), !dbg !313 | |
store i1 false, i1* %5, align 1, !dbg !314 | |
call void @llvm.dbg.value(metadata i1 false, metadata !271, metadata !DIExpression()), !dbg !314 | |
br label %if.done1, !dbg !300 | |
} | |
; Function Attrs: argmemonly nounwind willreturn | |
declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture) #2 | |
; Function Attrs: argmemonly nounwind willreturn | |
declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) #2 | |
; Function Attrs: optsize | |
define internal fastcc void @"(*sync.Once).Do"(%sync.Once* nocapture readnone dereferenceable_or_null(24) %o, i8* nocapture readnone %f.context, i64 %f.funcptr, i8* nocapture readnone %context, i8* %parentHandle) unnamed_addr #1 !dbg !315 { | |
entry: | |
%coro.alloc = tail call fastcc i8* @runtime.alloc(i64 64), !dbg !332 | |
%resume.addr = bitcast i8* %coro.alloc to void (%"(*sync.Once).Do.Frame"*)**, !dbg !332 | |
store void (%"(*sync.Once).Do.Frame"*)* @"(*sync.Once).Do.resume", void (%"(*sync.Once).Do.Frame"*)** %resume.addr, align 8, !dbg !332 | |
%destroy.addr = getelementptr inbounds i8, i8* %coro.alloc, i64 8, !dbg !332 | |
%0 = bitcast i8* %destroy.addr to void (%"(*sync.Once).Do.Frame"*)**, !dbg !332 | |
store void (%"(*sync.Once).Do.Frame"*)* @"(*sync.Once).Do.destroy", void (%"(*sync.Once).Do.Frame"*)** %0, align 8, !dbg !332 | |
%parentHandle.spill.addr = getelementptr inbounds i8, i8* %coro.alloc, i64 40, !dbg !332 | |
%1 = bitcast i8* %parentHandle.spill.addr to i8**, !dbg !332 | |
store i8* %parentHandle, i8** %1, align 8, !dbg !332 | |
%task.current = bitcast i8* %parentHandle to %"internal/task.Task"*, !dbg !332 | |
%task.state.parent = tail call fastcc i8* @"(*internal/task.Task).setState"(%"internal/task.Task"* %task.current, i8* nonnull %coro.alloc), !dbg !332 | |
%task.state.parent.spill.addr = getelementptr inbounds i8, i8* %coro.alloc, i64 48, !dbg !332 | |
%2 = bitcast i8* %task.state.parent.spill.addr to i8**, !dbg !332 | |
store i8* %task.state.parent, i8** %2, align 8, !dbg !332 | |
call void @llvm.dbg.value(metadata i8* undef, metadata !330, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !332 | |
call void @llvm.dbg.value(metadata i64 1, metadata !330, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 64)), !dbg !332 | |
call void @llvm.dbg.value(metadata %sync.Once* @main.once, metadata !329, metadata !DIExpression()), !dbg !333 | |
%3 = load i1, i1* getelementptr inbounds (%sync.Once, %sync.Once* @main.once, i64 0, i32 1, i32 0), align 8, !dbg !334 | |
br i1 %3, label %gep.next2.i, label %store.next.i, !dbg !340 | |
gep.next2.i: ; preds = %entry | |
call void @llvm.dbg.value(metadata i64 0, metadata !341, metadata !DIExpression()), !dbg !350 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %task.current, metadata !347, metadata !DIExpression()), !dbg !352 | |
%4 = icmp eq i8* %parentHandle, null, !dbg !353 | |
br i1 %4, label %gep.throw3.i.i, label %"(*internal/task.Stack).Push.exit.i", !dbg !353 | |
gep.throw3.i.i: ; preds = %gep.next2.i | |
tail call fastcc void @runtime.nilPanic(), !dbg !353 | |
unreachable, !dbg !353 | |
"(*internal/task.Stack).Push.exit.i": ; preds = %gep.next2.i | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %task.current, metadata !347, metadata !DIExpression()), !dbg !354 | |
%5 = load i64, i64* bitcast (%"internal/task.Task"** getelementptr inbounds (%sync.Once, %sync.Once* @main.once, i64 0, i32 1, i32 1, i32 0) to i64*), align 8, !dbg !355 | |
store i8* %parentHandle, i8** bitcast (%"internal/task.Task"** getelementptr inbounds (%sync.Once, %sync.Once* @main.once, i64 0, i32 1, i32 1, i32 0) to i8**), align 8, !dbg !356 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %task.current, metadata !348, metadata !DIExpression()), !dbg !356 | |
%6 = bitcast i8* %parentHandle to i64*, !dbg !353 | |
store i64 %5, i64* %6, align 8, !dbg !353 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* undef, metadata !349, metadata !DIExpression()), !dbg !353 | |
call void @llvm.dbg.value(metadata i64 0, metadata !341, metadata !DIExpression()), !dbg !357 | |
br label %CoroSave, !dbg !358 | |
store.next.i: ; preds = %entry | |
store i1 true, i1* getelementptr inbounds (%sync.Once, %sync.Once* @main.once, i64 0, i32 1, i32 0), align 8, !dbg !359 | |
call void @llvm.dbg.value(metadata i1 true, metadata !338, metadata !DIExpression()), !dbg !359 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %task.current, metadata !220, metadata !DIExpression()), !dbg !360 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %task.current, metadata !220, metadata !DIExpression()), !dbg !362 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %task.current, metadata !228, metadata !DIExpression()), !dbg !363 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %task.current, metadata !228, metadata !DIExpression()), !dbg !365 | |
tail call fastcc void @"(*internal/task.Queue).Push"(%"internal/task.Task"* %task.current), !dbg !366 | |
br label %CoroSave, !dbg !367 | |
CoroSave: ; preds = %"(*internal/task.Stack).Push.exit.i", %store.next.i | |
%index.addr5 = getelementptr inbounds i8, i8* %coro.alloc, i64 56, !dbg !368 | |
%7 = bitcast i8* %index.addr5 to i1*, !dbg !368 | |
store i1 false, i1* %7, align 1, !dbg !368 | |
ret void, !dbg !332 | |
} | |
; Function Attrs: argmemonly nounwind willreturn | |
declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #2 | |
; Function Attrs: optsize | |
define internal fastcc noalias nonnull i8* @runtime.alloc(i64 %size) unnamed_addr #1 !dbg !369 { | |
entry: | |
call void @llvm.dbg.value(metadata i64 %size, metadata !373, metadata !DIExpression()), !dbg !381 | |
call void @llvm.dbg.value(metadata i64 %size, metadata !373, metadata !DIExpression()), !dbg !382 | |
call void @llvm.dbg.value(metadata i64 %size, metadata !383, metadata !DIExpression()), !dbg !387 | |
call void @llvm.dbg.value(metadata i64 %size, metadata !383, metadata !DIExpression()), !dbg !389 | |
%0 = add i64 %size, 15, !dbg !390 | |
%1 = and i64 %0, -16, !dbg !391 | |
call void @llvm.dbg.value(metadata i64 %1, metadata !373, metadata !DIExpression()), !dbg !392 | |
%2 = load i64, i64* @runtime.heapptr, align 8, !dbg !393 | |
call void @llvm.dbg.value(metadata i64 %2, metadata !374, metadata !DIExpression()), !dbg !393 | |
call void @llvm.dbg.value(metadata i64 %2, metadata !375, metadata !DIExpression()), !dbg !394 | |
call void @llvm.dbg.value(metadata i64 %1, metadata !373, metadata !DIExpression()), !dbg !395 | |
%3 = add i64 %2, %1, !dbg !396 | |
store i64 %3, i64* @runtime.heapptr, align 8, !dbg !396 | |
call void @llvm.dbg.value(metadata i64 %3, metadata !374, metadata !DIExpression()), !dbg !396 | |
%4 = load i64, i64* @runtime.heapStart, align 8, !dbg !397 | |
%.pre = load i64, i64* @runtime.heapEnd, align 8, !dbg !404 | |
br label %for.loop, !dbg !405 | |
for.loop: ; preds = %runtime.growHeap.exit, %entry | |
%5 = phi i64 [ %12, %runtime.growHeap.exit ], [ %.pre, %entry ], !dbg !404 | |
call void @llvm.dbg.value(metadata i64 %3, metadata !374, metadata !DIExpression()), !dbg !406 | |
call void @llvm.dbg.value(metadata i64 %5, metadata !376, metadata !DIExpression()), !dbg !404 | |
%.not = icmp ult i64 %3, %5, !dbg !407 | |
br i1 %.not, label %for.loop1, label %for.body, !dbg !405 | |
for.body: ; preds = %for.loop | |
%6 = load i64, i64* @runtime.heapSize, align 8, !dbg !408 | |
call void @llvm.dbg.value(metadata i64 %6, metadata !401, metadata !DIExpression()), !dbg !408 | |
%7 = icmp eq i64 %6, 1073741824, !dbg !409 | |
br i1 %7, label %if.done, label %runtime.growHeap.exit, !dbg !397 | |
runtime.growHeap.exit: ; preds = %for.body | |
call void @llvm.dbg.value(metadata i64 %6, metadata !401, metadata !DIExpression()), !dbg !410 | |
%8 = shl i64 %6, 2, !dbg !411 | |
%9 = udiv i64 %8, 3, !dbg !412 | |
%10 = and i64 %9, -4096, !dbg !413 | |
call void @llvm.dbg.value(metadata i64 %10, metadata !401, metadata !DIExpression()), !dbg !414 | |
%11 = icmp ult i64 %10, 1073741824, !dbg !397 | |
%spec.store.select.i = select i1 %11, i64 %10, i64 1073741824, !dbg !397 | |
store i64 %spec.store.select.i, i64* @runtime.heapSize, align 8, !dbg !397 | |
call void @llvm.dbg.value(metadata i64 %4, metadata !402, metadata !DIExpression()), !dbg !415 | |
call void @llvm.dbg.value(metadata i64 %spec.store.select.i, metadata !401, metadata !DIExpression()), !dbg !416 | |
%12 = add i64 %4, %spec.store.select.i, !dbg !417 | |
call void @llvm.dbg.value(metadata i64 %12, metadata !418, metadata !DIExpression()), !dbg !422 | |
store i64 %12, i64* @runtime.heapEnd, align 8, !dbg !424 | |
call void @llvm.dbg.value(metadata i64 %12, metadata !421, metadata !DIExpression()), !dbg !424 | |
br label %for.loop, !dbg !405 | |
if.done: ; preds = %for.body | |
tail call fastcc void @runtime.runtimePanic(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @"runtime.alloc$string", i64 0, i64 0), i64 13), !dbg !425 | |
unreachable | |
for.loop1: ; preds = %for.loop, %for.body2 | |
%13 = phi i64 [ %17, %for.body2 ], [ 0, %for.loop ], !dbg !426 | |
call void @llvm.dbg.value(metadata i64 %13, metadata !377, metadata !DIExpression()), !dbg !427 | |
call void @llvm.dbg.value(metadata i64 %1, metadata !373, metadata !DIExpression()), !dbg !428 | |
%14 = icmp ult i64 %13, %1, !dbg !429 | |
call void @llvm.dbg.value(metadata i64 %2, metadata !375, metadata !DIExpression()), !dbg !430 | |
br i1 %14, label %for.body2, label %for.done3, !dbg !405 | |
for.body2: ; preds = %for.loop1 | |
call void @llvm.dbg.value(metadata i64 %13, metadata !377, metadata !DIExpression()), !dbg !431 | |
%15 = add i64 %13, %2, !dbg !432 | |
%16 = inttoptr i64 %15 to i32*, !dbg !433 | |
call void @llvm.dbg.value(metadata i32* %16, metadata !378, metadata !DIExpression()), !dbg !434 | |
store i32 0, i32* %16, align 4, !dbg !435 | |
%17 = add nuw i64 %13, 4, !dbg !436 | |
call void @llvm.dbg.value(metadata i64 %17, metadata !377, metadata !DIExpression()), !dbg !436 | |
br label %for.loop1, !dbg !405 | |
for.done3: ; preds = %for.loop1 | |
%18 = inttoptr i64 %2 to i8*, !dbg !437 | |
ret i8* %18, !dbg !438 | |
} | |
; Function Attrs: noreturn optsize | |
define internal fastcc void @runtime.runtimePanic(i8* nocapture readonly %msg.data, i64 %msg.len) unnamed_addr #3 !dbg !439 { | |
entry: | |
call void @llvm.dbg.value(metadata i8* %msg.data, metadata !444, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !445 | |
call void @llvm.dbg.value(metadata i64 %msg.len, metadata !444, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 64)), !dbg !445 | |
tail call fastcc void @runtime.printstring(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @"runtime.runtimePanic$string", i64 0, i64 0), i64 22), !dbg !446 | |
call void @llvm.dbg.value(metadata %runtime.interfaceMethodInfo.1 undef, metadata !444, metadata !DIExpression()), !dbg !447 | |
tail call fastcc void @runtime.printstring(i8* %msg.data, i64 %msg.len), !dbg !448 | |
tail call fastcc void @runtime.printnl(), !dbg !448 | |
tail call void @abort(), !dbg !449 | |
unreachable, !dbg !450 | |
} | |
; Function Attrs: optsize | |
define internal fastcc void @runtime.printstring(i8* nocapture readonly %s.data, i64 %s.len) unnamed_addr #1 !dbg !451 { | |
entry: | |
call void @llvm.dbg.value(metadata i8* %s.data, metadata !454, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !457 | |
call void @llvm.dbg.value(metadata i64 %s.len, metadata !454, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 64)), !dbg !457 | |
call void @llvm.dbg.value(metadata i64 0, metadata !455, metadata !DIExpression()), !dbg !458 | |
%0 = icmp sgt i64 %s.len, 0, !dbg !459 | |
%smax = select i1 %0, i64 %s.len, i64 0, !dbg !459 | |
br label %for.loop, !dbg !459 | |
for.loop: ; preds = %for.body, %entry | |
%1 = phi i64 [ 0, %entry ], [ %6, %for.body ], !dbg !458 | |
call void @llvm.dbg.value(metadata i64 %1, metadata !455, metadata !DIExpression()), !dbg !460 | |
call void @llvm.dbg.value(metadata %runtime.interfaceMethodInfo.1 undef, metadata !454, metadata !DIExpression()), !dbg !461 | |
%exitcond.not = icmp eq i64 %1, %smax, !dbg !462 | |
br i1 %exitcond.not, label %for.done, label %for.body, !dbg !459 | |
for.body: ; preds = %for.loop | |
call void @llvm.dbg.value(metadata %runtime.interfaceMethodInfo.1 undef, metadata !454, metadata !DIExpression()), !dbg !463 | |
call void @llvm.dbg.value(metadata i64 %1, metadata !455, metadata !DIExpression()), !dbg !464 | |
%2 = getelementptr inbounds i8, i8* %s.data, i64 %1, !dbg !465 | |
%3 = load i8, i8* %2, align 1, !dbg !465 | |
call void @llvm.dbg.value(metadata i8 %3, metadata !466, metadata !DIExpression()), !dbg !472 | |
call void @llvm.dbg.value(metadata i8 %3, metadata !466, metadata !DIExpression()), !dbg !474 | |
%4 = zext i8 %3 to i64, !dbg !475 | |
%5 = tail call i64 @putchar(i64 %4), !dbg !476 | |
%6 = add nuw i64 %1, 1, !dbg !477 | |
call void @llvm.dbg.value(metadata i64 %6, metadata !455, metadata !DIExpression()), !dbg !477 | |
br label %for.loop, !dbg !459 | |
for.done: ; preds = %for.loop | |
ret void, !dbg !478 | |
} | |
; Function Attrs: optsize | |
define internal fastcc void @runtime.printnl() unnamed_addr #1 !dbg !479 { | |
entry: | |
call void @llvm.dbg.value(metadata i8 13, metadata !466, metadata !DIExpression()), !dbg !480 | |
call void @llvm.dbg.value(metadata i8 13, metadata !466, metadata !DIExpression()), !dbg !482 | |
%0 = tail call i64 @putchar(i64 13), !dbg !483 | |
call void @llvm.dbg.value(metadata i8 10, metadata !466, metadata !DIExpression()), !dbg !484 | |
call void @llvm.dbg.value(metadata i8 10, metadata !466, metadata !DIExpression()), !dbg !486 | |
%1 = tail call i64 @putchar(i64 10), !dbg !487 | |
ret void, !dbg !488 | |
} | |
; Function Attrs: noreturn optsize | |
declare void @abort() local_unnamed_addr #3 | |
; Function Attrs: optsize | |
declare i64 @putchar(i64) local_unnamed_addr #1 | |
; Function Attrs: noreturn optsize | |
define internal fastcc void @runtime.nilPanic() unnamed_addr #3 !dbg !489 { | |
entry: | |
tail call fastcc void @runtime.runtimePanic(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @"runtime.nilPanic$string", i64 0, i64 0), i64 23), !dbg !490 | |
unreachable | |
} | |
; Function Attrs: optsize | |
define internal fastcc void @"(*runtime.channelBlockedList).detach"(%runtime.channelBlockedList* readonly dereferenceable_or_null(48) %b) unnamed_addr #1 !dbg !491 { | |
entry: | |
call void @llvm.dbg.value(metadata %runtime.channelBlockedList* %b, metadata !517, metadata !DIExpression()), !dbg !522 | |
call void @llvm.dbg.value(metadata %runtime.channelBlockedList* %b, metadata !517, metadata !DIExpression()), !dbg !523 | |
%0 = icmp eq %runtime.channelBlockedList* %b, null, !dbg !524 | |
br i1 %0, label %gep.throw, label %gep.next, !dbg !524 | |
if.then: ; preds = %rangeindex.loop, %gep.next | |
ret void, !dbg !525 | |
if.done: ; preds = %gep.next | |
%.elt1 = getelementptr inbounds %runtime.channelBlockedList, %runtime.channelBlockedList* %b, i64 0, i32 3, i32 1, !dbg !524 | |
%.unpack2 = load i64, i64* %.elt1, align 8, !dbg !524 | |
call void @llvm.dbg.value(metadata %runtime.channelBlockedList* %b, metadata !517, metadata !DIExpression()), !dbg !526 | |
%1 = icmp sgt i64 %.unpack2, 0, !dbg !527 | |
%smax = select i1 %1, i64 %.unpack2, i64 0, !dbg !527 | |
%2 = add nsw i64 %smax, -1, !dbg !527 | |
%3 = add i64 %.unpack2, -1, !dbg !527 | |
br label %rangeindex.loop, !dbg !527 | |
rangeindex.loop: ; preds = %rangeindex.loop.backedge, %if.done | |
%4 = phi i64 [ -1, %if.done ], [ %5, %rangeindex.loop.backedge ], !dbg !527 | |
%5 = add nsw i64 %4, 1, !dbg !527 | |
%exitcond.not = icmp eq i64 %4, %2, !dbg !527 | |
br i1 %exitcond.not, label %if.then, label %rangeindex.body, !dbg !527 | |
rangeindex.body: ; preds = %rangeindex.loop | |
%exitcond28.not = icmp eq i64 %4, %3, !dbg !528 | |
br i1 %exitcond28.not, label %lookup.throw, label %lookup.next, !dbg !528 | |
gep.throw: ; preds = %entry | |
tail call fastcc void @runtime.nilPanic(), !dbg !524 | |
unreachable, !dbg !524 | |
gep.next: ; preds = %entry | |
%.elt = getelementptr inbounds %runtime.channelBlockedList, %runtime.channelBlockedList* %b, i64 0, i32 3, i32 0, !dbg !524 | |
%.unpack = load %runtime.channelBlockedList*, %runtime.channelBlockedList** %.elt, align 8, !dbg !524 | |
%6 = icmp eq %runtime.channelBlockedList* %.unpack, null, !dbg !529 | |
br i1 %6, label %if.then, label %if.done, !dbg !527 | |
lookup.throw: ; preds = %rangeindex.body | |
tail call fastcc void @runtime.lookupPanic(), !dbg !528 | |
unreachable, !dbg !528 | |
lookup.next: ; preds = %rangeindex.body | |
%.elt9 = getelementptr inbounds %runtime.channelBlockedList, %runtime.channelBlockedList* %.unpack, i64 %5, i32 2, !dbg !527 | |
%.unpack10 = load %runtime.chanSelectState*, %runtime.chanSelectState** %.elt9, align 8, !dbg !527 | |
call void @llvm.dbg.value(metadata i64 %5, metadata !518, metadata !DIExpression()), !dbg !530 | |
call void @llvm.dbg.value(metadata %runtime.channelBlockedList undef, metadata !519, metadata !DIExpression()), !dbg !531 | |
call void @llvm.dbg.value(metadata %runtime.channelBlockedList* %b, metadata !517, metadata !DIExpression()), !dbg !532 | |
%.unpack21 = load i64, i64* %.elt1, align 8, !dbg !533 | |
%.not24 = icmp ult i64 %5, %.unpack21, !dbg !534 | |
br i1 %.not24, label %lookup.next19, label %lookup.throw18, !dbg !534 | |
lookup.throw18: ; preds = %lookup.next | |
tail call fastcc void @runtime.lookupPanic(), !dbg !534 | |
unreachable, !dbg !534 | |
lookup.next19: ; preds = %lookup.next | |
%.unpack19 = load %runtime.channelBlockedList*, %runtime.channelBlockedList** %.elt, align 8, !dbg !533 | |
%.elt7 = getelementptr inbounds %runtime.channelBlockedList, %runtime.channelBlockedList* %.unpack, i64 %5, i32 1, !dbg !527 | |
%.unpack8 = load %"internal/task.Task"*, %"internal/task.Task"** %.elt7, align 8, !dbg !527 | |
%7 = getelementptr inbounds %runtime.channelBlockedList, %runtime.channelBlockedList* %.unpack19, i64 %5, !dbg !534 | |
call void @llvm.dbg.value(metadata %runtime.channelBlockedList* %b, metadata !517, metadata !DIExpression()), !dbg !535 | |
%8 = icmp eq %runtime.channelBlockedList* %7, %b, !dbg !536 | |
%9 = icmp eq %"internal/task.Task"* %.unpack8, null | |
%or.cond = or i1 %8, %9, !dbg !527 | |
br i1 %or.cond, label %rangeindex.loop.backedge, label %deref.next23, !dbg !527 | |
deref.next23: ; preds = %lookup.next19 | |
%10 = icmp eq %runtime.chanSelectState* %.unpack10, null, !dbg !537 | |
br i1 %10, label %gep.throw24, label %gep.next25, !dbg !537 | |
gep.throw24: ; preds = %deref.next23 | |
tail call fastcc void @runtime.nilPanic(), !dbg !537 | |
unreachable, !dbg !537 | |
gep.next25: ; preds = %deref.next23 | |
%11 = getelementptr inbounds %runtime.chanSelectState, %runtime.chanSelectState* %.unpack10, i64 0, i32 0, !dbg !537 | |
%12 = load %runtime.channel*, %runtime.channel** %11, align 8, !dbg !537 | |
%13 = icmp eq %runtime.channel* %12, null, !dbg !538 | |
br i1 %13, label %gep.throw28, label %gep.next29, !dbg !538 | |
gep.throw28: ; preds = %gep.next25 | |
tail call fastcc void @runtime.nilPanic(), !dbg !538 | |
unreachable, !dbg !538 | |
gep.next29: ; preds = %gep.next25 | |
%14 = getelementptr inbounds %runtime.channel, %runtime.channel* %12, i64 0, i32 3, !dbg !538 | |
%15 = load %runtime.channelBlockedList*, %runtime.channelBlockedList** %14, align 8, !dbg !539 | |
call void @llvm.dbg.value(metadata %runtime.channelBlockedList* %b, metadata !517, metadata !DIExpression()), !dbg !540 | |
call void @llvm.dbg.value(metadata i64 %5, metadata !518, metadata !DIExpression()), !dbg !541 | |
call void @llvm.dbg.value(metadata %runtime.channelBlockedList* %15, metadata !542, metadata !DIExpression()), !dbg !550 | |
call void @llvm.dbg.value(metadata %runtime.channelBlockedList* %7, metadata !547, metadata !DIExpression()), !dbg !552 | |
%16 = icmp eq %runtime.channelBlockedList* %15, %7, !dbg !553 | |
br i1 %16, label %if.then.i, label %for.loop.i, !dbg !554 | |
if.then.i: ; preds = %gep.next29 | |
%17 = icmp eq %runtime.channelBlockedList* %.unpack19, null, !dbg !555 | |
br i1 %17, label %gep.throw.i, label %gep.next.i, !dbg !555 | |
for.loop.i: ; preds = %gep.next29, %deref.next6.i | |
%18 = phi %runtime.channelBlockedList* [ %22, %deref.next6.i ], [ %15, %gep.next29 ], !dbg !556 | |
call void @llvm.dbg.value(metadata %runtime.channelBlockedList* %18, metadata !548, metadata !DIExpression()), !dbg !557 | |
%cond.i = icmp eq %runtime.channelBlockedList* %18, null, !dbg !554 | |
br i1 %cond.i, label %"(*runtime.channelBlockedList).remove.exit", label %deref.next6.i, !dbg !554 | |
gep.throw.i: ; preds = %if.then.i | |
tail call fastcc void @runtime.nilPanic(), !dbg !555 | |
unreachable, !dbg !555 | |
gep.next.i: ; preds = %if.then.i | |
%19 = getelementptr inbounds %runtime.channelBlockedList, %runtime.channelBlockedList* %7, i64 0, i32 0, !dbg !555 | |
%20 = load %runtime.channelBlockedList*, %runtime.channelBlockedList** %19, align 8, !dbg !555 | |
br label %"(*runtime.channelBlockedList).remove.exit", !dbg !558 | |
deref.next6.i: ; preds = %for.loop.i | |
call void @llvm.dbg.value(metadata %runtime.channelBlockedList* %18, metadata !548, metadata !DIExpression()), !dbg !559 | |
%21 = getelementptr inbounds %runtime.channelBlockedList, %runtime.channelBlockedList* %18, i64 0, i32 0, !dbg !560 | |
%22 = load %runtime.channelBlockedList*, %runtime.channelBlockedList** %21, align 8, !dbg !560 | |
call void @llvm.dbg.value(metadata %runtime.channelBlockedList* %7, metadata !547, metadata !DIExpression()), !dbg !561 | |
%.not.i = icmp eq %runtime.channelBlockedList* %22, %7, !dbg !562 | |
br i1 %.not.i, label %gep.next12.i, label %for.loop.i, !dbg !554 | |
gep.next12.i: ; preds = %deref.next6.i | |
call void @llvm.dbg.value(metadata %runtime.channelBlockedList* %18, metadata !548, metadata !DIExpression()), !dbg !557 | |
call void @llvm.dbg.value(metadata %runtime.channelBlockedList* %18, metadata !548, metadata !DIExpression()), !dbg !557 | |
call void @llvm.dbg.value(metadata %runtime.channelBlockedList* %18, metadata !548, metadata !DIExpression()), !dbg !557 | |
call void @llvm.dbg.value(metadata %runtime.channelBlockedList* %18, metadata !548, metadata !DIExpression()), !dbg !557 | |
call void @llvm.dbg.value(metadata %runtime.channelBlockedList* %18, metadata !548, metadata !DIExpression()), !dbg !563 | |
call void @llvm.dbg.value(metadata %runtime.channelBlockedList* %7, metadata !547, metadata !DIExpression()), !dbg !564 | |
%23 = icmp eq %runtime.channelBlockedList* %.unpack19, null, !dbg !565 | |
br i1 %23, label %gep.throw13.i, label %gep.next14.i, !dbg !565 | |
gep.throw13.i: ; preds = %gep.next12.i | |
tail call fastcc void @runtime.nilPanic(), !dbg !565 | |
unreachable, !dbg !565 | |
gep.next14.i: ; preds = %gep.next12.i | |
%24 = bitcast %runtime.channelBlockedList* %7 to i64*, !dbg !565 | |
%25 = load i64, i64* %24, align 8, !dbg !565 | |
%26 = bitcast %runtime.channelBlockedList* %18 to i64*, !dbg !566 | |
store i64 %25, i64* %26, align 8, !dbg !566 | |
call void @llvm.dbg.value(metadata %runtime.channelBlockedList* undef, metadata !549, metadata !DIExpression()), !dbg !566 | |
br label %"(*runtime.channelBlockedList).remove.exit", !dbg !554 | |
"(*runtime.channelBlockedList).remove.exit": ; preds = %for.loop.i, %gep.next14.i, %gep.next.i | |
%27 = phi %runtime.channelBlockedList* [ %20, %gep.next.i ], [ %15, %gep.next14.i ], [ %15, %for.loop.i ] | |
store %runtime.channelBlockedList* %27, %runtime.channelBlockedList** %14, align 8, !dbg !538 | |
call void @llvm.dbg.value(metadata %runtime.channelBlockedList* %27, metadata !520, metadata !DIExpression()), !dbg !538 | |
%28 = load %runtime.channel*, %runtime.channel** %11, align 8, !dbg !567 | |
%29 = icmp eq %runtime.channel* %28, null, !dbg !568 | |
br i1 %29, label %gep.throw54, label %gep.next55, !dbg !568 | |
gep.throw54: ; preds = %"(*runtime.channelBlockedList).remove.exit" | |
tail call fastcc void @runtime.nilPanic(), !dbg !568 | |
unreachable, !dbg !568 | |
gep.next55: ; preds = %"(*runtime.channelBlockedList).remove.exit" | |
%30 = getelementptr inbounds %runtime.channel, %runtime.channel* %28, i64 0, i32 3, !dbg !568 | |
%31 = load %runtime.channelBlockedList*, %runtime.channelBlockedList** %30, align 8, !dbg !568 | |
%32 = icmp eq %runtime.channelBlockedList* %31, null, !dbg !569 | |
br i1 %32, label %gep.next61, label %rangeindex.loop.backedge, !dbg !527 | |
gep.next61: ; preds = %gep.next55 | |
%33 = getelementptr inbounds %runtime.chanSelectState, %runtime.chanSelectState* %.unpack10, i64 0, i32 1, !dbg !570 | |
%34 = load i8*, i8** %33, align 8, !dbg !570 | |
%35 = icmp eq i8* %34, null, !dbg !571 | |
br i1 %35, label %gep.next71, label %gep.next91, !dbg !527 | |
gep.next71: ; preds = %gep.next61 | |
%36 = getelementptr inbounds %runtime.channel, %runtime.channel* %28, i64 0, i32 2, !dbg !572 | |
%37 = load i8, i8* %36, align 1, !dbg !572 | |
%.not25 = icmp eq i8 %37, 4, !dbg !573 | |
br i1 %.not25, label %rangeindex.loop.backedge, label %store.next83, !dbg !527 | |
store.next83: ; preds = %gep.next71 | |
store i8 0, i8* %36, align 1, !dbg !574 | |
call void @llvm.dbg.value(metadata i8 0, metadata !521, metadata !DIExpression()), !dbg !574 | |
br label %rangeindex.loop.backedge, !dbg !527 | |
gep.next91: ; preds = %gep.next61 | |
%38 = getelementptr inbounds %runtime.channel, %runtime.channel* %28, i64 0, i32 6, !dbg !575 | |
%39 = load i64, i64* %38, align 8, !dbg !575 | |
%40 = icmp eq i64 %39, 0, !dbg !576 | |
%41 = getelementptr inbounds %runtime.channel, %runtime.channel* %28, i64 0, i32 2, !dbg !527 | |
br i1 %40, label %gep.next101, label %gep.next111, !dbg !527 | |
gep.next101: ; preds = %gep.next91 | |
store i8 0, i8* %41, align 1, !dbg !577 | |
call void @llvm.dbg.value(metadata i8 0, metadata !521, metadata !DIExpression()), !dbg !577 | |
br label %rangeindex.loop.backedge, !dbg !527 | |
gep.next111: ; preds = %gep.next91 | |
store i8 3, i8* %41, align 1, !dbg !578 | |
call void @llvm.dbg.value(metadata i8 3, metadata !521, metadata !DIExpression()), !dbg !578 | |
br label %rangeindex.loop.backedge, !dbg !527 | |
rangeindex.loop.backedge: ; preds = %gep.next111, %gep.next101, %store.next83, %gep.next55, %gep.next71, %lookup.next19 | |
br label %rangeindex.loop, !dbg !527 | |
} | |
; Function Attrs: noreturn optsize | |
define internal fastcc void @runtime.lookupPanic() unnamed_addr #3 !dbg !579 { | |
entry: | |
tail call fastcc void @runtime.runtimePanic(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @"runtime.lookupPanic$string", i64 0, i64 0), i64 18), !dbg !580 | |
unreachable | |
} | |
; Function Attrs: nounwind optsize | |
define internal fastcc i1 @"(*runtime.channel).pop"(i8* nocapture %value) unnamed_addr #4 !dbg !581 { | |
entry: | |
call void @llvm.dbg.value(metadata i8* %value, metadata !586, metadata !DIExpression()), !dbg !590 | |
call void @llvm.dbg.value(metadata %runtime.channel* bitcast ({ [56 x i8], {}* }* @"main$alloc.60" to %runtime.channel*), metadata !585, metadata !DIExpression()), !dbg !591 | |
%0 = load i64, i64* bitcast (i8* getelementptr inbounds ({ [56 x i8], {}* }, { [56 x i8], {}* }* @"main$alloc.60", i64 0, i32 0, i64 48) to i64*), align 8, !dbg !592 | |
%1 = icmp eq i64 %0, 0, !dbg !593 | |
br i1 %1, label %if.then, label %deref.next6, !dbg !594 | |
if.then: ; preds = %entry | |
ret i1 false, !dbg !595 | |
deref.next6: ; preds = %entry | |
call void @llvm.dbg.value(metadata %runtime.channel* bitcast ({ [56 x i8], {}* }* @"main$alloc.60" to %runtime.channel*), metadata !585, metadata !DIExpression()), !dbg !596 | |
%2 = load i8*, i8** bitcast ({}** getelementptr inbounds ({ [56 x i8], {}* }, { [56 x i8], {}* }* @"main$alloc.60", i64 0, i32 1) to i8**), align 8, !dbg !597 | |
%3 = load i64, i64* bitcast ({ [56 x i8], {}* }* @"main$alloc.60" to i64*), align 8, !dbg !598 | |
%4 = load i64, i64* bitcast (i8* getelementptr inbounds ({ [56 x i8], {}* }, { [56 x i8], {}* }* @"main$alloc.60", i64 0, i32 0, i64 40) to i64*), align 8, !dbg !599 | |
%5 = mul i64 %4, %3, !dbg !600 | |
%6 = getelementptr inbounds i8, i8* %2, i64 %5, !dbg !601 | |
call void @llvm.dbg.value(metadata i8* %value, metadata !586, metadata !DIExpression()), !dbg !602 | |
call void @llvm.dbg.value(metadata i8* %6, metadata !587, metadata !DIExpression()), !dbg !603 | |
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %value, i8* align 1 %6, i64 %3, i1 false), !dbg !604 | |
%7 = load i64, i64* bitcast ({ [56 x i8], {}* }* @"main$alloc.60" to i64*), align 8, !dbg !605 | |
tail call void @llvm.memset.p0i8.i64(i8* align 1 %6, i8 0, i64 %7, i1 false), !dbg !606 | |
%8 = load i64, i64* bitcast (i8* getelementptr inbounds ({ [56 x i8], {}* }, { [56 x i8], {}* }* @"main$alloc.60", i64 0, i32 0, i64 48) to i64*), align 8, !dbg !607 | |
%9 = add i64 %8, -1, !dbg !608 | |
store i64 %9, i64* bitcast (i8* getelementptr inbounds ({ [56 x i8], {}* }, { [56 x i8], {}* }* @"main$alloc.60", i64 0, i32 0, i64 48) to i64*), align 8, !dbg !607 | |
call void @llvm.dbg.value(metadata i64 %9, metadata !588, metadata !DIExpression()), !dbg !607 | |
%10 = load i64, i64* bitcast (i8* getelementptr inbounds ({ [56 x i8], {}* }, { [56 x i8], {}* }* @"main$alloc.60", i64 0, i32 0, i64 40) to i64*), align 8, !dbg !609 | |
%11 = add i64 %10, 1, !dbg !610 | |
call void @llvm.dbg.value(metadata i64 %11, metadata !589, metadata !DIExpression()), !dbg !609 | |
%12 = load i64, i64* bitcast (i8* getelementptr inbounds ({ [56 x i8], {}* }, { [56 x i8], {}* }* @"main$alloc.60", i64 0, i32 0, i64 8) to i64*), align 8, !dbg !611 | |
%13 = icmp eq i64 %11, %12, !dbg !612 | |
%spec.store.select = select i1 %13, i64 0, i64 %11, !dbg !594 | |
store i64 %spec.store.select, i64* bitcast (i8* getelementptr inbounds ({ [56 x i8], {}* }, { [56 x i8], {}* }* @"main$alloc.60", i64 0, i32 0, i64 40) to i64*), align 8, !dbg !594 | |
ret i1 true, !dbg !594 | |
} | |
; Function Attrs: argmemonly nounwind willreturn writeonly | |
declare void @llvm.memset.p0i8.i64(i8* nocapture writeonly, i8, i64, i1 immarg) #5 | |
; Function Attrs: optsize | |
define internal fastcc i8* @"(*runtime.channel).resumeTX"() unnamed_addr #1 !dbg !613 { | |
entry: | |
call void @llvm.dbg.value(metadata %runtime.channelBlockedList* null, metadata !618, metadata !DIExpression()), !dbg !622 | |
call void @llvm.dbg.value(metadata %runtime.channel* bitcast ({ [56 x i8], {}* }* @"main$alloc.60" to %runtime.channel*), metadata !617, metadata !DIExpression()), !dbg !623 | |
%0 = load %runtime.channelBlockedList*, %runtime.channelBlockedList** bitcast (i8* getelementptr inbounds ({ [56 x i8], {}* }, { [56 x i8], {}* }* @"main$alloc.60", i64 0, i32 0, i64 24) to %runtime.channelBlockedList**), align 8, !dbg !624 | |
%1 = icmp eq %runtime.channelBlockedList* %0, null, !dbg !625 | |
br i1 %1, label %gep.throw7, label %gep.next8, !dbg !625 | |
gep.throw7: ; preds = %entry | |
tail call fastcc void @runtime.nilPanic(), !dbg !625 | |
unreachable, !dbg !625 | |
gep.next8: ; preds = %entry | |
%2 = bitcast %runtime.channelBlockedList* %0 to i64*, !dbg !625 | |
%3 = load i64, i64* %2, align 8, !dbg !625 | |
call void @llvm.dbg.value(metadata %runtime.channelBlockedList* %0, metadata !618, metadata !DIExpression()), !dbg !626 | |
store i64 %3, i64* bitcast (i8* getelementptr inbounds ({ [56 x i8], {}* }, { [56 x i8], {}* }* @"main$alloc.60", i64 0, i32 0, i64 24) to i64*), align 8, !dbg !627 | |
call void @llvm.dbg.value(metadata %runtime.channelBlockedList* undef, metadata !619, metadata !DIExpression()), !dbg !627 | |
%4 = getelementptr inbounds %runtime.channelBlockedList, %runtime.channelBlockedList* %0, i64 0, i32 1, !dbg !628 | |
%5 = load %"internal/task.Task"*, %"internal/task.Task"** %4, align 8, !dbg !628 | |
%6 = icmp eq %"internal/task.Task"* %5, null, !dbg !629 | |
br i1 %6, label %gep.throw15, label %gep.next16, !dbg !629 | |
gep.throw15: ; preds = %gep.next8 | |
tail call fastcc void @runtime.nilPanic(), !dbg !629 | |
unreachable, !dbg !629 | |
gep.next16: ; preds = %gep.next8 | |
%7 = getelementptr inbounds %"internal/task.Task", %"internal/task.Task"* %5, i64 0, i32 1, !dbg !629 | |
%8 = load i8*, i8** %7, align 8, !dbg !629 | |
call void @llvm.dbg.value(metadata i8* %8, metadata !620, metadata !DIExpression()), !dbg !630 | |
call void @llvm.dbg.value(metadata %runtime.channelBlockedList* %0, metadata !618, metadata !DIExpression()), !dbg !631 | |
%9 = getelementptr inbounds %runtime.channelBlockedList, %runtime.channelBlockedList* %0, i64 0, i32 2, !dbg !632 | |
%10 = load %runtime.chanSelectState*, %runtime.chanSelectState** %9, align 8, !dbg !632 | |
%.not = icmp eq %runtime.chanSelectState* %10, null, !dbg !633 | |
br i1 %.not, label %deref.next46, label %gep.next28, !dbg !634 | |
gep.next28: ; preds = %gep.next16 | |
call void @llvm.dbg.value(metadata %runtime.channelBlockedList* %0, metadata !618, metadata !DIExpression()), !dbg !635 | |
%11 = getelementptr inbounds %runtime.chanSelectState, %runtime.chanSelectState* %10, i64 0, i32 1, !dbg !636 | |
%12 = load i8*, i8** %11, align 8, !dbg !636 | |
call void @llvm.dbg.value(metadata i8* %12, metadata !620, metadata !DIExpression()), !dbg !637 | |
%13 = bitcast i8** %7 to %runtime.chanSelectState**, !dbg !638 | |
store %runtime.chanSelectState* %10, %runtime.chanSelectState** %13, align 8, !dbg !638 | |
call void @llvm.dbg.value(metadata %runtime.chanSelectState* %10, metadata !621, metadata !DIExpression()), !dbg !638 | |
tail call fastcc void @"(*runtime.channelBlockedList).detach"(%runtime.channelBlockedList* nonnull %0), !dbg !639 | |
%.pre = load %"internal/task.Task"*, %"internal/task.Task"** %4, align 8, !dbg !640 | |
br label %deref.next46, !dbg !634 | |
deref.next46: ; preds = %gep.next16, %gep.next28 | |
%14 = phi %"internal/task.Task"* [ %5, %gep.next16 ], [ %.pre, %gep.next28 ], !dbg !640 | |
%15 = phi i8* [ %8, %gep.next16 ], [ %12, %gep.next28 ], !dbg !630 | |
call void @llvm.dbg.value(metadata %runtime.channelBlockedList* %0, metadata !618, metadata !DIExpression()), !dbg !641 | |
tail call fastcc void @"(*internal/task.Queue).Push"(%"internal/task.Task"* %14), !dbg !642 | |
call void @llvm.dbg.value(metadata i8* %15, metadata !620, metadata !DIExpression()), !dbg !643 | |
ret i8* %15, !dbg !644 | |
} | |
; Function Attrs: noreturn optsize | |
define internal fastcc void @runtime._panic() unnamed_addr #3 !dbg !645 { | |
entry: | |
call void @llvm.dbg.value(metadata i64 34, metadata !653, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !654 | |
tail call fastcc void @runtime.printstring(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"runtime._panic$string", i64 0, i64 0), i64 7), !dbg !655 | |
tail call fastcc void @runtime.printitf(), !dbg !656 | |
tail call fastcc void @runtime.printnl(), !dbg !657 | |
tail call void @abort(), !dbg !658 | |
unreachable, !dbg !659 | |
} | |
; Function Attrs: optsize | |
define internal fastcc void @runtime.printitf() unnamed_addr #1 !dbg !660 { | |
entry: | |
call void @llvm.dbg.value(metadata i64 34, metadata !662, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !693 | |
tail call fastcc void @runtime.printstring(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @"(*sync.Mutex).Unlock$string", i64 0, i64 0), i64 30), !dbg !694 | |
ret void, !dbg !695 | |
} | |
; Function Attrs: optsize | |
define internal fastcc i1 @runtime.chanRecv(%runtime.channel* nocapture readnone dereferenceable_or_null(64) %ch, i8* %value, %runtime.channelBlockedList* dereferenceable_or_null(48) %blockedlist, i8* nocapture readnone %context, i8* %parentHandle) unnamed_addr #1 !dbg !696 { | |
entry: | |
%coro.alloc = tail call fastcc i8* @runtime.alloc(i64 48), !dbg !712 | |
%resume.addr = bitcast i8* %coro.alloc to void (%runtime.chanRecv.Frame*)**, !dbg !712 | |
store void (%runtime.chanRecv.Frame*)* @runtime.chanRecv.resume, void (%runtime.chanRecv.Frame*)** %resume.addr, align 8, !dbg !712 | |
%destroy.addr = getelementptr inbounds i8, i8* %coro.alloc, i64 8, !dbg !712 | |
%0 = bitcast i8* %destroy.addr to void (%runtime.chanRecv.Frame*)**, !dbg !712 | |
store void (%runtime.chanRecv.Frame*)* @runtime.chanRecv.destroy, void (%runtime.chanRecv.Frame*)** %0, align 8, !dbg !712 | |
%parentHandle.spill.addr = getelementptr inbounds i8, i8* %coro.alloc, i64 16, !dbg !712 | |
%1 = bitcast i8* %parentHandle.spill.addr to i8**, !dbg !712 | |
store i8* %parentHandle, i8** %1, align 8, !dbg !712 | |
%task.current = bitcast i8* %parentHandle to %"internal/task.Task"*, !dbg !712 | |
%task.state.parent = tail call fastcc i8* @"(*internal/task.Task).setState"(%"internal/task.Task"* %task.current, i8* nonnull %coro.alloc), !dbg !712 | |
%task.state.parent.spill.addr = getelementptr inbounds i8, i8* %coro.alloc, i64 24, !dbg !713 | |
%2 = bitcast i8* %task.state.parent.spill.addr to i8**, !dbg !713 | |
store i8* %task.state.parent, i8** %2, align 8, !dbg !713 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %task.current, metadata !716, metadata !DIExpression()), !dbg !718 | |
%3 = icmp eq i8* %parentHandle, null, !dbg !719 | |
br i1 %3, label %gep.throw.i, label %"(*internal/task.Task).getReturnPtr.exit", !dbg !719 | |
gep.throw.i: ; preds = %entry | |
tail call fastcc void @runtime.nilPanic(), !dbg !719 | |
unreachable, !dbg !719 | |
"(*internal/task.Task).getReturnPtr.exit": ; preds = %entry | |
%4 = getelementptr inbounds i8, i8* %parentHandle, i64 8, !dbg !719 | |
%5 = bitcast i8* %4 to i1**, !dbg !719 | |
%6 = load i1*, i1** %5, align 8, !dbg !719 | |
%.spill.addr = getelementptr inbounds i8, i8* %coro.alloc, i64 32, !dbg !712 | |
%7 = bitcast i8* %.spill.addr to i1**, !dbg !712 | |
store i1* %6, i1** %7, align 8, !dbg !712 | |
call void @llvm.dbg.value(metadata %runtime.channel* bitcast ({ [56 x i8], {}* }* @"main$alloc.60" to %runtime.channel*), metadata !700, metadata !DIExpression()), !dbg !712 | |
call void @llvm.dbg.value(metadata i8* %value, metadata !701, metadata !DIExpression()), !dbg !712 | |
call void @llvm.dbg.value(metadata %runtime.channelBlockedList* %blockedlist, metadata !702, metadata !DIExpression()), !dbg !712 | |
call void @llvm.dbg.value(metadata i64 0, metadata !703, metadata !DIExpression()), !dbg !720 | |
call void @llvm.dbg.value(metadata %runtime.channel* bitcast ({ [56 x i8], {}* }* @"main$alloc.60" to %runtime.channel*), metadata !700, metadata !DIExpression()), !dbg !721 | |
call void @llvm.dbg.value(metadata i8* %value, metadata !701, metadata !DIExpression()), !dbg !722 | |
call void @llvm.dbg.value(metadata i8* %value, metadata !723, metadata !DIExpression()), !dbg !731 | |
call void @llvm.dbg.value(metadata i64 0, metadata !727, metadata !DIExpression()), !dbg !733 | |
call void @llvm.dbg.value(metadata %runtime.channel* bitcast ({ [56 x i8], {}* }* @"main$alloc.60" to %runtime.channel*), metadata !726, metadata !DIExpression()), !dbg !734 | |
%8 = load i8, i8* getelementptr inbounds ({ [56 x i8], {}* }, { [56 x i8], {}* }* @"main$alloc.60", i64 0, i32 0, i64 16), align 8, !dbg !735 | |
switch i8 %8, label %switch.next18.i [ | |
i8 3, label %switch.body.i | |
i8 2, label %switch.body.i | |
i8 1, label %"(*runtime.channel).tryRecv.exit" | |
i8 0, label %"(*runtime.channel).tryRecv.exit" | |
i8 4, label %switch.body15.i | |
], !dbg !736 | |
switch.body.i: ; preds = %"(*internal/task.Task).getReturnPtr.exit", %"(*internal/task.Task).getReturnPtr.exit" | |
call void @llvm.dbg.value(metadata %runtime.channel* bitcast ({ [56 x i8], {}* }* @"main$alloc.60" to %runtime.channel*), metadata !726, metadata !DIExpression()), !dbg !737 | |
call void @llvm.dbg.value(metadata i8* %value, metadata !723, metadata !DIExpression()), !dbg !738 | |
%9 = tail call fastcc i1 @"(*runtime.channel).pop"(i8* %value), !dbg !739 | |
call void @llvm.dbg.value(metadata %runtime.channel* bitcast ({ [56 x i8], {}* }* @"main$alloc.60" to %runtime.channel*), metadata !726, metadata !DIExpression()), !dbg !740 | |
call void @llvm.dbg.value(metadata %runtime.channel* bitcast ({ [56 x i8], {}* }* @"main$alloc.60" to %runtime.channel*), metadata !726, metadata !DIExpression()), !dbg !741 | |
%10 = load %runtime.channelBlockedList*, %runtime.channelBlockedList** bitcast (i8* getelementptr inbounds ({ [56 x i8], {}* }, { [56 x i8], {}* }* @"main$alloc.60", i64 0, i32 0, i64 24) to %runtime.channelBlockedList**), align 8, !dbg !736 | |
%.not.i = icmp eq %runtime.channelBlockedList* %10, null, !dbg !736 | |
br i1 %9, label %deref.next22.i, label %deref.next40.i, !dbg !736 | |
if.then2.i: ; preds = %deref.next22.i | |
call void @llvm.dbg.value(metadata %runtime.channel* bitcast ({ [56 x i8], {}* }* @"main$alloc.60" to %runtime.channel*), metadata !726, metadata !DIExpression()), !dbg !742 | |
%11 = tail call fastcc i8* @"(*runtime.channel).resumeTX"(), !dbg !743 | |
call void @llvm.dbg.value(metadata i8* %11, metadata !728, metadata !DIExpression()), !dbg !744 | |
call void @llvm.dbg.value(metadata i8* %11, metadata !745, metadata !DIExpression()) #10, !dbg !751 | |
call void @llvm.dbg.value(metadata %runtime.channel* bitcast ({ [56 x i8], {}* }* @"main$alloc.60" to %runtime.channel*), metadata !748, metadata !DIExpression()) #10, !dbg !753 | |
%12 = load i64, i64* bitcast (i8* getelementptr inbounds ({ [56 x i8], {}* }, { [56 x i8], {}* }* @"main$alloc.60", i64 0, i32 0, i64 8) to i64*), align 8, !dbg !754 | |
%13 = icmp eq i64 %12, 0, !dbg !755 | |
%14 = load i64, i64* bitcast (i8* getelementptr inbounds ({ [56 x i8], {}* }, { [56 x i8], {}* }* @"main$alloc.60", i64 0, i32 0, i64 48) to i64*), align 8 | |
%15 = icmp eq i64 %14, %12 | |
%or.cond.i.i = or i1 %13, %15, !dbg !756 | |
call void @llvm.dbg.value(metadata %runtime.channel* bitcast ({ [56 x i8], {}* }* @"main$alloc.60" to %runtime.channel*), metadata !748, metadata !DIExpression()) #10, !dbg !757 | |
br i1 %or.cond.i.i, label %"(*runtime.channel).push.exit.i", label %deref.next16.i.i, !dbg !756 | |
deref.next16.i.i: ; preds = %if.then2.i | |
call void @llvm.dbg.value(metadata %runtime.channel* bitcast ({ [56 x i8], {}* }* @"main$alloc.60" to %runtime.channel*), metadata !748, metadata !DIExpression()) #10, !dbg !758 | |
%16 = load i8*, i8** bitcast ({}** getelementptr inbounds ({ [56 x i8], {}* }, { [56 x i8], {}* }* @"main$alloc.60", i64 0, i32 1) to i8**), align 8, !dbg !759 | |
%17 = load i64, i64* bitcast ({ [56 x i8], {}* }* @"main$alloc.60" to i64*), align 8, !dbg !760 | |
%18 = load i64, i64* bitcast (i8* getelementptr inbounds ({ [56 x i8], {}* }, { [56 x i8], {}* }* @"main$alloc.60", i64 0, i32 0, i64 32) to i64*), align 8, !dbg !761 | |
%19 = mul i64 %18, %17, !dbg !762 | |
%20 = getelementptr inbounds i8, i8* %16, i64 %19, !dbg !763 | |
call void @llvm.dbg.value(metadata i8* %11, metadata !745, metadata !DIExpression()) #10, !dbg !764 | |
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %20, i8* align 1 %11, i64 %17, i1 false) #10, !dbg !765 | |
%21 = load i64, i64* bitcast (i8* getelementptr inbounds ({ [56 x i8], {}* }, { [56 x i8], {}* }* @"main$alloc.60", i64 0, i32 0, i64 48) to i64*), align 8, !dbg !766 | |
%22 = add i64 %21, 1, !dbg !767 | |
store i64 %22, i64* bitcast (i8* getelementptr inbounds ({ [56 x i8], {}* }, { [56 x i8], {}* }* @"main$alloc.60", i64 0, i32 0, i64 48) to i64*), align 8, !dbg !766 | |
call void @llvm.dbg.value(metadata i64 %22, metadata !749, metadata !DIExpression()) #10, !dbg !766 | |
%23 = load i64, i64* bitcast (i8* getelementptr inbounds ({ [56 x i8], {}* }, { [56 x i8], {}* }* @"main$alloc.60", i64 0, i32 0, i64 32) to i64*), align 8, !dbg !768 | |
%24 = add i64 %23, 1, !dbg !769 | |
call void @llvm.dbg.value(metadata i64 %24, metadata !750, metadata !DIExpression()) #10, !dbg !768 | |
%25 = load i64, i64* bitcast (i8* getelementptr inbounds ({ [56 x i8], {}* }, { [56 x i8], {}* }* @"main$alloc.60", i64 0, i32 0, i64 8) to i64*), align 8, !dbg !770 | |
%26 = icmp eq i64 %24, %25, !dbg !771 | |
%spec.store.select.i.i = select i1 %26, i64 0, i64 %24, !dbg !756 | |
store i64 %spec.store.select.i.i, i64* bitcast (i8* getelementptr inbounds ({ [56 x i8], {}* }, { [56 x i8], {}* }* @"main$alloc.60", i64 0, i32 0, i64 32) to i64*), align 8, !dbg !756 | |
br label %"(*runtime.channel).push.exit.i", !dbg !756 | |
"(*runtime.channel).push.exit.i": ; preds = %if.then2.i, %deref.next16.i.i | |
%27 = phi i64 [ %22, %deref.next16.i.i ], [ %14, %if.then2.i ] | |
%28 = load %runtime.channelBlockedList*, %runtime.channelBlockedList** bitcast (i8* getelementptr inbounds ({ [56 x i8], {}* }, { [56 x i8], {}* }* @"main$alloc.60", i64 0, i32 0, i64 24) to %runtime.channelBlockedList**), align 8, !dbg !772 | |
%29 = icmp eq %runtime.channelBlockedList* %28, null, !dbg !773 | |
br i1 %29, label %store.next.i, label %deref.next32.i, !dbg !736 | |
if.then7.i: ; preds = %deref.next40.i | |
call void @llvm.dbg.value(metadata %runtime.channel* bitcast ({ [56 x i8], {}* }* @"main$alloc.60" to %runtime.channel*), metadata !726, metadata !DIExpression()), !dbg !774 | |
%30 = tail call fastcc i8* @"(*runtime.channel).resumeTX"(), !dbg !775 | |
call void @llvm.dbg.value(metadata i8* %value, metadata !723, metadata !DIExpression()), !dbg !776 | |
call void @llvm.dbg.value(metadata i8* %30, metadata !730, metadata !DIExpression()), !dbg !777 | |
%31 = load i64, i64* bitcast ({ [56 x i8], {}* }* @"main$alloc.60" to i64*), align 8, !dbg !778 | |
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %value, i8* align 1 %30, i64 %31, i1 false), !dbg !779 | |
%32 = load %runtime.channelBlockedList*, %runtime.channelBlockedList** bitcast (i8* getelementptr inbounds ({ [56 x i8], {}* }, { [56 x i8], {}* }* @"main$alloc.60", i64 0, i32 0, i64 24) to %runtime.channelBlockedList**), align 8, !dbg !780 | |
%33 = icmp eq %runtime.channelBlockedList* %32, null, !dbg !781 | |
br i1 %33, label %store.next52.i, label %"(*runtime.channel).tryRecv.exit", !dbg !736 | |
switch.body15.i: ; preds = %"(*internal/task.Task).getReturnPtr.exit" | |
call void @llvm.dbg.value(metadata %runtime.channel* bitcast ({ [56 x i8], {}* }* @"main$alloc.60" to %runtime.channel*), metadata !726, metadata !DIExpression()), !dbg !782 | |
call void @llvm.dbg.value(metadata i8* %value, metadata !723, metadata !DIExpression()), !dbg !783 | |
%34 = tail call fastcc i1 @"(*runtime.channel).pop"(i8* %value), !dbg !784 | |
br i1 %34, label %"(*runtime.channel).tryRecv.exit", label %deref.next56.i, !dbg !736 | |
switch.next18.i: ; preds = %"(*internal/task.Task).getReturnPtr.exit" | |
tail call fastcc void @runtime.runtimePanic(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @"(*runtime.channel).tryRecv$string", i64 0, i64 0), i64 21), !dbg !785 | |
unreachable | |
deref.next22.i: ; preds = %switch.body.i | |
br i1 %.not.i, label %deref.next22.deref.next32_crit_edge.i, label %if.then2.i, !dbg !736 | |
deref.next22.deref.next32_crit_edge.i: ; preds = %deref.next22.i | |
%.pre.i = load i64, i64* bitcast (i8* getelementptr inbounds ({ [56 x i8], {}* }, { [56 x i8], {}* }* @"main$alloc.60", i64 0, i32 0, i64 48) to i64*), align 8, !dbg !786 | |
br label %deref.next32.i, !dbg !736 | |
store.next.i: ; preds = %"(*runtime.channel).push.exit.i" | |
call void @llvm.dbg.value(metadata %runtime.channel* bitcast ({ [56 x i8], {}* }* @"main$alloc.60" to %runtime.channel*), metadata !726, metadata !DIExpression()), !dbg !787 | |
store i8 3, i8* getelementptr inbounds ({ [56 x i8], {}* }, { [56 x i8], {}* }* @"main$alloc.60", i64 0, i32 0, i64 16), align 8, !dbg !788 | |
call void @llvm.dbg.value(metadata i8 3, metadata !729, metadata !DIExpression()), !dbg !788 | |
br label %deref.next32.i, !dbg !736 | |
deref.next32.i: ; preds = %"(*runtime.channel).push.exit.i", %store.next.i, %deref.next22.deref.next32_crit_edge.i | |
%35 = phi i64 [ %.pre.i, %deref.next22.deref.next32_crit_edge.i ], [ %27, %store.next.i ], [ %27, %"(*runtime.channel).push.exit.i" ], !dbg !786 | |
call void @llvm.dbg.value(metadata %runtime.channel* bitcast ({ [56 x i8], {}* }* @"main$alloc.60" to %runtime.channel*), metadata !726, metadata !DIExpression()), !dbg !789 | |
%36 = icmp eq i64 %35, 0, !dbg !790 | |
br i1 %36, label %store.next36.i, label %"(*runtime.channel).tryRecv.exit", !dbg !736 | |
store.next36.i: ; preds = %deref.next32.i | |
call void @llvm.dbg.value(metadata %runtime.channel* bitcast ({ [56 x i8], {}* }* @"main$alloc.60" to %runtime.channel*), metadata !726, metadata !DIExpression()), !dbg !791 | |
store i8 0, i8* getelementptr inbounds ({ [56 x i8], {}* }, { [56 x i8], {}* }* @"main$alloc.60", i64 0, i32 0, i64 16), align 8, !dbg !792 | |
call void @llvm.dbg.value(metadata i8 0, metadata !729, metadata !DIExpression()), !dbg !792 | |
br label %"(*runtime.channel).tryRecv.exit", !dbg !736 | |
deref.next40.i: ; preds = %switch.body.i | |
br i1 %.not.i, label %"(*runtime.channel).tryRecv.exit", label %if.then7.i, !dbg !736 | |
store.next52.i: ; preds = %if.then7.i | |
call void @llvm.dbg.value(metadata %runtime.channel* bitcast ({ [56 x i8], {}* }* @"main$alloc.60" to %runtime.channel*), metadata !726, metadata !DIExpression()), !dbg !793 | |
store i8 0, i8* getelementptr inbounds ({ [56 x i8], {}* }, { [56 x i8], {}* }* @"main$alloc.60", i64 0, i32 0, i64 16), align 8, !dbg !794 | |
call void @llvm.dbg.value(metadata i8 0, metadata !729, metadata !DIExpression()), !dbg !794 | |
br label %"(*runtime.channel).tryRecv.exit", !dbg !736 | |
deref.next56.i: ; preds = %switch.body15.i | |
call void @llvm.dbg.value(metadata i8* %value, metadata !723, metadata !DIExpression()), !dbg !795 | |
call void @llvm.dbg.value(metadata %runtime.channel* bitcast ({ [56 x i8], {}* }* @"main$alloc.60" to %runtime.channel*), metadata !726, metadata !DIExpression()), !dbg !796 | |
%37 = load i64, i64* bitcast ({ [56 x i8], {}* }* @"main$alloc.60" to i64*), align 8, !dbg !797 | |
tail call void @llvm.memset.p0i8.i64(i8* align 1 %value, i8 0, i64 %37, i1 false), !dbg !798 | |
call void @llvm.dbg.value(metadata i64 0, metadata !727, metadata !DIExpression()), !dbg !799 | |
br label %"(*runtime.channel).tryRecv.exit", !dbg !800 | |
"(*runtime.channel).tryRecv.exit": ; preds = %deref.next40.i, %deref.next32.i, %switch.body15.i, %if.then7.i, %"(*internal/task.Task).getReturnPtr.exit", %"(*internal/task.Task).getReturnPtr.exit", %store.next36.i, %store.next52.i, %deref.next56.i | |
%38 = phi { i1, i1 } [ { i1 true, i1 false }, %deref.next56.i ], [ { i1 true, i1 true }, %store.next52.i ], [ { i1 true, i1 true }, %store.next36.i ], [ zeroinitializer, %"(*internal/task.Task).getReturnPtr.exit" ], [ zeroinitializer, %"(*internal/task.Task).getReturnPtr.exit" ], [ { i1 true, i1 true }, %if.then7.i ], [ { i1 true, i1 true }, %switch.body15.i ], [ { i1 true, i1 true }, %deref.next32.i ], [ zeroinitializer, %deref.next40.i ] | |
%39 = extractvalue { i1, i1 } %38, 0, !dbg !801 | |
call void @llvm.dbg.value(metadata i1 undef, metadata !705, metadata !DIExpression()), !dbg !802 | |
call void @llvm.dbg.value(metadata i1 %39, metadata !704, metadata !DIExpression()), !dbg !803 | |
call void @llvm.dbg.value(metadata %runtime.channel* bitcast ({ [56 x i8], {}* }* @"main$alloc.60" to %runtime.channel*), metadata !700, metadata !DIExpression()), !dbg !804 | |
br i1 %39, label %if.then, label %gep.next4, !dbg !805 | |
if.then: ; preds = %"(*runtime.channel).tryRecv.exit" | |
%40 = extractvalue { i1, i1 } %38, 1, !dbg !801 | |
call void @llvm.dbg.value(metadata i64 0, metadata !703, metadata !DIExpression()), !dbg !806 | |
call void @llvm.dbg.value(metadata i1 undef, metadata !705, metadata !DIExpression()), !dbg !807 | |
store i1 %40, i1* %6, align 1, !dbg !808 | |
call void @llvm.dbg.value(metadata i8* %task.state.parent, metadata !214, metadata !DIExpression()), !dbg !809 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %task.current, metadata !213, metadata !DIExpression()), !dbg !811 | |
%41 = getelementptr inbounds i8, i8* %parentHandle, i64 24, !dbg !812 | |
%42 = bitcast i8* %41 to i8**, !dbg !812 | |
store i8* %task.state.parent, i8** %42, align 8, !dbg !813 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %task.current, metadata !220, metadata !DIExpression()), !dbg !814 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %task.current, metadata !228, metadata !DIExpression()), !dbg !816 | |
tail call fastcc void @"(*internal/task.Queue).Push"(%"internal/task.Task"* nonnull %task.current), !dbg !818 | |
br label %AfterCoroEnd, !dbg !808 | |
gep.next4: ; preds = %"(*runtime.channel).tryRecv.exit" | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %task.current, metadata !706, metadata !DIExpression()), !dbg !819 | |
call void @llvm.dbg.value(metadata %runtime.channel* bitcast ({ [56 x i8], {}* }* @"main$alloc.60" to %runtime.channel*), metadata !700, metadata !DIExpression()), !dbg !820 | |
store i8 1, i8* getelementptr inbounds ({ [56 x i8], {}* }, { [56 x i8], {}* }* @"main$alloc.60", i64 0, i32 0, i64 16), align 8, !dbg !821 | |
call void @llvm.dbg.value(metadata i8 1, metadata !707, metadata !DIExpression()), !dbg !821 | |
%43 = bitcast i8* %4 to i8**, !dbg !822 | |
%44 = getelementptr inbounds i8, i8* %parentHandle, i64 16, !dbg !823 | |
%45 = bitcast i8* %44 to i64*, !dbg !823 | |
call void @llvm.dbg.value(metadata i8* %value, metadata !701, metadata !DIExpression()), !dbg !824 | |
store i8* %value, i8** %43, align 8, !dbg !822 | |
call void @llvm.dbg.value(metadata i8* %value, metadata !708, metadata !DIExpression()), !dbg !822 | |
store i64 1, i64* %45, align 8, !dbg !823 | |
call void @llvm.dbg.value(metadata i64 1, metadata !709, metadata !DIExpression()), !dbg !823 | |
call void @llvm.dbg.value(metadata %runtime.channelBlockedList* %blockedlist, metadata !702, metadata !DIExpression()), !dbg !825 | |
%46 = icmp eq %runtime.channelBlockedList* %blockedlist, null, !dbg !826 | |
br i1 %46, label %gep.throw11, label %gep.next12, !dbg !826 | |
gep.throw11: ; preds = %gep.next4 | |
tail call fastcc void @runtime.nilPanic(), !dbg !826 | |
unreachable, !dbg !826 | |
gep.next12: ; preds = %gep.next4 | |
call void @llvm.dbg.value(metadata %runtime.channel* bitcast ({ [56 x i8], {}* }* @"main$alloc.60" to %runtime.channel*), metadata !700, metadata !DIExpression()), !dbg !827 | |
%47 = load i64, i64* bitcast (i8* getelementptr inbounds ({ [56 x i8], {}* }, { [56 x i8], {}* }* @"main$alloc.60", i64 0, i32 0, i64 24) to i64*), align 8, !dbg !828 | |
%48 = getelementptr inbounds %runtime.channelBlockedList, %runtime.channelBlockedList* %blockedlist, i64 0, i32 1, !dbg !826 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %task.current, metadata !706, metadata !DIExpression()), !dbg !829 | |
%49 = bitcast %runtime.channelBlockedList* %blockedlist to i64*, !dbg !830 | |
%50 = getelementptr inbounds %runtime.channelBlockedList, %runtime.channelBlockedList* %blockedlist, i64 0, i32 2, !dbg !831 | |
%51 = bitcast %runtime.chanSelectState** %50 to i8*, !dbg !831 | |
tail call void @llvm.memset.p0i8.i64(i8* nonnull align 8 dereferenceable(48) %51, i8 0, i64 32, i1 false), !dbg !831 | |
store i64 %47, i64* %49, align 8, !dbg !830 | |
%52 = bitcast %"internal/task.Task"** %48 to i8**, !dbg !832 | |
store i8* %parentHandle, i8** %52, align 8, !dbg !832 | |
call void @llvm.dbg.value(metadata %runtime.channelBlockedList* %blockedlist, metadata !702, metadata !DIExpression()), !dbg !833 | |
store %runtime.channelBlockedList* %blockedlist, %runtime.channelBlockedList** bitcast (i8* getelementptr inbounds ({ [56 x i8], {}* }, { [56 x i8], {}* }* @"main$alloc.60", i64 0, i32 0, i64 24) to %runtime.channelBlockedList**), align 8, !dbg !834 | |
call void @llvm.dbg.value(metadata %runtime.channelBlockedList* %blockedlist, metadata !710, metadata !DIExpression()), !dbg !834 | |
call void @llvm.dbg.value(metadata i64 0, metadata !703, metadata !DIExpression()), !dbg !835 | |
%index.addr22 = getelementptr inbounds i8, i8* %coro.alloc, i64 40, !dbg !836 | |
%53 = bitcast i8* %index.addr22 to i1*, !dbg !836 | |
store i1 false, i1* %53, align 1, !dbg !836 | |
br label %AfterCoroEnd, !dbg !836 | |
AfterCoroEnd: ; preds = %gep.next12, %if.then | |
ret i1 undef, !dbg !712 | |
} | |
; Function Attrs: optsize | |
define i64 @main(i32 %argc, i8** nocapture readonly dereferenceable_or_null(8) %argv) local_unnamed_addr #1 !dbg !837 { | |
entry: | |
call void @llvm.dbg.value(metadata i32 %argc, metadata !842, metadata !DIExpression()), !dbg !867 | |
call void @llvm.dbg.value(metadata i8** %argv, metadata !843, metadata !DIExpression()), !dbg !867 | |
%0 = tail call i8* @mmap(i8* null, i64 1073741824, i64 3, i64 4098, i64 -1, i64 0), !dbg !868 | |
call void @llvm.dbg.value(metadata i8* %0, metadata !871, metadata !DIExpression()), !dbg !876 | |
call void @llvm.dbg.value(metadata i8* %0, metadata !871, metadata !DIExpression()), !dbg !877 | |
%1 = ptrtoint i8* %0 to i64, !dbg !878 | |
store i64 %1, i64* @runtime.heapStart, align 8, !dbg !879 | |
call void @llvm.dbg.value(metadata i64 %1, metadata !872, metadata !DIExpression()), !dbg !879 | |
call void @llvm.dbg.value(metadata i64 %1, metadata !872, metadata !DIExpression()), !dbg !880 | |
%2 = load i64, i64* @runtime.heapSize, align 8, !dbg !881 | |
call void @llvm.dbg.value(metadata i64 %2, metadata !873, metadata !DIExpression()), !dbg !881 | |
%3 = add i64 %2, %1, !dbg !882 | |
store i64 %3, i64* @runtime.heapEnd, align 8, !dbg !883 | |
call void @llvm.dbg.value(metadata i64 %3, metadata !874, metadata !DIExpression()), !dbg !883 | |
%4 = sext i32 %argc to i64, !dbg !884 | |
%5 = mul nsw i64 %4, 24, !dbg !885 | |
%6 = tail call i8* @malloc(i64 %5), !dbg !886 | |
store i8* %6, i8** bitcast ({ %runtime.interfaceMethodInfo.1*, i64, i64 }* @runtime.args to i8**), align 8, !dbg !887 | |
call void @llvm.dbg.value(metadata i8* %6, metadata !849, metadata !DIExpression()), !dbg !887 | |
store i64 %4, i64* getelementptr inbounds ({ %runtime.interfaceMethodInfo.1*, i64, i64 }, { %runtime.interfaceMethodInfo.1*, i64, i64 }* @runtime.args, i64 0, i32 1), align 8, !dbg !888 | |
call void @llvm.dbg.value(metadata i64 %4, metadata !850, metadata !DIExpression()), !dbg !888 | |
store i64 %4, i64* getelementptr inbounds ({ %runtime.interfaceMethodInfo.1*, i64, i64 }, { %runtime.interfaceMethodInfo.1*, i64, i64 }* @runtime.args, i64 0, i32 2), align 8, !dbg !889 | |
call void @llvm.dbg.value(metadata i64 %4, metadata !851, metadata !DIExpression()), !dbg !889 | |
call void @llvm.dbg.value(metadata i64 0, metadata !852, metadata !DIExpression()), !dbg !890 | |
%7 = icmp sgt i64 %4, 0, !dbg !891 | |
%smax = select i1 %7, i64 %4, i64 0, !dbg !891 | |
%.unpack7 = load i64, i64* getelementptr inbounds ({ %runtime.interfaceMethodInfo.1*, i64, i64 }, { %runtime.interfaceMethodInfo.1*, i64, i64 }* @runtime.args, i64 0, i32 1), align 8, !dbg !891 | |
%.unpack = load %runtime.interfaceMethodInfo.1*, %runtime.interfaceMethodInfo.1** getelementptr inbounds ({ %runtime.interfaceMethodInfo.1*, i64, i64 }, { %runtime.interfaceMethodInfo.1*, i64, i64 }* @runtime.args, i64 0, i32 0), align 8, !dbg !891 | |
%8 = icmp eq %runtime.interfaceMethodInfo.1* %.unpack, null, !dbg !891 | |
br label %for.loop, !dbg !891 | |
for.loop: ; preds = %store.next10, %entry | |
%9 = phi i8** [ %argv, %entry ], [ %20, %store.next10 ], !dbg !892 | |
%10 = phi i64 [ 0, %entry ], [ %21, %store.next10 ], !dbg !890 | |
call void @llvm.dbg.value(metadata i64 %10, metadata !852, metadata !DIExpression()), !dbg !893 | |
call void @llvm.dbg.value(metadata i32 %argc, metadata !842, metadata !DIExpression()), !dbg !894 | |
%exitcond.not = icmp eq i64 %10, %smax, !dbg !895 | |
br i1 %exitcond.not, label %for.done, label %for.body, !dbg !891 | |
for.body: ; preds = %for.loop | |
call void @llvm.dbg.value(metadata i8** %9, metadata !843, metadata !DIExpression()), !dbg !896 | |
%11 = icmp eq i8** %9, null, !dbg !897 | |
br i1 %11, label %deref.throw, label %deref.next, !dbg !897 | |
for.done: ; preds = %for.loop | |
%12 = tail call i64 asm sideeffect "movq %rsp, $0", "=&r"() #10, !dbg !898 | |
call void @llvm.dbg.value(metadata i64 undef, metadata !866, metadata !DIExpression()), !dbg !901 | |
tail call fastcc void @runtime.runMain(), !dbg !902 | |
ret i64 0, !dbg !903 | |
deref.throw: ; preds = %for.body | |
tail call fastcc void @runtime.nilPanic(), !dbg !897 | |
unreachable, !dbg !897 | |
deref.next: ; preds = %for.body | |
call void @llvm.dbg.value(metadata i64 undef, metadata !853, metadata !DIExpression()), !dbg !904 | |
call void @llvm.dbg.value(metadata { %runtime.interfaceMethodInfo.1*, i64, i64 } undef, metadata !854, metadata !DIExpression()), !dbg !905 | |
call void @llvm.dbg.value(metadata i64 %10, metadata !852, metadata !DIExpression()), !dbg !906 | |
%.not = icmp ult i64 %10, %.unpack7, !dbg !907 | |
br i1 %.not, label %lookup.next, label %lookup.throw, !dbg !907 | |
lookup.throw: ; preds = %deref.next | |
tail call fastcc void @runtime.lookupPanic(), !dbg !907 | |
unreachable, !dbg !907 | |
lookup.next: ; preds = %deref.next | |
%13 = load i8*, i8** %9, align 8, !dbg !897 | |
%14 = tail call i64 @strlen(i8* nonnull dereferenceable(1) %13), !dbg !908 | |
call void @llvm.dbg.value(metadata i64 %14, metadata !853, metadata !DIExpression()), !dbg !904 | |
call void @llvm.dbg.value(metadata %runtime.interfaceMethodInfo.1* undef, metadata !855, metadata !DIExpression()), !dbg !909 | |
%15 = getelementptr inbounds %runtime.interfaceMethodInfo.1, %runtime.interfaceMethodInfo.1* %.unpack, i64 %10, i32 1, !dbg !910 | |
call void @llvm.dbg.value(metadata i64 undef, metadata !853, metadata !DIExpression()), !dbg !911 | |
store i64 %14, i64* %15, align 8, !dbg !910 | |
call void @llvm.dbg.value(metadata i64 undef, metadata !863, metadata !DIExpression()), !dbg !910 | |
call void @llvm.dbg.value(metadata i8** %9, metadata !843, metadata !DIExpression()), !dbg !912 | |
br i1 %8, label %store.throw9, label %store.next10, !dbg !913 | |
store.throw9: ; preds = %lookup.next | |
tail call fastcc void @runtime.nilPanic(), !dbg !913 | |
unreachable, !dbg !913 | |
store.next10: ; preds = %lookup.next | |
%16 = getelementptr inbounds %runtime.interfaceMethodInfo.1, %runtime.interfaceMethodInfo.1* %.unpack, i64 %10, i32 0, !dbg !913 | |
%17 = bitcast i8** %9 to i64*, !dbg !914 | |
%18 = load i64, i64* %17, align 8, !dbg !914 | |
%19 = bitcast i8** %16 to i64*, !dbg !913 | |
store i64 %18, i64* %19, align 8, !dbg !913 | |
call void @llvm.dbg.value(metadata i8* undef, metadata !865, metadata !DIExpression()), !dbg !913 | |
call void @llvm.dbg.value(metadata i8** %9, metadata !843, metadata !DIExpression()), !dbg !915 | |
%20 = getelementptr inbounds i8*, i8** %9, i64 1, !dbg !916 | |
call void @llvm.dbg.value(metadata i8** %20, metadata !843, metadata !DIExpression()), !dbg !917 | |
%21 = add nuw nsw i64 %10, 1, !dbg !918 | |
call void @llvm.dbg.value(metadata i64 %21, metadata !852, metadata !DIExpression()), !dbg !918 | |
br label %for.loop, !dbg !891 | |
} | |
; Function Attrs: nofree nounwind optsize | |
declare noalias i8* @malloc(i64) local_unnamed_addr #6 | |
; Function Attrs: noinline optsize | |
define internal fastcc void @runtime.runMain() unnamed_addr #7 !dbg !919 { | |
entry: | |
%complit.i.i = tail call fastcc i8* @runtime.alloc(i64 32), !dbg !920 | |
%0 = getelementptr inbounds i8, i8* %complit.i.i, i64 24, !dbg !920 | |
%1 = bitcast i8* %0 to i8**, !dbg !920 | |
store i8* bitcast (%NoopCoro.Frame* @NoopCoro.Frame.Const to i8*), i8** %1, align 8, !dbg !926 | |
tail call void @"runtime.run$1"(i8* undef, i8* nonnull %complit.i.i), !dbg !927 | |
call void @llvm.dbg.value(metadata i64 0, metadata !928, metadata !DIExpression()), !dbg !939 | |
br label %for.loop.i.i, !dbg !941 | |
for.loop.i.i: ; preds = %"(*internal/task.Task).Resume.exit.i.i", %entry | |
%2 = load i1, i1* @runtime.schedulerDone, align 1, !dbg !942 | |
call void @llvm.dbg.value(metadata i1 %2, metadata !931, metadata !DIExpression()), !dbg !942 | |
br i1 %2, label %runtime.run.exit, label %if.done2.i.i, !dbg !941 | |
if.done2.i.i: ; preds = %for.loop.i.i | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* null, metadata !932, metadata !DIExpression()), !dbg !943 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* null, metadata !932, metadata !DIExpression()), !dbg !944 | |
call void @llvm.dbg.value(metadata i64 0, metadata !945, metadata !DIExpression()), !dbg !955 | |
call void @llvm.dbg.value(metadata %"internal/task.Queue"* @runtime.runqueue, metadata !950, metadata !DIExpression()), !dbg !957 | |
%3 = load %"internal/task.Task"*, %"internal/task.Task"** getelementptr inbounds (%"internal/task.Queue", %"internal/task.Queue"* @runtime.runqueue, i64 0, i32 0), align 8, !dbg !958 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %3, metadata !951, metadata !DIExpression()), !dbg !959 | |
%4 = icmp eq %"internal/task.Task"* %3, null, !dbg !960 | |
br i1 %4, label %if.done6.i.i, label %gep.next6.i.i.i, !dbg !961 | |
gep.next6.i.i.i: ; preds = %if.done2.i.i | |
call void @llvm.dbg.value(metadata %"internal/task.Queue"* @runtime.runqueue, metadata !950, metadata !DIExpression()), !dbg !962 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %3, metadata !951, metadata !DIExpression()), !dbg !963 | |
%5 = bitcast %"internal/task.Task"* %3 to i64*, !dbg !964 | |
%6 = load i64, i64* %5, align 8, !dbg !964 | |
store i64 %6, i64* bitcast (%"internal/task.Queue"* @runtime.runqueue to i64*), align 8, !dbg !965 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* undef, metadata !952, metadata !DIExpression()), !dbg !965 | |
%7 = load %"internal/task.Task"*, %"internal/task.Task"** getelementptr inbounds (%"internal/task.Queue", %"internal/task.Queue"* @runtime.runqueue, i64 0, i32 1), align 8, !dbg !966 | |
%8 = icmp eq %"internal/task.Task"* %7, %3, !dbg !967 | |
br i1 %8, label %store.next16.i.i.i, label %"(*internal/task.Task).Resume.exit.i.i", !dbg !961 | |
store.next16.i.i.i: ; preds = %gep.next6.i.i.i | |
call void @llvm.dbg.value(metadata %"internal/task.Queue"* @runtime.runqueue, metadata !950, metadata !DIExpression()), !dbg !968 | |
store %"internal/task.Task"* null, %"internal/task.Task"** getelementptr inbounds (%"internal/task.Queue", %"internal/task.Queue"* @runtime.runqueue, i64 0, i32 1), align 8, !dbg !969 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* null, metadata !953, metadata !DIExpression()), !dbg !969 | |
br label %"(*internal/task.Task).Resume.exit.i.i", !dbg !961 | |
if.done6.i.i: ; preds = %if.done2.i.i | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %3, metadata !936, metadata !DIExpression()), !dbg !970 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* null, metadata !932, metadata !DIExpression()), !dbg !971 | |
tail call fastcc void @runtime.waitForEvents(), !dbg !972 | |
unreachable | |
"(*internal/task.Task).Resume.exit.i.i": ; preds = %store.next16.i.i.i, %gep.next6.i.i.i | |
%9 = getelementptr inbounds %"internal/task.Task", %"internal/task.Task"* %3, i64 0, i32 0, !dbg !964 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %3, metadata !951, metadata !DIExpression()), !dbg !973 | |
store %"internal/task.Task"* null, %"internal/task.Task"** %9, align 8, !dbg !974 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* null, metadata !954, metadata !DIExpression()), !dbg !974 | |
call void @llvm.dbg.value(metadata i64 0, metadata !945, metadata !DIExpression()), !dbg !975 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %3, metadata !936, metadata !DIExpression()), !dbg !976 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* %3, metadata !977, metadata !DIExpression()), !dbg !980 | |
%10 = getelementptr inbounds %"internal/task.Task", %"internal/task.Task"* %3, i64 0, i32 3, i32 0, !dbg !982 | |
%11 = load i8*, i8** %10, align 8, !dbg !982 | |
%12 = bitcast i8* %11 to { i8*, i8* }* | |
%13 = getelementptr inbounds { i8*, i8* }, { i8*, i8* }* %12, i32 0, i32 0 | |
%14 = load i8*, i8** %13, align 8 | |
%15 = bitcast i8* %14 to void (i8*)* | |
tail call fastcc void %15(i8* %11), !dbg !983 | |
br label %for.loop.i.i, !dbg !941 | |
runtime.run.exit: ; preds = %for.loop.i.i | |
ret void, !dbg !984 | |
} | |
; Function Attrs: argmemonly nofree nounwind optsize readonly | |
declare i64 @strlen(i8* nocapture) local_unnamed_addr #8 | |
; Function Attrs: optsize | |
define internal void @"runtime.run$1"(i8* nocapture readnone %context, i8* %parentHandle) unnamed_addr #1 !dbg !985 { | |
entry: | |
%coro.alloc = tail call fastcc i8* @runtime.alloc(i64 40), !dbg !988 | |
%resume.addr = bitcast i8* %coro.alloc to void (%"runtime.run$1.Frame"*)**, !dbg !988 | |
store void (%"runtime.run$1.Frame"*)* @"runtime.run$1.resume", void (%"runtime.run$1.Frame"*)** %resume.addr, align 8, !dbg !988 | |
%destroy.addr = getelementptr inbounds i8, i8* %coro.alloc, i64 8, !dbg !988 | |
%0 = bitcast i8* %destroy.addr to void (%"runtime.run$1.Frame"*)**, !dbg !988 | |
store void (%"runtime.run$1.Frame"*)* @"runtime.run$1.destroy", void (%"runtime.run$1.Frame"*)** %0, align 8, !dbg !988 | |
%parentHandle.spill.addr = getelementptr inbounds i8, i8* %coro.alloc, i64 16, !dbg !988 | |
%1 = bitcast i8* %parentHandle.spill.addr to i8**, !dbg !988 | |
store i8* %parentHandle, i8** %1, align 8, !dbg !988 | |
%task.current = bitcast i8* %parentHandle to %"internal/task.Task"*, !dbg !988 | |
%task.state.parent = tail call fastcc i8* @"(*internal/task.Task).setState"(%"internal/task.Task"* %task.current, i8* nonnull %coro.alloc), !dbg !988 | |
%task.state.parent.spill.addr = getelementptr inbounds i8, i8* %coro.alloc, i64 24, !dbg !988 | |
%2 = bitcast i8* %task.state.parent.spill.addr to i8**, !dbg !988 | |
store i8* %task.state.parent, i8** %2, align 8, !dbg !988 | |
tail call fastcc void @main.main(i8* undef, i8* %parentHandle), !dbg !988 | |
%index.addr2 = getelementptr inbounds i8, i8* %coro.alloc, i64 32, !dbg !989 | |
%3 = bitcast i8* %index.addr2 to i1*, !dbg !989 | |
store i1 false, i1* %3, align 1, !dbg !989 | |
ret void, !dbg !988 | |
} | |
; Function Attrs: noreturn optsize | |
define internal fastcc void @runtime.waitForEvents() unnamed_addr #3 !dbg !990 { | |
entry: | |
tail call fastcc void @runtime.runtimePanic(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @"runtime.waitForEvents$string", i64 0, i64 0), i64 27), !dbg !992 | |
unreachable | |
} | |
; Function Attrs: optsize | |
declare i8* @mmap(i8* nocapture, i64, i64, i64, i64, i64) local_unnamed_addr #1 | |
; Function Attrs: optsize | |
define internal fastcc void @main.main(i8* nocapture readnone %context, i8* %parentHandle) unnamed_addr #1 !dbg !993 { | |
entry: | |
%coro.alloc = tail call fastcc i8* @runtime.alloc(i64 88), !dbg !996 | |
%resume.addr = bitcast i8* %coro.alloc to void (%main.main.Frame*)**, !dbg !996 | |
store void (%main.main.Frame*)* @main.main.resume, void (%main.main.Frame*)** %resume.addr, align 8, !dbg !996 | |
%destroy.addr = getelementptr inbounds i8, i8* %coro.alloc, i64 8, !dbg !996 | |
%0 = bitcast i8* %destroy.addr to void (%main.main.Frame*)**, !dbg !996 | |
store void (%main.main.Frame*)* @main.main.destroy, void (%main.main.Frame*)** %0, align 8, !dbg !996 | |
%parentHandle.spill.addr = getelementptr inbounds i8, i8* %coro.alloc, i64 64, !dbg !996 | |
%1 = bitcast i8* %parentHandle.spill.addr to i8**, !dbg !996 | |
store i8* %parentHandle, i8** %1, align 8, !dbg !996 | |
%task.current3 = bitcast i8* %parentHandle to %"internal/task.Task"*, !dbg !996 | |
%task.state.parent = tail call fastcc i8* @"(*internal/task.Task).setState"(%"internal/task.Task"* %task.current3, i8* nonnull %coro.alloc), !dbg !996 | |
%task.state.parent.spill.addr = getelementptr inbounds i8, i8* %coro.alloc, i64 72, !dbg !996 | |
%2 = bitcast i8* %task.state.parent.spill.addr to i8**, !dbg !996 | |
store i8* %task.state.parent, i8** %2, align 8, !dbg !996 | |
tail call fastcc void @"(*sync.Once).Do"(%sync.Once* nonnull @main.once, i8* undef, i64 1, i8* undef, i8* %parentHandle), !dbg !996 | |
%index.addr21 = getelementptr inbounds i8, i8* %coro.alloc, i64 80, !dbg !996 | |
%3 = bitcast i8* %index.addr21 to i1*, !dbg !996 | |
store i1 false, i1* %3, align 1, !dbg !996 | |
ret void, !dbg !996 | |
} | |
; Function Attrs: argmemonly nounwind readonly | |
declare token @llvm.coro.id(i32, i8* readnone, i8* nocapture readonly, i8*) #9 | |
; Function Attrs: nounwind | |
declare i8* @llvm.coro.begin(token, i8* writeonly) #10 | |
; Function Attrs: argmemonly nounwind readonly | |
declare i8* @llvm.coro.subfn.addr(i8* nocapture readonly, i8) #9 | |
; Function Attrs: norecurse nounwind readnone | |
define private fastcc void @NoopCoro.ResumeDestroy(%NoopCoro.Frame* nocapture %0) #11 { | |
entry: | |
ret void | |
} | |
; Function Attrs: optsize | |
define internal fastcc void @"(*sync.Once).Do.resume"(%"(*sync.Once).Do.Frame"* noalias nonnull align 8 dereferenceable(64) %FramePtr) #1 !dbg !997 { | |
entry.resume: | |
%defer.alloca.reload.addr = getelementptr inbounds %"(*sync.Once).Do.Frame", %"(*sync.Once).Do.Frame"* %FramePtr, i64 0, i32 2, !dbg !1002 | |
call void @llvm.dbg.value(metadata %sync.Once* @main.once, metadata !999, metadata !DIExpression()), !dbg !1002 | |
%0 = getelementptr inbounds %"(*sync.Once).Do.Frame", %"(*sync.Once).Do.Frame"* %FramePtr, i64 0, i32 2, i32 2, !dbg !1002 | |
%1 = bitcast { i64, %runtime._defer*, %sync.Mutex* }* %defer.alloca.reload.addr to i8*, !dbg !1002 | |
tail call void @llvm.memset.p0i8.i64(i8* nonnull align 8 dereferenceable(16) %1, i8 0, i64 16, i1 false), !dbg !1002 | |
store %sync.Mutex* getelementptr inbounds (%sync.Once, %sync.Once* @main.once, i64 0, i32 1), %sync.Mutex** %0, align 8, !dbg !1002 | |
%2 = bitcast { i64, %runtime._defer*, %sync.Mutex* }* %defer.alloca.reload.addr to %runtime._defer*, !dbg !1002 | |
%3 = load i1, i1* getelementptr inbounds (%sync.Once, %sync.Once* @main.once, i64 0, i32 0), align 8, !dbg !1003 | |
br i1 %3, label %rundefers.loophead, label %store.next, !dbg !1004 | |
rundefers.loophead: ; preds = %entry.resume, %rundefers.loop | |
%deferPtr.0 = phi %runtime._defer* [ %stack.next, %rundefers.loop ], [ %2, %entry.resume ], !dbg !1004 | |
%stackIsNil = icmp eq %runtime._defer* %deferPtr.0, null, !dbg !1004 | |
br i1 %stackIsNil, label %rundefers.end, label %rundefers.loop, !dbg !1004 | |
rundefers.loop: ; preds = %rundefers.loophead | |
%stack.next.gep = getelementptr inbounds %runtime._defer, %runtime._defer* %deferPtr.0, i64 0, i32 1, !dbg !1004 | |
%stack.next = load %runtime._defer*, %runtime._defer** %stack.next.gep, align 8, !dbg !1004 | |
%gep = getelementptr inbounds %runtime._defer, %runtime._defer* %deferPtr.0, i64 1, !dbg !1004 | |
%4 = bitcast %runtime._defer* %gep to %sync.Mutex**, !dbg !1004 | |
%param = load %sync.Mutex*, %sync.Mutex** %4, align 8, !dbg !1004 | |
tail call fastcc void @"(*sync.Mutex).Unlock"(%sync.Mutex* %param), !dbg !1004 | |
br label %rundefers.loophead, !dbg !1004 | |
rundefers.end: ; preds = %rundefers.loophead7, %rundefers.loophead | |
%task.state.parent.reload.addr = getelementptr inbounds %"(*sync.Once).Do.Frame", %"(*sync.Once).Do.Frame"* %FramePtr, i64 0, i32 4, !dbg !1005 | |
%task.state.parent.reload = load i8*, i8** %task.state.parent.reload.addr, align 8, !dbg !1005 | |
%parentHandle.reload.addr = getelementptr inbounds %"(*sync.Once).Do.Frame", %"(*sync.Once).Do.Frame"* %FramePtr, i64 0, i32 3, !dbg !1005 | |
%5 = bitcast i8** %parentHandle.reload.addr to %"internal/task.Task"**, !dbg !1005 | |
%parentHandle.reload1 = load %"internal/task.Task"*, %"internal/task.Task"** %5, align 8, !dbg !1005 | |
tail call fastcc void @"(*internal/task.Task).returnTo"(%"internal/task.Task"* %parentHandle.reload1, i8* %task.state.parent.reload), !dbg !1002 | |
ret void, !dbg !1005 | |
store.next: ; preds = %entry.resume | |
call void @llvm.dbg.value(metadata %sync.Once* @main.once, metadata !999, metadata !DIExpression()), !dbg !1006 | |
store i1 true, i1* getelementptr inbounds (%sync.Once, %sync.Once* @main.once, i64 0, i32 0), align 8, !dbg !1007 | |
call void @llvm.dbg.value(metadata i1 true, metadata !1001, metadata !DIExpression()), !dbg !1007 | |
call void @llvm.dbg.value(metadata %runtime.interfaceMethodInfo.1 { i8* undef, i64 1 }, metadata !1000, metadata !DIExpression()), !dbg !1008 | |
call void @llvm.dbg.value(metadata %runtime.channel* bitcast ({ [56 x i8], {}* }* @"main$alloc.60" to %runtime.channel*), metadata !1009, metadata !DIExpression()), !dbg !1012 | |
call void @llvm.dbg.value(metadata i64 0, metadata !1014, metadata !DIExpression()), !dbg !1019 | |
call void @llvm.dbg.value(metadata %runtime.channel* bitcast ({ [56 x i8], {}* }* @"main$alloc.60" to %runtime.channel*), metadata !1017, metadata !DIExpression()), !dbg !1021 | |
%6 = load i8, i8* getelementptr inbounds ({ [56 x i8], {}* }, { [56 x i8], {}* }* @"main$alloc.60", i64 0, i32 0, i64 16), align 8, !dbg !1022 | |
switch i8 %6, label %"main.main$1.exit" [ | |
i8 4, label %switch.body.i.i | |
i8 2, label %switch.body1.i.i | |
i8 1, label %store.next11.i.i | |
], !dbg !1023 | |
switch.body.i.i: ; preds = %store.next | |
call void @llvm.dbg.value(metadata i64 0, metadata !1014, metadata !DIExpression()), !dbg !1024 | |
tail call fastcc void @runtime.runtimePanic(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @"runtime.chanClose$string.9", i64 0, i64 0), i64 23), !dbg !1025 | |
unreachable | |
switch.body1.i.i: ; preds = %store.next | |
call void @llvm.dbg.value(metadata i64 0, metadata !1014, metadata !DIExpression()), !dbg !1026 | |
tail call fastcc void @runtime.runtimePanic(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @"runtime.chanClose$string.10", i64 0, i64 0), i64 25), !dbg !1027 | |
unreachable | |
for.loop.i.i: ; preds = %store.next11.i.i, %"(*runtime.channel).resumeRX.exit.i.i" | |
call void @llvm.dbg.value(metadata %runtime.channel* bitcast ({ [56 x i8], {}* }* @"main$alloc.60" to %runtime.channel*), metadata !1017, metadata !DIExpression()), !dbg !1028 | |
%7 = load %runtime.channelBlockedList*, %runtime.channelBlockedList** bitcast (i8* getelementptr inbounds ({ [56 x i8], {}* }, { [56 x i8], {}* }* @"main$alloc.60", i64 0, i32 0, i64 24) to %runtime.channelBlockedList**), align 8, !dbg !1029 | |
%.not.i.i = icmp eq %runtime.channelBlockedList* %7, null, !dbg !1030 | |
br i1 %.not.i.i, label %"main.main$1.exit", label %gep.next10.i.i.i, !dbg !1023 | |
gep.next10.i.i.i: ; preds = %for.loop.i.i | |
call void @llvm.dbg.value(metadata %runtime.channel* bitcast ({ [56 x i8], {}* }* @"main$alloc.60" to %runtime.channel*), metadata !1017, metadata !DIExpression()), !dbg !1031 | |
call void @llvm.dbg.value(metadata i1 false, metadata !1032, metadata !DIExpression()), !dbg !1043 | |
call void @llvm.dbg.value(metadata %runtime.channelBlockedList* null, metadata !1038, metadata !DIExpression()), !dbg !1045 | |
call void @llvm.dbg.value(metadata %runtime.channel* bitcast ({ [56 x i8], {}* }* @"main$alloc.60" to %runtime.channel*), metadata !1037, metadata !DIExpression()), !dbg !1046 | |
%8 = bitcast %runtime.channelBlockedList* %7 to i64*, !dbg !1047 | |
%9 = load i64, i64* %8, align 8, !dbg !1047 | |
call void @llvm.dbg.value(metadata %runtime.channelBlockedList* %7, metadata !1038, metadata !DIExpression()), !dbg !1048 | |
store i64 %9, i64* bitcast (i8* getelementptr inbounds ({ [56 x i8], {}* }, { [56 x i8], {}* }* @"main$alloc.60", i64 0, i32 0, i64 24) to i64*), align 8, !dbg !1049 | |
call void @llvm.dbg.value(metadata %runtime.channelBlockedList* undef, metadata !1039, metadata !DIExpression()), !dbg !1049 | |
%10 = getelementptr inbounds %runtime.channelBlockedList, %runtime.channelBlockedList* %7, i64 0, i32 1, !dbg !1050 | |
%11 = load %"internal/task.Task"*, %"internal/task.Task"** %10, align 8, !dbg !1050 | |
%12 = icmp eq %"internal/task.Task"* %11, null, !dbg !1051 | |
br i1 %12, label %gep.throw17.i.i.i, label %gep.next18.i.i.i, !dbg !1051 | |
gep.throw17.i.i.i: ; preds = %gep.next10.i.i.i | |
tail call fastcc void @runtime.nilPanic(), !dbg !1051 | |
unreachable, !dbg !1051 | |
gep.next18.i.i.i: ; preds = %gep.next10.i.i.i | |
%13 = getelementptr inbounds %"internal/task.Task", %"internal/task.Task"* %11, i64 0, i32 1, !dbg !1051 | |
%14 = load i8*, i8** %13, align 8, !dbg !1051 | |
call void @llvm.dbg.value(metadata i1 false, metadata !1032, metadata !DIExpression()), !dbg !1052 | |
call void @llvm.dbg.value(metadata i8* %14, metadata !1040, metadata !DIExpression()), !dbg !1053 | |
call void @llvm.dbg.value(metadata %runtime.channel* bitcast ({ [56 x i8], {}* }* @"main$alloc.60" to %runtime.channel*), metadata !1037, metadata !DIExpression()), !dbg !1054 | |
%15 = load i64, i64* bitcast ({ [56 x i8], {}* }* @"main$alloc.60" to i64*), align 8, !dbg !1055 | |
tail call void @llvm.memset.p0i8.i64(i8* align 1 %14, i8 0, i64 %15, i1 false), !dbg !1056 | |
call void @llvm.dbg.value(metadata %runtime.channelBlockedList* %7, metadata !1038, metadata !DIExpression()), !dbg !1057 | |
%16 = load %"internal/task.Task"*, %"internal/task.Task"** %10, align 8, !dbg !1058 | |
%17 = icmp eq %"internal/task.Task"* %16, null, !dbg !1059 | |
br i1 %17, label %gep.throw49.i.i.i, label %gep.next50.i.i.i, !dbg !1059 | |
deref.next28.i.i.i: ; preds = %gep.next50.i.i.i | |
call void @llvm.dbg.value(metadata %runtime.channelBlockedList* %7, metadata !1038, metadata !DIExpression()), !dbg !1060 | |
%18 = load %"internal/task.Task"*, %"internal/task.Task"** %10, align 8, !dbg !1061 | |
%19 = icmp eq %"internal/task.Task"* %18, null, !dbg !1062 | |
br i1 %19, label %gep.throw29.i.i.i, label %gep.next30.i.i.i, !dbg !1062 | |
gep.throw29.i.i.i: ; preds = %deref.next28.i.i.i | |
tail call fastcc void @runtime.nilPanic(), !dbg !1062 | |
unreachable, !dbg !1062 | |
gep.next30.i.i.i: ; preds = %deref.next28.i.i.i | |
%20 = getelementptr inbounds %"internal/task.Task", %"internal/task.Task"* %18, i64 0, i32 1, !dbg !1062 | |
call void @llvm.dbg.value(metadata %runtime.channelBlockedList* %7, metadata !1038, metadata !DIExpression()), !dbg !1063 | |
%21 = bitcast i8** %20 to %runtime.chanSelectState**, !dbg !1062 | |
store %runtime.chanSelectState* %24, %runtime.chanSelectState** %21, align 8, !dbg !1062 | |
call void @llvm.dbg.value(metadata %runtime.chanSelectState* %24, metadata !1041, metadata !DIExpression()), !dbg !1062 | |
tail call fastcc void @"(*runtime.channelBlockedList).detach"(%runtime.channelBlockedList* nonnull %7), !dbg !1064 | |
br label %"(*runtime.channel).resumeRX.exit.i.i", !dbg !1065 | |
gep.throw49.i.i.i: ; preds = %gep.next18.i.i.i | |
tail call fastcc void @runtime.nilPanic(), !dbg !1059 | |
unreachable, !dbg !1059 | |
gep.next50.i.i.i: ; preds = %gep.next18.i.i.i | |
%22 = getelementptr inbounds %"internal/task.Task", %"internal/task.Task"* %16, i64 0, i32 2, !dbg !1059 | |
store i64 0, i64* %22, align 8, !dbg !1059 | |
call void @llvm.dbg.value(metadata i64 0, metadata !1042, metadata !DIExpression()), !dbg !1059 | |
call void @llvm.dbg.value(metadata %runtime.channelBlockedList* %7, metadata !1038, metadata !DIExpression()), !dbg !1066 | |
%23 = getelementptr inbounds %runtime.channelBlockedList, %runtime.channelBlockedList* %7, i64 0, i32 2, !dbg !1067 | |
%24 = load %runtime.chanSelectState*, %runtime.chanSelectState** %23, align 8, !dbg !1067 | |
%.not.i.i.i = icmp eq %runtime.chanSelectState* %24, null, !dbg !1068 | |
br i1 %.not.i.i.i, label %"(*runtime.channel).resumeRX.exit.i.i", label %deref.next28.i.i.i, !dbg !1065 | |
"(*runtime.channel).resumeRX.exit.i.i": ; preds = %gep.next50.i.i.i, %gep.next30.i.i.i | |
call void @llvm.dbg.value(metadata %runtime.channelBlockedList* %7, metadata !1038, metadata !DIExpression()), !dbg !1069 | |
%25 = load %"internal/task.Task"*, %"internal/task.Task"** %10, align 8, !dbg !1070 | |
tail call fastcc void @"(*internal/task.Queue).Push"(%"internal/task.Task"* %25), !dbg !1071 | |
call void @llvm.dbg.value(metadata i8* %14, metadata !1040, metadata !DIExpression()), !dbg !1072 | |
br label %for.loop.i.i, !dbg !1023 | |
store.next11.i.i: ; preds = %store.next | |
call void @llvm.dbg.value(metadata %runtime.channel* bitcast ({ [56 x i8], {}* }* @"main$alloc.60" to %runtime.channel*), metadata !1017, metadata !DIExpression()), !dbg !1073 | |
store i8 4, i8* getelementptr inbounds ({ [56 x i8], {}* }, { [56 x i8], {}* }* @"main$alloc.60", i64 0, i32 0, i64 16), align 8, !dbg !1074 | |
call void @llvm.dbg.value(metadata i8 4, metadata !1018, metadata !DIExpression()), !dbg !1074 | |
br label %for.loop.i.i, !dbg !1023 | |
"main.main$1.exit": ; preds = %for.loop.i.i, %store.next | |
call void @llvm.dbg.value(metadata %runtime.channel* bitcast ({ [56 x i8], {}* }* @"main$alloc.60" to %runtime.channel*), metadata !1017, metadata !DIExpression()), !dbg !1075 | |
store i8 4, i8* getelementptr inbounds ({ [56 x i8], {}* }, { [56 x i8], {}* }* @"main$alloc.60", i64 0, i32 0, i64 16), align 8, !dbg !1076 | |
call void @llvm.dbg.value(metadata i8 4, metadata !1018, metadata !DIExpression()), !dbg !1076 | |
call void @llvm.dbg.value(metadata i64 0, metadata !1014, metadata !DIExpression()), !dbg !1077 | |
br label %rundefers.loophead7, !dbg !1004 | |
rundefers.loophead7: ; preds = %rundefers.loop8, %"main.main$1.exit" | |
%deferPtr.1 = phi %runtime._defer* [ %2, %"main.main$1.exit" ], [ %stack.next13, %rundefers.loop8 ], !dbg !1004 | |
%stackIsNil11 = icmp eq %runtime._defer* %deferPtr.1, null, !dbg !1004 | |
br i1 %stackIsNil11, label %rundefers.end, label %rundefers.loop8, !dbg !1004 | |
rundefers.loop8: ; preds = %rundefers.loophead7 | |
%stack.next.gep12 = getelementptr inbounds %runtime._defer, %runtime._defer* %deferPtr.1, i64 0, i32 1, !dbg !1004 | |
%stack.next13 = load %runtime._defer*, %runtime._defer** %stack.next.gep12, align 8, !dbg !1004 | |
%gep18 = getelementptr inbounds %runtime._defer, %runtime._defer* %deferPtr.1, i64 1, !dbg !1004 | |
%26 = bitcast %runtime._defer* %gep18 to %sync.Mutex**, !dbg !1004 | |
%param19 = load %sync.Mutex*, %sync.Mutex** %26, align 8, !dbg !1004 | |
tail call fastcc void @"(*sync.Mutex).Unlock"(%sync.Mutex* %param19), !dbg !1004 | |
br label %rundefers.loophead7, !dbg !1004 | |
} | |
; Function Attrs: optsize | |
define internal fastcc void @"(*sync.Once).Do.destroy"(%"(*sync.Once).Do.Frame"* noalias nonnull align 8 dereferenceable(64) %FramePtr) #1 !dbg !1078 { | |
entry.destroy: | |
ret void, !dbg !1083 | |
} | |
; Function Attrs: optsize | |
define internal fastcc void @"(*sync.Once).Do.cleanup"(%"(*sync.Once).Do.Frame"* noalias nonnull align 8 dereferenceable(64) %FramePtr) #1 !dbg !1084 { | |
entry.cleanup: | |
ret void, !dbg !1089 | |
} | |
; Function Attrs: optsize | |
define internal fastcc void @runtime.chanRecv.resume(%runtime.chanRecv.Frame* noalias nonnull align 8 dereferenceable(48) %FramePtr) #1 !dbg !1090 { | |
entry.resume: | |
%.reload.addr = getelementptr inbounds %runtime.chanRecv.Frame, %runtime.chanRecv.Frame* %FramePtr, i64 0, i32 4, !dbg !1104 | |
%.reload = load i1*, i1** %.reload.addr, align 8, !dbg !1104 | |
%task.state.parent.reload.addr = getelementptr inbounds %runtime.chanRecv.Frame, %runtime.chanRecv.Frame* %FramePtr, i64 0, i32 3, !dbg !1104 | |
%0 = bitcast i8** %task.state.parent.reload.addr to i64*, !dbg !1104 | |
%task.state.parent.reload1 = load i64, i64* %0, align 8, !dbg !1104 | |
%parentHandle.reload.addr = getelementptr inbounds %runtime.chanRecv.Frame, %runtime.chanRecv.Frame* %FramePtr, i64 0, i32 2, !dbg !1104 | |
%parentHandle.reload = load i8*, i8** %parentHandle.reload.addr, align 8, !dbg !1104 | |
%1 = getelementptr inbounds i8, i8* %parentHandle.reload, i64 16, !dbg !1104 | |
%2 = bitcast i8* %1 to i64*, !dbg !1104 | |
%3 = getelementptr inbounds i8, i8* %parentHandle.reload, i64 8, !dbg !1105 | |
%task.current21 = bitcast i8* %parentHandle.reload to %"internal/task.Task"*, !dbg !1107 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* undef, metadata !1098, metadata !DIExpression()), !dbg !1108 | |
%4 = load i64, i64* %2, align 8, !dbg !1109 | |
%5 = icmp eq i64 %4, 1, !dbg !1110 | |
call void @llvm.dbg.value(metadata i1 %5, metadata !1103, metadata !DIExpression()), !dbg !1111 | |
call void @llvm.dbg.value(metadata i8* null, metadata !1100, metadata !DIExpression()), !dbg !1112 | |
call void @llvm.dbg.value(metadata i64 0, metadata !1101, metadata !DIExpression()), !dbg !1113 | |
tail call void @llvm.memset.p0i8.i64(i8* nonnull align 8 dereferenceable(16) %3, i8 0, i64 16, i1 false), !dbg !1113 | |
store i1 %5, i1* %.reload, align 1, !dbg !1108 | |
call void @llvm.dbg.value(metadata i8* undef, metadata !214, metadata !DIExpression()), !dbg !1114 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* undef, metadata !213, metadata !DIExpression()), !dbg !1116 | |
%6 = getelementptr inbounds i8, i8* %parentHandle.reload, i64 24, !dbg !1117 | |
%7 = bitcast i8* %6 to i64*, !dbg !1118 | |
store i64 %task.state.parent.reload1, i64* %7, align 8, !dbg !1118 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* undef, metadata !220, metadata !DIExpression()), !dbg !1119 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* undef, metadata !228, metadata !DIExpression()), !dbg !1121 | |
musttail call fastcc void @"(*internal/task.Queue).Push"(%"internal/task.Task"* nonnull %task.current21), !dbg !1123 | |
ret void, !dbg !1107 | |
} | |
; Function Attrs: optsize | |
define internal fastcc void @runtime.chanRecv.destroy(%runtime.chanRecv.Frame* noalias nonnull align 8 dereferenceable(48) %FramePtr) #1 !dbg !1124 { | |
entry.destroy: | |
ret void, !dbg !1138 | |
} | |
; Function Attrs: optsize | |
define internal fastcc void @runtime.chanRecv.cleanup(%runtime.chanRecv.Frame* noalias nonnull align 8 dereferenceable(48) %FramePtr) #1 !dbg !1139 { | |
entry.cleanup: | |
ret void, !dbg !1153 | |
} | |
; Function Attrs: optsize | |
define internal fastcc void @main.main.resume(%main.main.Frame* noalias nonnull align 8 dereferenceable(88) %FramePtr) #1 !dbg !1154 { | |
entry.resume: | |
%chan.value = getelementptr inbounds %main.main.Frame, %main.main.Frame* %FramePtr, i64 0, i32 5, !dbg !1157 | |
%chan.blockedList = getelementptr inbounds %main.main.Frame, %main.main.Frame* %FramePtr, i64 0, i32 2, !dbg !1157 | |
%index.addr = getelementptr inbounds %main.main.Frame, %main.main.Frame* %FramePtr, i64 0, i32 6 | |
%index = load i1, i1* %index.addr, align 8 | |
%call.return.reload.addr19 = getelementptr inbounds %main.main.Frame, %main.main.Frame* %FramePtr, i64 0, i32 7, !dbg !1157 | |
%parentHandle.reload.addr15 = getelementptr inbounds %main.main.Frame, %main.main.Frame* %FramePtr, i64 0, i32 3, !dbg !1157 | |
%parentHandle.reload16 = load i8*, i8** %parentHandle.reload.addr15, align 8, !dbg !1157 | |
br i1 %index, label %wakeup, label %wakeup2 | |
wakeup2: ; preds = %entry.resume | |
call void @llvm.dbg.value(metadata %runtime.channel* bitcast ({ [56 x i8], {}* }* @"main$alloc.60" to %runtime.channel*), metadata !1156, metadata !DIExpression()), !dbg !1157 | |
%0 = bitcast {}* %chan.value to i8*, !dbg !1157 | |
tail call void @llvm.lifetime.start.p0i8(i64 0, i8* nonnull %0), !dbg !1157 | |
%1 = bitcast %runtime.channelBlockedList* %chan.blockedList to i8*, !dbg !1157 | |
tail call void @llvm.lifetime.start.p0i8(i64 48, i8* nonnull %1), !dbg !1157 | |
tail call void @llvm.lifetime.start.p0i8(i64 1, i8* nonnull %call.return.reload.addr19), !dbg !1157 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* undef, metadata !1158, metadata !DIExpression()), !dbg !1165 | |
call void @llvm.dbg.value(metadata i8* undef, metadata !1163, metadata !DIExpression()), !dbg !1165 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* undef, metadata !1158, metadata !DIExpression()), !dbg !1167 | |
%2 = icmp eq i8* %parentHandle.reload16, null, !dbg !1168 | |
br i1 %2, label %gep.throw.i, label %CoroEnd, !dbg !1168 | |
gep.throw.i: ; preds = %wakeup2 | |
tail call fastcc void @runtime.nilPanic(), !dbg !1168 | |
unreachable, !dbg !1168 | |
wakeup: ; preds = %entry.resume | |
%3 = bitcast %runtime.channelBlockedList* %chan.blockedList to i8*, !dbg !1157 | |
%4 = bitcast {}* %chan.value to i8*, !dbg !1157 | |
tail call void @llvm.lifetime.end.p0i8(i64 1, i8* nonnull %call.return.reload.addr19), !dbg !1157 | |
tail call void @llvm.lifetime.end.p0i8(i64 48, i8* nonnull %3), !dbg !1157 | |
tail call void @llvm.lifetime.end.p0i8(i64 0, i8* nonnull %4), !dbg !1157 | |
call void @llvm.dbg.value(metadata i8* undef, metadata !214, metadata !DIExpression()), !dbg !1169 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* undef, metadata !213, metadata !DIExpression()), !dbg !1171 | |
%5 = icmp eq i8* %parentHandle.reload16, null, !dbg !1172 | |
br i1 %5, label %gep.throw.i5, label %"(*internal/task.Task).returnTo.exit", !dbg !1172 | |
gep.throw.i5: ; preds = %wakeup | |
tail call fastcc void @runtime.nilPanic(), !dbg !1172 | |
unreachable, !dbg !1172 | |
"(*internal/task.Task).returnTo.exit": ; preds = %wakeup | |
%task.current310 = bitcast i8* %parentHandle.reload16 to %"internal/task.Task"*, !dbg !1157 | |
%task.state.parent.reload.addr = getelementptr inbounds %main.main.Frame, %main.main.Frame* %FramePtr, i64 0, i32 4, !dbg !1157 | |
%6 = bitcast i8** %task.state.parent.reload.addr to i64*, !dbg !1157 | |
%task.state.parent.reload3 = load i64, i64* %6, align 8, !dbg !1157 | |
%7 = getelementptr inbounds i8, i8* %parentHandle.reload16, i64 24, !dbg !1172 | |
call void @llvm.dbg.value(metadata i8* undef, metadata !214, metadata !DIExpression()), !dbg !1173 | |
%8 = bitcast i8* %7 to i64*, !dbg !1173 | |
store i64 %task.state.parent.reload3, i64* %8, align 8, !dbg !1173 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* undef, metadata !213, metadata !DIExpression()), !dbg !1174 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* undef, metadata !220, metadata !DIExpression()), !dbg !1175 | |
call void @llvm.dbg.value(metadata %"internal/task.Task"* undef, metadata !228, metadata !DIExpression()), !dbg !1177 | |
musttail call fastcc void @"(*internal/task.Queue).Push"(%"internal/task.Task"* nonnull %task.current310), !dbg !1179 | |
ret void, !dbg !1157 | |
CoroEnd: ; preds = %wakeup2 | |
%9 = getelementptr inbounds i8, i8* %parentHandle.reload16, i64 8, !dbg !1168 | |
%10 = bitcast i8* %9 to i8**, !dbg !1168 | |
call void @llvm.dbg.value(metadata i8* undef, metadata !1163, metadata !DIExpression()), !dbg !1180 | |
store i8* %call.return.reload.addr19, i8** %10, align 8, !dbg !1168 | |
call void @llvm.dbg.value(metadata i8* undef, metadata !1164, metadata !DIExpression()), !dbg !1168 | |
%11 = tail call fastcc i1 @runtime.chanRecv(%runtime.channel* bitcast ({ [56 x i8], {}* }* @"main$alloc.60" to %runtime.channel*), i8* nonnull %0, %runtime.channelBlockedList* nonnull %chan.blockedList, i8* undef, i8* nonnull %parentHandle.reload16), !dbg !1157 | |
store i1 true, i1* %index.addr, align 8, !dbg !1157 | |
ret void, !dbg !1157 | |
} | |
; Function Attrs: optsize | |
define internal fastcc void @main.main.destroy(%main.main.Frame* noalias nonnull align 8 dereferenceable(88) %FramePtr) #1 !dbg !1181 { | |
entry.destroy: | |
ret void, !dbg !1184 | |
} | |
; Function Attrs: optsize | |
define internal fastcc void @main.main.cleanup(%main.main.Frame* noalias nonnull align 8 dereferenceable(88) %FramePtr) #1 !dbg !1185 { | |
entry.cleanup: | |
ret void, !dbg !1188 | |
} | |
; Function Attrs: optsize | |
define internal fastcc void @"runtime.run$1.resume"(%"runtime.run$1.Frame"* noalias nonnull align 8 dereferenceable(40) %FramePtr) #1 !dbg !1189 { | |
entry.resume: | |
%task.state.parent.reload.addr = getelementptr inbounds %"runtime.run$1.Frame", %"runtime.run$1.Frame"* %FramePtr, i64 0, i32 3, !dbg !1192 | |
%task.state.parent.reload = load i8*, i8** %task.state.parent.reload.addr, align 8, !dbg !1192 | |
%parentHandle.reload.addr = getelementptr inbounds %"runtime.run$1.Frame", %"runtime.run$1.Frame"* %FramePtr, i64 0, i32 2, !dbg !1192 | |
%0 = bitcast i8** %parentHandle.reload.addr to %"internal/task.Task"**, !dbg !1192 | |
%parentHandle.reload1 = load %"internal/task.Task"*, %"internal/task.Task"** %0, align 8, !dbg !1192 | |
store i1 true, i1* @runtime.schedulerDone, align 1, !dbg !1193 | |
call void @llvm.dbg.value(metadata i1 true, metadata !1191, metadata !DIExpression()), !dbg !1193 | |
tail call fastcc void @"(*internal/task.Task).returnTo"(%"internal/task.Task"* %parentHandle.reload1, i8* %task.state.parent.reload), !dbg !1193 | |
ret void, !dbg !1192 | |
} | |
; Function Attrs: optsize | |
define internal fastcc void @"runtime.run$1.destroy"(%"runtime.run$1.Frame"* noalias nonnull align 8 dereferenceable(40) %FramePtr) #1 !dbg !1194 { | |
entry.destroy: | |
ret void, !dbg !1197 | |
} | |
; Function Attrs: optsize | |
define internal fastcc void @"runtime.run$1.cleanup"(%"runtime.run$1.Frame"* noalias nonnull align 8 dereferenceable(40) %FramePtr) #1 !dbg !1198 { | |
entry.cleanup: | |
ret void, !dbg !1201 | |
} | |
attributes #0 = { nounwind readnone speculatable willreturn } | |
attributes #1 = { optsize } | |
attributes #2 = { argmemonly nounwind willreturn } | |
attributes #3 = { noreturn optsize } | |
attributes #4 = { nounwind optsize } | |
attributes #5 = { argmemonly nounwind willreturn writeonly } | |
attributes #6 = { nofree nounwind optsize } | |
attributes #7 = { noinline optsize } | |
attributes #8 = { argmemonly nofree nounwind optsize readonly } | |
attributes #9 = { argmemonly nounwind readonly } | |
attributes #10 = { nounwind } | |
attributes #11 = { norecurse nounwind readnone } | |
!llvm.dbg.cu = !{!74, !77, !78, !79, !80, !81, !99, !106, !107, !127} | |
!llvm.module.flags = !{!161, !162} | |
!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) | |
!1 = distinct !DIGlobalVariable(name: "runtime.args", linkageName: "runtime.args", scope: !2, file: !2, line: 29, type: !3, isLocal: false, isDefinition: true, align: 15) | |
!2 = !DIFile(filename: "runtime.go", directory: "/usr/local/Cellar/tinygo/0.19.0/src/runtime") | |
!3 = !DICompositeType(tag: DW_TAG_structure_type, name: "[]string", size: 192, align: 64, elements: !4) | |
!4 = !{!5, !12, !14} | |
!5 = !DIDerivedType(tag: DW_TAG_member, name: "ptr", baseType: !6, size: 64, align: 64) | |
!6 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !7, size: 64, align: 64, dwarfAddressSpace: 0) | |
!7 = !DICompositeType(tag: DW_TAG_structure_type, name: "string", size: 128, align: 64, elements: !8) | |
!8 = !{!9, !12} | |
!9 = !DIDerivedType(tag: DW_TAG_member, name: "ptr", baseType: !10, size: 64, align: 64) | |
!10 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !11, size: 64, align: 64, dwarfAddressSpace: 0) | |
!11 = !DIBasicType(name: "uint8", size: 8, encoding: DW_ATE_unsigned) | |
!12 = !DIDerivedType(tag: DW_TAG_member, name: "len", baseType: !13, size: 64, align: 64, offset: 64) | |
!13 = !DIBasicType(name: "uintptr", size: 64, encoding: DW_ATE_unsigned) | |
!14 = !DIDerivedType(tag: DW_TAG_member, name: "cap", baseType: !13, size: 64, align: 64, offset: 128) | |
!15 = !DIGlobalVariableExpression(var: !16, expr: !DIExpression()) | |
!16 = distinct !DIGlobalVariable(name: "runtime.heapSize", linkageName: "runtime.heapSize", scope: !17, file: !17, line: 8, type: !13, isLocal: false, isDefinition: true, align: 15) | |
!17 = !DIFile(filename: "runtime_unix_heap.go", directory: "/usr/local/Cellar/tinygo/0.19.0/src/runtime") | |
!18 = !DIGlobalVariableExpression(var: !19, expr: !DIExpression()) | |
!19 = distinct !DIGlobalVariable(name: "runtime.heapStart", linkageName: "runtime.heapStart", scope: !17, file: !17, line: 11, type: !13, isLocal: false, isDefinition: true, align: 15) | |
!20 = !DIGlobalVariableExpression(var: !21, expr: !DIExpression()) | |
!21 = distinct !DIGlobalVariable(name: "runtime.heapptr", linkageName: "runtime.heapptr", scope: !22, file: !22, line: 14, type: !13, isLocal: false, isDefinition: true, align: 15) | |
!22 = !DIFile(filename: "gc_leaking.go", directory: "/usr/local/Cellar/tinygo/0.19.0/src/runtime") | |
!23 = !DIGlobalVariableExpression(var: !24, expr: !DIExpression()) | |
!24 = distinct !DIGlobalVariable(name: "runtime.runqueue", linkageName: "runtime.runqueue", scope: !25, file: !25, line: 31, type: !26, isLocal: false, isDefinition: true, align: 15) | |
!25 = !DIFile(filename: "scheduler.go", directory: "/usr/local/Cellar/tinygo/0.19.0/src/runtime") | |
!26 = !DIDerivedType(tag: DW_TAG_typedef, name: "internal/task.Queue", baseType: !27) | |
!27 = !DICompositeType(tag: DW_TAG_structure_type, size: 128, align: 64, elements: !28) | |
!28 = !{!29, !46} | |
!29 = !DIDerivedType(tag: DW_TAG_member, name: "head", baseType: !30, size: 64, align: 64) | |
!30 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !31, size: 64, align: 64, dwarfAddressSpace: 0) | |
!31 = !DIDerivedType(tag: DW_TAG_typedef, name: "internal/task.Task", baseType: !32) | |
!32 = !DICompositeType(tag: DW_TAG_structure_type, size: 256, align: 64, elements: !33) | |
!33 = !{!34, !35, !37, !39} | |
!34 = !DIDerivedType(tag: DW_TAG_member, name: "Next", baseType: !30, size: 64, align: 64) | |
!35 = !DIDerivedType(tag: DW_TAG_member, name: "Ptr", baseType: !36, size: 64, align: 64, offset: 64) | |
!36 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "unsafe.Pointer", baseType: null, size: 64, align: 64, dwarfAddressSpace: 0) | |
!37 = !DIDerivedType(tag: DW_TAG_member, name: "Data", baseType: !38, size: 64, align: 64, offset: 128) | |
!38 = !DIBasicType(name: "uint64", size: 64, encoding: DW_ATE_unsigned) | |
!39 = !DIDerivedType(tag: DW_TAG_member, name: "state", baseType: !40, size: 64, align: 64, offset: 192) | |
!40 = !DIDerivedType(tag: DW_TAG_typedef, name: "internal/task.state", baseType: !41) | |
!41 = !DICompositeType(tag: DW_TAG_structure_type, size: 64, align: 64, elements: !42) | |
!42 = !{!43} | |
!43 = !DIDerivedType(tag: DW_TAG_member, name: "rawState", baseType: !44, size: 64, align: 64) | |
!44 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !45, size: 64, align: 64, dwarfAddressSpace: 0) | |
!45 = !DIDerivedType(tag: DW_TAG_typedef, name: "internal/task.rawState", baseType: !11) | |
!46 = !DIDerivedType(tag: DW_TAG_member, name: "tail", baseType: !30, size: 64, align: 64, offset: 64) | |
!47 = !DIGlobalVariableExpression(var: !48, expr: !DIExpression()) | |
!48 = distinct !DIGlobalVariable(name: "runtime.heapEnd", linkageName: "runtime.heapEnd", scope: !17, file: !17, line: 11, type: !13, isLocal: false, isDefinition: true, align: 15) | |
!49 = !DIGlobalVariableExpression(var: !50, expr: !DIExpression()) | |
!50 = distinct !DIGlobalVariable(name: "runtime.schedulerDone", linkageName: "runtime.schedulerDone", scope: !25, file: !25, line: 27, type: !51, isLocal: false, isDefinition: true, align: 1) | |
!51 = !DIBasicType(name: "bool", size: 8, encoding: DW_ATE_boolean) | |
!52 = !DIGlobalVariableExpression(var: !53, expr: !DIExpression()) | |
!53 = distinct !DIGlobalVariable(name: "main.once", linkageName: "main.once", scope: !54, file: !54, line: 8, type: !55, isLocal: false, isDefinition: true, align: 15) | |
!54 = !DIFile(filename: "main.go", directory: "/Users/dgryski/go/src/github.com/fastly/dgryski/wasmplay/cmd/crasher") | |
!55 = !DIDerivedType(tag: DW_TAG_typedef, name: "sync.Once", baseType: !56) | |
!56 = !DICompositeType(tag: DW_TAG_structure_type, size: 192, align: 64, elements: !57) | |
!57 = !{!58, !59} | |
!58 = !DIDerivedType(tag: DW_TAG_member, name: "done", baseType: !51, size: 8, align: 8) | |
!59 = !DIDerivedType(tag: DW_TAG_member, name: "m", baseType: !60, size: 128, align: 64, offset: 64) | |
!60 = !DIDerivedType(tag: DW_TAG_typedef, name: "sync.Mutex", baseType: !61) | |
!61 = !DICompositeType(tag: DW_TAG_structure_type, size: 128, align: 64, elements: !62) | |
!62 = !{!63, !64} | |
!63 = !DIDerivedType(tag: DW_TAG_member, name: "locked", baseType: !51, size: 8, align: 8) | |
!64 = !DIDerivedType(tag: DW_TAG_member, name: "blocked", baseType: !65, size: 64, align: 64, offset: 64) | |
!65 = !DIDerivedType(tag: DW_TAG_typedef, name: "internal/task.Stack", baseType: !66) | |
!66 = !DICompositeType(tag: DW_TAG_structure_type, size: 64, align: 64, elements: !67) | |
!67 = !{!68} | |
!68 = !DIDerivedType(tag: DW_TAG_member, name: "top", baseType: !69, size: 64, align: 64) | |
!69 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !70, size: 64, align: 64, dwarfAddressSpace: 0) | |
!70 = !DIDerivedType(tag: DW_TAG_typedef, name: "internal/task.Task", baseType: !71) | |
!71 = !DICompositeType(tag: DW_TAG_structure_type, size: 256, align: 64, elements: !72) | |
!72 = !{!73, !35, !37, !39} | |
!73 = !DIDerivedType(tag: DW_TAG_member, name: "Next", baseType: !69, size: 64, align: 64) | |
!74 = distinct !DICompileUnit(language: DW_LANG_C99, file: !75, producer: "TinyGo", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !76) | |
!75 = !DIFile(filename: "<unknown>", directory: "") | |
!76 = !{} | |
!77 = distinct !DICompileUnit(language: DW_LANG_C99, file: !75, producer: "TinyGo", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !76) | |
!78 = distinct !DICompileUnit(language: DW_LANG_C99, file: !75, producer: "TinyGo", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !76) | |
!79 = distinct !DICompileUnit(language: DW_LANG_C99, file: !75, producer: "TinyGo", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !76) | |
!80 = distinct !DICompileUnit(language: DW_LANG_C99, file: !75, producer: "TinyGo", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !76) | |
!81 = distinct !DICompileUnit(language: DW_LANG_C99, file: !75, producer: "TinyGo", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !76, globals: !82) | |
!82 = !{!83, !89} | |
!83 = !DIGlobalVariableExpression(var: !84, expr: !DIExpression()) | |
!84 = distinct !DIGlobalVariable(name: "unicode/utf8.first", linkageName: "unicode/utf8.first", scope: !85, file: !85, line: 65, type: !86, isLocal: false, isDefinition: true, align: 1) | |
!85 = !DIFile(filename: "utf8.go", directory: "/Users/dgryski/go/src/go.googlesource.com/go1.16/src/unicode/utf8") | |
!86 = !DICompositeType(tag: DW_TAG_array_type, baseType: !11, size: 2048, align: 8, elements: !87) | |
!87 = !{!88} | |
!88 = !DISubrange(count: 256, lowerBound: 0) | |
!89 = !DIGlobalVariableExpression(var: !90, expr: !DIExpression()) | |
!90 = distinct !DIGlobalVariable(name: "unicode/utf8.acceptRanges", linkageName: "unicode/utf8.acceptRanges", scope: !85, file: !85, line: 94, type: !91, isLocal: false, isDefinition: true, align: 1) | |
!91 = !DICompositeType(tag: DW_TAG_array_type, baseType: !92, size: 256, align: 8, elements: !97) | |
!92 = !DIDerivedType(tag: DW_TAG_typedef, name: "unicode/utf8.acceptRange", baseType: !93) | |
!93 = !DICompositeType(tag: DW_TAG_structure_type, size: 16, align: 8, elements: !94) | |
!94 = !{!95, !96} | |
!95 = !DIDerivedType(tag: DW_TAG_member, name: "lo", baseType: !11, size: 8, align: 8) | |
!96 = !DIDerivedType(tag: DW_TAG_member, name: "hi", baseType: !11, size: 8, align: 8, offset: 8) | |
!97 = !{!98} | |
!98 = !DISubrange(count: 16, lowerBound: 0) | |
!99 = distinct !DICompileUnit(language: DW_LANG_C99, file: !75, producer: "TinyGo", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !76, globals: !100) | |
!100 = !{!101} | |
!101 = !DIGlobalVariableExpression(var: !102, expr: !DIExpression()) | |
!102 = distinct !DIGlobalVariable(name: "reflect.errSyntax", linkageName: "reflect.errSyntax", scope: !103, file: !103, line: 12, type: !104, isLocal: false, isDefinition: true, align: 1) | |
!103 = !DIFile(filename: "strconv.go", directory: "/usr/local/Cellar/tinygo/0.19.0/src/reflect") | |
!104 = !DIDerivedType(tag: DW_TAG_typedef, name: "reflect.badSyntax", baseType: !105) | |
!105 = !DICompositeType(tag: DW_TAG_structure_type, align: 8, elements: !76) | |
!106 = distinct !DICompileUnit(language: DW_LANG_C99, file: !75, producer: "TinyGo", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !76) | |
!107 = distinct !DICompileUnit(language: DW_LANG_C99, file: !75, producer: "TinyGo", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !76, globals: !108) | |
!108 = !{!109, !0, !15, !18, !20, !23, !113, !47, !116, !119, !49, !122, !124} | |
!109 = !DIGlobalVariableExpression(var: !110, expr: !DIExpression()) | |
!110 = distinct !DIGlobalVariable(name: "runtime.inf", linkageName: "runtime.inf", scope: !111, file: !111, line: 9, type: !112, isLocal: false, isDefinition: true, align: 15) | |
!111 = !DIFile(filename: "float.go", directory: "/usr/local/Cellar/tinygo/0.19.0/src/runtime") | |
!112 = !DIBasicType(name: "float64", size: 64, encoding: DW_ATE_float) | |
!113 = !DIGlobalVariableExpression(var: !114, expr: !DIExpression()) | |
!114 = distinct !DIGlobalVariable(name: "runtime.notifiedPlaceholder", linkageName: "runtime.notifiedPlaceholder", scope: !115, file: !115, line: 12, type: !31, isLocal: false, isDefinition: true, align: 15) | |
!115 = !DIFile(filename: "cond.go", directory: "/usr/local/Cellar/tinygo/0.19.0/src/runtime") | |
!116 = !DIGlobalVariableExpression(var: !117, expr: !DIExpression()) | |
!117 = distinct !DIGlobalVariable(name: "runtime.timeOffset", linkageName: "runtime.timeOffset", scope: !2, file: !2, line: 74, type: !118, isLocal: false, isDefinition: true, align: 15) | |
!118 = !DIBasicType(name: "int64", size: 64, encoding: DW_ATE_signed) | |
!119 = !DIGlobalVariableExpression(var: !120, expr: !DIExpression()) | |
!120 = distinct !DIGlobalVariable(name: "runtime.stackTop", linkageName: "runtime.stackTop", scope: !121, file: !121, line: 43, type: !13, isLocal: false, isDefinition: true, align: 15) | |
!121 = !DIFile(filename: "runtime_unix.go", directory: "/usr/local/Cellar/tinygo/0.19.0/src/runtime") | |
!122 = !DIGlobalVariableExpression(var: !123, expr: !DIExpression()) | |
!123 = distinct !DIGlobalVariable(name: "runtime.sleepQueue", linkageName: "runtime.sleepQueue", scope: !25, file: !25, line: 32, type: !30, isLocal: false, isDefinition: true, align: 15) | |
!124 = !DIGlobalVariableExpression(var: !125, expr: !DIExpression()) | |
!125 = distinct !DIGlobalVariable(name: "runtime.sleepQueueBaseTime", linkageName: "runtime.sleepQueueBaseTime", scope: !25, file: !25, line: 33, type: !126, isLocal: false, isDefinition: true, align: 15) | |
!126 = !DIDerivedType(tag: DW_TAG_typedef, name: "runtime.timeUnit", baseType: !118) | |
!127 = distinct !DICompileUnit(language: DW_LANG_C99, file: !75, producer: "TinyGo", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !76, globals: !128) | |
!128 = !{!129, !52} | |
!129 = !DIGlobalVariableExpression(var: !130, expr: !DIExpression()) | |
!130 = distinct !DIGlobalVariable(name: "main.ready", linkageName: "main.ready", scope: !54, file: !54, line: 9, type: !131, isLocal: false, isDefinition: true, align: 15) | |
!131 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !132, size: 64, align: 64, dwarfAddressSpace: 0) | |
!132 = !DIDerivedType(tag: DW_TAG_typedef, name: "runtime.channel", baseType: !133) | |
!133 = !DICompositeType(tag: DW_TAG_structure_type, size: 512, align: 64, elements: !134) | |
!134 = !{!135, !136, !137, !139, !157, !158, !159, !160} | |
!135 = !DIDerivedType(tag: DW_TAG_member, name: "elementSize", baseType: !13, size: 64, align: 64) | |
!136 = !DIDerivedType(tag: DW_TAG_member, name: "bufSize", baseType: !13, size: 64, align: 64, offset: 64) | |
!137 = !DIDerivedType(tag: DW_TAG_member, name: "state", baseType: !138, size: 8, align: 8, offset: 128) | |
!138 = !DIDerivedType(tag: DW_TAG_typedef, name: "runtime.chanState", baseType: !11) | |
!139 = !DIDerivedType(tag: DW_TAG_member, name: "blocked", baseType: !140, size: 64, align: 64, offset: 192) | |
!140 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !141, size: 64, align: 64, dwarfAddressSpace: 0) | |
!141 = !DIDerivedType(tag: DW_TAG_typedef, name: "runtime.channelBlockedList", baseType: !142) | |
!142 = !DICompositeType(tag: DW_TAG_structure_type, size: 384, align: 64, elements: !143) | |
!143 = !{!144, !145, !146, !153} | |
!144 = !DIDerivedType(tag: DW_TAG_member, name: "next", baseType: !140, size: 64, align: 64) | |
!145 = !DIDerivedType(tag: DW_TAG_member, name: "t", baseType: !69, size: 64, align: 64, offset: 64) | |
!146 = !DIDerivedType(tag: DW_TAG_member, name: "s", baseType: !147, size: 64, align: 64, offset: 128) | |
!147 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !148, size: 64, align: 64, dwarfAddressSpace: 0) | |
!148 = !DIDerivedType(tag: DW_TAG_typedef, name: "runtime.chanSelectState", baseType: !149) | |
!149 = !DICompositeType(tag: DW_TAG_structure_type, size: 128, align: 64, elements: !150) | |
!150 = !{!151, !152} | |
!151 = !DIDerivedType(tag: DW_TAG_member, name: "ch", baseType: !131, size: 64, align: 64) | |
!152 = !DIDerivedType(tag: DW_TAG_member, name: "value", baseType: !36, size: 64, align: 64, offset: 64) | |
!153 = !DIDerivedType(tag: DW_TAG_member, name: "allSelectOps", baseType: !154, size: 192, align: 64, offset: 192) | |
!154 = !DICompositeType(tag: DW_TAG_structure_type, name: "[]runtime.channelBlockedList", size: 192, align: 64, elements: !155) | |
!155 = !{!156, !12, !14} | |
!156 = !DIDerivedType(tag: DW_TAG_member, name: "ptr", baseType: !140, size: 64, align: 64) | |
!157 = !DIDerivedType(tag: DW_TAG_member, name: "bufHead", baseType: !13, size: 64, align: 64, offset: 256) | |
!158 = !DIDerivedType(tag: DW_TAG_member, name: "bufTail", baseType: !13, size: 64, align: 64, offset: 320) | |
!159 = !DIDerivedType(tag: DW_TAG_member, name: "bufUsed", baseType: !13, size: 64, align: 64, offset: 384) | |
!160 = !DIDerivedType(tag: DW_TAG_member, name: "buf", baseType: !36, size: 64, align: 64, offset: 448) | |
!161 = !{i32 1, !"Debug Info Version", i32 3} | |
!162 = !{i32 1, !"Dwarf Version", i32 4} | |
!163 = distinct !DISubprogram(name: "(*internal/task.Queue).Push", linkageName: "(*internal/task.Queue).Push", scope: !164, file: !164, line: 14, type: !165, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !78, retainedNodes: !178) | |
!164 = !DIFile(filename: "queue.go", directory: "/usr/local/Cellar/tinygo/0.19.0/src/internal/task") | |
!165 = !DISubroutineType(types: !166) | |
!166 = !{!167, !172} | |
!167 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !168, size: 64, align: 64, dwarfAddressSpace: 0) | |
!168 = !DIDerivedType(tag: DW_TAG_typedef, name: "internal/task.Queue", baseType: !169) | |
!169 = !DICompositeType(tag: DW_TAG_structure_type, size: 128, align: 64, elements: !170) | |
!170 = !{!171, !177} | |
!171 = !DIDerivedType(tag: DW_TAG_member, name: "head", baseType: !172, size: 64, align: 64) | |
!172 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !173, size: 64, align: 64, dwarfAddressSpace: 0) | |
!173 = !DIDerivedType(tag: DW_TAG_typedef, name: "internal/task.Task", baseType: !174) | |
!174 = !DICompositeType(tag: DW_TAG_structure_type, size: 256, align: 64, elements: !175) | |
!175 = !{!176, !35, !37, !39} | |
!176 = !DIDerivedType(tag: DW_TAG_member, name: "Next", baseType: !172, size: 64, align: 64) | |
!177 = !DIDerivedType(tag: DW_TAG_member, name: "tail", baseType: !172, size: 64, align: 64, offset: 64) | |
!178 = !{!179, !180, !181, !183, !185, !186} | |
!179 = !DILocalVariable(name: "q", arg: 1, scope: !163, file: !164, line: 14, type: !167) | |
!180 = !DILocalVariable(name: "t", arg: 2, scope: !163, file: !164, line: 14, type: !172) | |
!181 = !DILocalVariable(name: "i", scope: !163, file: !164, line: 15, type: !182) | |
!182 = !DIDerivedType(tag: DW_TAG_typedef, name: "runtime/interrupt.State", baseType: !13) | |
!183 = !DILocalVariable(name: "Next", scope: !163, file: !184, line: 10, type: !172) | |
!184 = !DIFile(filename: "task.go", directory: "/usr/local/Cellar/tinygo/0.19.0/src/internal/task") | |
!185 = !DILocalVariable(name: "tail", scope: !163, file: !164, line: 10, type: !172) | |
!186 = !DILocalVariable(name: "head", scope: !163, file: !164, line: 10, type: !172) | |
!187 = !DILocation(line: 14, column: 17, scope: !163) | |
!188 = !DILocation(line: 15, column: 2, scope: !163) | |
!189 = !DILocation(line: 20, column: 7, scope: !163) | |
!190 = !DILocation(line: 20, column: 12, scope: !163) | |
!191 = !DILocation(line: 0, scope: !163) | |
!192 = !DILocation(line: 28, column: 20, scope: !163) | |
!193 = !DILocation(line: 29, column: 2, scope: !163) | |
!194 = !DILocation(line: 21, column: 3, scope: !163) | |
!195 = !DILocation(line: 21, column: 10, scope: !163) | |
!196 = !DILocation(line: 21, column: 17, scope: !163) | |
!197 = !DILocation(line: 23, column: 2, scope: !163) | |
!198 = !DILocation(line: 23, column: 11, scope: !163) | |
!199 = !DILocation(line: 23, column: 4, scope: !163) | |
!200 = !DILocation(line: 24, column: 2, scope: !163) | |
!201 = !DILocation(line: 24, column: 4, scope: !163) | |
!202 = !DILocation(line: 25, column: 5, scope: !163) | |
!203 = !DILocation(line: 25, column: 7, scope: !163) | |
!204 = !DILocation(line: 25, column: 12, scope: !163) | |
!205 = !DILocation(line: 26, column: 3, scope: !163) | |
!206 = !DILocation(line: 26, column: 12, scope: !163) | |
!207 = !DILocation(line: 26, column: 5, scope: !163) | |
!208 = distinct !DISubprogram(name: "(*internal/task.Task).returnTo", linkageName: "(*internal/task.Task).returnTo", scope: !209, file: !209, line: 35, type: !210, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !78, retainedNodes: !212) | |
!209 = !DIFile(filename: "task_coroutine.go", directory: "/usr/local/Cellar/tinygo/0.19.0/src/internal/task") | |
!210 = !DISubroutineType(types: !211) | |
!211 = !{!172, !44} | |
!212 = !{!213, !214} | |
!213 = !DILocalVariable(name: "t", arg: 1, scope: !208, file: !209, line: 35, type: !172) | |
!214 = !DILocalVariable(name: "parent", arg: 2, scope: !208, file: !209, line: 35, type: !44) | |
!215 = !DILocation(line: 35, column: 16, scope: !208) | |
!216 = !DILocation(line: 36, column: 2, scope: !208) | |
!217 = !DILocation(line: 36, column: 4, scope: !208) | |
!218 = !DILocation(line: 36, column: 18, scope: !208) | |
!219 = !DILocation(line: 37, column: 2, scope: !208) | |
!220 = !DILocalVariable(name: "t", arg: 1, scope: !221, file: !209, line: 41, type: !172) | |
!221 = distinct !DISubprogram(name: "(*internal/task.Task).returnCurrent", linkageName: "(*internal/task.Task).returnCurrent", scope: !209, file: !209, line: 41, type: !222, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !78, retainedNodes: !224) | |
!222 = !DISubroutineType(types: !223) | |
!223 = !{!172} | |
!224 = !{!220} | |
!225 = !DILocation(line: 41, column: 16, scope: !221, inlinedAt: !226) | |
!226 = distinct !DILocation(line: 37, column: 17, scope: !208) | |
!227 = !DILocation(line: 42, column: 15, scope: !221, inlinedAt: !226) | |
!228 = !DILocalVariable(name: "t", arg: 1, scope: !229, file: !25, line: 79, type: !30) | |
!229 = distinct !DISubprogram(name: "runtime.runqueuePushBack", linkageName: "runtime.runqueuePushBack", scope: !25, file: !25, line: 79, type: !230, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !107, retainedNodes: !232) | |
!230 = !DISubroutineType(types: !231) | |
!231 = !{!30} | |
!232 = !{!228} | |
!233 = !DILocation(line: 79, column: 6, scope: !229, inlinedAt: !234) | |
!234 = distinct !DILocation(line: 42, column: 14, scope: !221, inlinedAt: !226) | |
!235 = !DILocation(line: 80, column: 16, scope: !229, inlinedAt: !234) | |
!236 = !DILocation(line: 80, column: 15, scope: !229, inlinedAt: !234) | |
!237 = !DILocation(line: 38, column: 2, scope: !208) | |
!238 = distinct !DISubprogram(name: "(*internal/task.Task).setState", linkageName: "(*internal/task.Task).setState", scope: !209, file: !209, line: 28, type: !210, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !78, retainedNodes: !239) | |
!239 = !{!240, !241, !242} | |
!240 = !DILocalVariable(name: "t", arg: 1, scope: !238, file: !209, line: 28, type: !172) | |
!241 = !DILocalVariable(name: "s", arg: 2, scope: !238, file: !209, line: 28, type: !44) | |
!242 = !DILocalVariable(name: "caller", scope: !238, file: !209, line: 29, type: !40) | |
!243 = !DILocation(line: 28, column: 16, scope: !238) | |
!244 = !DILocation(line: 29, column: 12, scope: !238) | |
!245 = !DILocation(line: 29, column: 14, scope: !238) | |
!246 = !DILocation(line: 29, column: 2, scope: !238) | |
!247 = !DILocation(line: 30, column: 2, scope: !238) | |
!248 = !DILocation(line: 30, column: 18, scope: !238) | |
!249 = !DILocation(line: 31, column: 2, scope: !238) | |
!250 = distinct !DISubprogram(name: "(*sync.Mutex).Unlock", linkageName: "(*sync.Mutex).Unlock", scope: !251, file: !251, line: 30, type: !252, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !79, retainedNodes: !268) | |
!251 = !DIFile(filename: "mutex.go", directory: "/usr/local/Cellar/tinygo/0.19.0/src/sync") | |
!252 = !DISubroutineType(types: !253) | |
!253 = !{!254} | |
!254 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !255, size: 64, align: 64, dwarfAddressSpace: 0) | |
!255 = !DIDerivedType(tag: DW_TAG_typedef, name: "sync.Mutex", baseType: !256) | |
!256 = !DICompositeType(tag: DW_TAG_structure_type, size: 128, align: 64, elements: !257) | |
!257 = !{!63, !258} | |
!258 = !DIDerivedType(tag: DW_TAG_member, name: "blocked", baseType: !259, size: 64, align: 64, offset: 64) | |
!259 = !DIDerivedType(tag: DW_TAG_typedef, name: "internal/task.Stack", baseType: !260) | |
!260 = !DICompositeType(tag: DW_TAG_structure_type, size: 64, align: 64, elements: !261) | |
!261 = !{!262} | |
!262 = !DIDerivedType(tag: DW_TAG_member, name: "top", baseType: !263, size: 64, align: 64) | |
!263 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !264, size: 64, align: 64, dwarfAddressSpace: 0) | |
!264 = !DIDerivedType(tag: DW_TAG_typedef, name: "internal/task.Task", baseType: !265) | |
!265 = !DICompositeType(tag: DW_TAG_structure_type, size: 256, align: 64, elements: !266) | |
!266 = !{!267, !35, !37, !39} | |
!267 = !DIDerivedType(tag: DW_TAG_member, name: "Next", baseType: !263, size: 64, align: 64) | |
!268 = !{!269, !270, !271} | |
!269 = !DILocalVariable(name: "m", arg: 1, scope: !250, file: !251, line: 30, type: !254) | |
!270 = !DILocalVariable(name: "t", scope: !250, file: !251, line: 36, type: !263) | |
!271 = !DILocalVariable(name: "locked", scope: !250, file: !251, line: 12, type: !51) | |
!272 = !DILocation(line: 30, column: 17, scope: !250) | |
!273 = !DILocation(line: 31, column: 6, scope: !250) | |
!274 = !DILocation(line: 31, column: 8, scope: !250) | |
!275 = !DILocalVariable(name: "s", arg: 1, scope: !276, file: !164, line: 88, type: !279) | |
!276 = distinct !DISubprogram(name: "(*internal/task.Stack).Pop", linkageName: "(*internal/task.Stack).Pop", scope: !164, file: !164, line: 88, type: !277, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !78, retainedNodes: !284) | |
!277 = !DISubroutineType(types: !278) | |
!278 = !{!279} | |
!279 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !280, size: 64, align: 64, dwarfAddressSpace: 0) | |
!280 = !DIDerivedType(tag: DW_TAG_typedef, name: "internal/task.Stack", baseType: !281) | |
!281 = !DICompositeType(tag: DW_TAG_structure_type, size: 64, align: 64, elements: !282) | |
!282 = !{!283} | |
!283 = !DIDerivedType(tag: DW_TAG_member, name: "top", baseType: !172, size: 64, align: 64) | |
!284 = !{!275, !285, !286, !287, !288} | |
!285 = !DILocalVariable(name: "i", scope: !276, file: !164, line: 89, type: !182) | |
!286 = !DILocalVariable(name: "t", scope: !276, file: !164, line: 90, type: !172) | |
!287 = !DILocalVariable(name: "top", scope: !276, file: !164, line: 73, type: !172) | |
!288 = !DILocalVariable(name: "Next", scope: !276, file: !184, line: 10, type: !172) | |
!289 = !DILocation(line: 92, column: 3, scope: !276, inlinedAt: !290) | |
!290 = distinct !DILocation(line: 36, column: 23, scope: !250) | |
!291 = !DILocation(line: 92, column: 11, scope: !276, inlinedAt: !290) | |
!292 = !DILocation(line: 92, column: 13, scope: !276, inlinedAt: !290) | |
!293 = !DILocation(line: 92, column: 5, scope: !276, inlinedAt: !290) | |
!294 = !DILocation(line: 93, column: 5, scope: !276, inlinedAt: !290) | |
!295 = !DILocation(line: 95, column: 20, scope: !276, inlinedAt: !290) | |
!296 = !DILocation(line: 37, column: 16, scope: !250) | |
!297 = !DILocation(line: 80, column: 16, scope: !229, inlinedAt: !298) | |
!298 = distinct !DILocation(line: 37, column: 15, scope: !250) | |
!299 = !DILocation(line: 80, column: 15, scope: !229, inlinedAt: !298) | |
!300 = !DILocation(line: 0, scope: !250) | |
!301 = !DILocation(line: 41, column: 2, scope: !250) | |
!302 = !DILocation(line: 32, column: 8, scope: !250) | |
!303 = !DILocation(line: 36, column: 10, scope: !250) | |
!304 = !DILocation(line: 36, column: 12, scope: !250) | |
!305 = !DILocation(line: 89, column: 2, scope: !276, inlinedAt: !290) | |
!306 = !DILocation(line: 90, column: 7, scope: !276, inlinedAt: !290) | |
!307 = !DILocation(line: 90, column: 9, scope: !276, inlinedAt: !290) | |
!308 = !DILocation(line: 91, column: 5, scope: !276, inlinedAt: !290) | |
!309 = !DILocation(line: 91, column: 7, scope: !276, inlinedAt: !290) | |
!310 = !DILocation(line: 0, scope: !276, inlinedAt: !290) | |
!311 = !DILocation(line: 96, column: 9, scope: !276, inlinedAt: !290) | |
!312 = !DILocation(line: 36, column: 27, scope: !250) | |
!313 = !DILocation(line: 39, column: 3, scope: !250) | |
!314 = !DILocation(line: 39, column: 5, scope: !250) | |
!315 = distinct !DISubprogram(name: "(*sync.Once).Do", linkageName: "(*sync.Once).Do", scope: !316, file: !316, line: 8, type: !317, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !79, retainedNodes: !328) | |
!316 = !DIFile(filename: "once.go", directory: "/usr/local/Cellar/tinygo/0.19.0/src/sync") | |
!317 = !DISubroutineType(types: !318) | |
!318 = !{!319, !324} | |
!319 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !320, size: 64, align: 64, dwarfAddressSpace: 0) | |
!320 = !DIDerivedType(tag: DW_TAG_typedef, name: "sync.Once", baseType: !321) | |
!321 = !DICompositeType(tag: DW_TAG_structure_type, size: 192, align: 64, elements: !322) | |
!322 = !{!58, !323} | |
!323 = !DIDerivedType(tag: DW_TAG_member, name: "m", baseType: !255, size: 128, align: 64, offset: 64) | |
!324 = !DICompositeType(tag: DW_TAG_structure_type, size: 128, align: 64, elements: !325) | |
!325 = !{!326, !327} | |
!326 = !DIDerivedType(tag: DW_TAG_member, name: "context", baseType: !36, size: 64, align: 64) | |
!327 = !DIDerivedType(tag: DW_TAG_member, name: "fn", baseType: !36, size: 64, align: 64, offset: 64) | |
!328 = !{!329, !330, !331} | |
!329 = !DILocalVariable(name: "o", arg: 1, scope: !315, file: !316, line: 8, type: !319) | |
!330 = !DILocalVariable(name: "f", arg: 2, scope: !315, file: !316, line: 8, type: !324) | |
!331 = !DILocalVariable(name: "done", scope: !315, file: !316, line: 4, type: !51) | |
!332 = !DILocation(line: 8, column: 16, scope: !315) | |
!333 = !DILocation(line: 9, column: 2, scope: !315) | |
!334 = !DILocation(line: 20, column: 7, scope: !335, inlinedAt: !339) | |
!335 = distinct !DISubprogram(name: "(*sync.Mutex).Lock", linkageName: "(*sync.Mutex).Lock", scope: !251, file: !251, line: 19, type: !252, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !79, retainedNodes: !336) | |
!336 = !{!337, !338} | |
!337 = !DILocalVariable(name: "m", arg: 1, scope: !335, file: !251, line: 19, type: !254) | |
!338 = !DILocalVariable(name: "locked", scope: !335, file: !251, line: 12, type: !51) | |
!339 = distinct !DILocation(line: 9, column: 10, scope: !315) | |
!340 = !DILocation(line: 0, scope: !335, inlinedAt: !339) | |
!341 = !DILocalVariable(name: "i", scope: !342, file: !164, line: 78, type: !182) | |
!342 = distinct !DISubprogram(name: "(*internal/task.Stack).Push", linkageName: "(*internal/task.Stack).Push", scope: !164, file: !164, line: 77, type: !343, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !78, retainedNodes: !345) | |
!343 = !DISubroutineType(types: !344) | |
!344 = !{!279, !172} | |
!345 = !{!346, !347, !341, !348, !349} | |
!346 = !DILocalVariable(name: "s", arg: 1, scope: !342, file: !164, line: 77, type: !279) | |
!347 = !DILocalVariable(name: "t", arg: 2, scope: !342, file: !164, line: 77, type: !172) | |
!348 = !DILocalVariable(name: "top", scope: !342, file: !164, line: 73, type: !172) | |
!349 = !DILocalVariable(name: "Next", scope: !342, file: !184, line: 10, type: !172) | |
!350 = !DILocation(line: 78, column: 2, scope: !342, inlinedAt: !351) | |
!351 = distinct !DILocation(line: 22, column: 17, scope: !335, inlinedAt: !339) | |
!352 = !DILocation(line: 83, column: 9, scope: !342, inlinedAt: !351) | |
!353 = !DILocation(line: 83, column: 11, scope: !342, inlinedAt: !351) | |
!354 = !DILocation(line: 83, column: 18, scope: !342, inlinedAt: !351) | |
!355 = !DILocation(line: 83, column: 23, scope: !342, inlinedAt: !351) | |
!356 = !DILocation(line: 83, column: 4, scope: !342, inlinedAt: !351) | |
!357 = !DILocation(line: 84, column: 20, scope: !342, inlinedAt: !351) | |
!358 = !DILocation(line: 24, column: 3, scope: !335, inlinedAt: !339) | |
!359 = !DILocation(line: 27, column: 4, scope: !335, inlinedAt: !339) | |
!360 = !DILocation(line: 41, column: 16, scope: !221, inlinedAt: !361) | |
!361 = distinct !DILocation(line: 28, column: 2, scope: !335, inlinedAt: !339) | |
!362 = !DILocation(line: 42, column: 15, scope: !221, inlinedAt: !361) | |
!363 = !DILocation(line: 79, column: 6, scope: !229, inlinedAt: !364) | |
!364 = distinct !DILocation(line: 42, column: 14, scope: !221, inlinedAt: !361) | |
!365 = !DILocation(line: 80, column: 16, scope: !229, inlinedAt: !364) | |
!366 = !DILocation(line: 80, column: 15, scope: !229, inlinedAt: !364) | |
!367 = !DILocation(line: 28, column: 2, scope: !335, inlinedAt: !339) | |
!368 = !DILocation(line: 12, column: 3, scope: !315) | |
!369 = distinct !DISubprogram(name: "runtime.alloc", linkageName: "runtime.alloc", scope: !22, file: !22, line: 16, type: !370, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !107, retainedNodes: !372) | |
!370 = !DISubroutineType(types: !371) | |
!371 = !{!13} | |
!372 = !{!373, !374, !375, !376, !377, !378} | |
!373 = !DILocalVariable(name: "size", arg: 1, scope: !369, file: !22, line: 16, type: !13) | |
!374 = !DILocalVariable(name: "heapptr", scope: !369, file: !22, line: 14, type: !13) | |
!375 = !DILocalVariable(name: "addr", scope: !369, file: !22, line: 21, type: !13) | |
!376 = !DILocalVariable(name: "heapEnd", scope: !369, file: !17, line: 11, type: !13) | |
!377 = !DILocalVariable(name: "i", scope: !369, file: !22, line: 31, type: !13) | |
!378 = !DILocalVariable(name: "ptr", scope: !369, file: !22, line: 32, type: !379) | |
!379 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !380, size: 64, align: 64, dwarfAddressSpace: 0) | |
!380 = !DIBasicType(name: "uint32", size: 32, encoding: DW_ATE_unsigned) | |
!381 = !DILocation(line: 16, column: 6, scope: !369) | |
!382 = !DILocation(line: 20, column: 15, scope: !369) | |
!383 = !DILocalVariable(name: "ptr", arg: 1, scope: !384, file: !385, line: 13, type: !13) | |
!384 = distinct !DISubprogram(name: "runtime.align", linkageName: "runtime.align", scope: !385, file: !385, line: 13, type: !370, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !107, retainedNodes: !386) | |
!385 = !DIFile(filename: "arch_amd64.go", directory: "/usr/local/Cellar/tinygo/0.19.0/src/runtime") | |
!386 = !{!383} | |
!387 = !DILocation(line: 13, column: 6, scope: !384, inlinedAt: !388) | |
!388 = distinct !DILocation(line: 20, column: 14, scope: !369) | |
!389 = !DILocation(line: 14, column: 10, scope: !384, inlinedAt: !388) | |
!390 = !DILocation(line: 14, column: 14, scope: !384, inlinedAt: !388) | |
!391 = !DILocation(line: 14, column: 20, scope: !384, inlinedAt: !388) | |
!392 = !DILocation(line: 20, column: 2, scope: !369) | |
!393 = !DILocation(line: 21, column: 10, scope: !369) | |
!394 = !DILocation(line: 21, column: 2, scope: !369) | |
!395 = !DILocation(line: 22, column: 13, scope: !369) | |
!396 = !DILocation(line: 22, column: 2, scope: !369) | |
!397 = !DILocation(line: 0, scope: !398, inlinedAt: !403) | |
!398 = distinct !DISubprogram(name: "runtime.growHeap", linkageName: "runtime.growHeap", scope: !17, file: !17, line: 24, type: !399, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !107, retainedNodes: !400) | |
!399 = !DISubroutineType(types: !76) | |
!400 = !{!401, !402} | |
!401 = !DILocalVariable(name: "heapSize", scope: !398, file: !17, line: 8, type: !13) | |
!402 = !DILocalVariable(name: "heapStart", scope: !398, file: !17, line: 11, type: !13) | |
!403 = distinct !DILocation(line: 25, column: 14, scope: !369) | |
!404 = !DILocation(line: 23, column: 17, scope: !369) | |
!405 = !DILocation(line: 0, scope: !369) | |
!406 = !DILocation(line: 23, column: 6, scope: !369) | |
!407 = !DILocation(line: 23, column: 14, scope: !369) | |
!408 = !DILocation(line: 25, column: 5, scope: !398, inlinedAt: !403) | |
!409 = !DILocation(line: 25, column: 14, scope: !398, inlinedAt: !403) | |
!410 = !DILocation(line: 31, column: 14, scope: !398, inlinedAt: !403) | |
!411 = !DILocation(line: 31, column: 23, scope: !398, inlinedAt: !403) | |
!412 = !DILocation(line: 31, column: 27, scope: !398, inlinedAt: !403) | |
!413 = !DILocation(line: 31, column: 32, scope: !398, inlinedAt: !403) | |
!414 = !DILocation(line: 32, column: 5, scope: !398, inlinedAt: !403) | |
!415 = !DILocation(line: 35, column: 13, scope: !398, inlinedAt: !403) | |
!416 = !DILocation(line: 35, column: 25, scope: !398, inlinedAt: !403) | |
!417 = !DILocation(line: 35, column: 23, scope: !398, inlinedAt: !403) | |
!418 = !DILocalVariable(name: "newHeapEnd", arg: 1, scope: !419, file: !22, line: 59, type: !13) | |
!419 = distinct !DISubprogram(name: "runtime.setHeapEnd", linkageName: "runtime.setHeapEnd", scope: !22, file: !22, line: 59, type: !370, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !107, retainedNodes: !420) | |
!420 = !{!418, !421} | |
!421 = !DILocalVariable(name: "heapEnd", scope: !419, file: !17, line: 11, type: !13) | |
!422 = !DILocation(line: 62, column: 12, scope: !419, inlinedAt: !423) | |
!423 = distinct !DILocation(line: 35, column: 12, scope: !398, inlinedAt: !403) | |
!424 = !DILocation(line: 62, column: 2, scope: !419, inlinedAt: !423) | |
!425 = !DILocation(line: 29, column: 15, scope: !369) | |
!426 = !DILocation(line: 31, column: 6, scope: !369) | |
!427 = !DILocation(line: 31, column: 23, scope: !369) | |
!428 = !DILocation(line: 31, column: 35, scope: !369) | |
!429 = !DILocation(line: 31, column: 25, scope: !369) | |
!430 = !DILocation(line: 35, column: 24, scope: !369) | |
!431 = !DILocation(line: 32, column: 42, scope: !369) | |
!432 = !DILocation(line: 32, column: 40, scope: !369) | |
!433 = !DILocation(line: 32, column: 19, scope: !369) | |
!434 = !DILocation(line: 33, column: 4, scope: !369) | |
!435 = !DILocation(line: 33, column: 3, scope: !369) | |
!436 = !DILocation(line: 31, column: 42, scope: !369) | |
!437 = !DILocation(line: 35, column: 23, scope: !369) | |
!438 = !DILocation(line: 35, column: 2, scope: !369) | |
!439 = distinct !DISubprogram(name: "runtime.runtimePanic", linkageName: "runtime.runtimePanic", scope: !440, file: !440, line: 17, type: !441, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !107, retainedNodes: !443) | |
!440 = !DIFile(filename: "panic.go", directory: "/usr/local/Cellar/tinygo/0.19.0/src/runtime") | |
!441 = !DISubroutineType(types: !442) | |
!442 = !{!7} | |
!443 = !{!444} | |
!444 = !DILocalVariable(name: "msg", arg: 1, scope: !439, file: !440, line: 17, type: !7) | |
!445 = !DILocation(line: 17, column: 6, scope: !439) | |
!446 = !DILocation(line: 18, column: 13, scope: !439) | |
!447 = !DILocation(line: 19, column: 10, scope: !439) | |
!448 = !DILocation(line: 19, column: 9, scope: !439) | |
!449 = !DILocation(line: 20, column: 7, scope: !439) | |
!450 = !DILocation(line: 21, column: 2, scope: !439) | |
!451 = distinct !DISubprogram(name: "runtime.printstring", linkageName: "runtime.printstring", scope: !452, file: !452, line: 12, type: !441, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !107, retainedNodes: !453) | |
!452 = !DIFile(filename: "print.go", directory: "/usr/local/Cellar/tinygo/0.19.0/src/runtime") | |
!453 = !{!454, !455} | |
!454 = !DILocalVariable(name: "s", arg: 1, scope: !451, file: !452, line: 12, type: !7) | |
!455 = !DILocalVariable(name: "i", scope: !451, file: !452, line: 13, type: !456) | |
!456 = !DIBasicType(name: "int", size: 64, encoding: DW_ATE_signed) | |
!457 = !DILocation(line: 12, column: 6, scope: !451) | |
!458 = !DILocation(line: 13, column: 6, scope: !451) | |
!459 = !DILocation(line: 0, scope: !451) | |
!460 = !DILocation(line: 13, column: 14, scope: !451) | |
!461 = !DILocation(line: 13, column: 22, scope: !451) | |
!462 = !DILocation(line: 13, column: 16, scope: !451) | |
!463 = !DILocation(line: 14, column: 11, scope: !451) | |
!464 = !DILocation(line: 14, column: 13, scope: !451) | |
!465 = !DILocation(line: 14, column: 12, scope: !451) | |
!466 = !DILocalVariable(name: "c", arg: 1, scope: !467, file: !121, line: 122, type: !470) | |
!467 = distinct !DISubprogram(name: "runtime.putchar", linkageName: "runtime.putchar", scope: !121, file: !121, line: 122, type: !468, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !107, retainedNodes: !471) | |
!468 = !DISubroutineType(types: !469) | |
!469 = !{!470} | |
!470 = !DIBasicType(name: "byte", size: 8, encoding: DW_ATE_unsigned) | |
!471 = !{!466} | |
!472 = !DILocation(line: 122, column: 6, scope: !467, inlinedAt: !473) | |
!473 = distinct !DILocation(line: 14, column: 10, scope: !451) | |
!474 = !DILocation(line: 123, column: 15, scope: !467, inlinedAt: !473) | |
!475 = !DILocation(line: 123, column: 14, scope: !467, inlinedAt: !473) | |
!476 = !DILocation(line: 123, column: 10, scope: !467, inlinedAt: !473) | |
!477 = !DILocation(line: 13, column: 26, scope: !451) | |
!478 = !DILocation(line: 16, column: 2, scope: !451) | |
!479 = distinct !DISubprogram(name: "runtime.printnl", linkageName: "runtime.printnl", scope: !452, file: !452, line: 285, type: !399, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !107, retainedNodes: !76) | |
!480 = !DILocation(line: 122, column: 6, scope: !467, inlinedAt: !481) | |
!481 = distinct !DILocation(line: 286, column: 9, scope: !479) | |
!482 = !DILocation(line: 123, column: 15, scope: !467, inlinedAt: !481) | |
!483 = !DILocation(line: 123, column: 10, scope: !467, inlinedAt: !481) | |
!484 = !DILocation(line: 122, column: 6, scope: !467, inlinedAt: !485) | |
!485 = distinct !DILocation(line: 287, column: 9, scope: !479) | |
!486 = !DILocation(line: 123, column: 15, scope: !467, inlinedAt: !485) | |
!487 = !DILocation(line: 123, column: 10, scope: !467, inlinedAt: !485) | |
!488 = !DILocation(line: 288, column: 2, scope: !479) | |
!489 = distinct !DISubprogram(name: "runtime.nilPanic", linkageName: "runtime.nilPanic", scope: !440, file: !440, line: 31, type: !399, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !107, retainedNodes: !76) | |
!490 = !DILocation(line: 32, column: 14, scope: !489) | |
!491 = distinct !DISubprogram(name: "(*runtime.channelBlockedList).detach", linkageName: "(*runtime.channelBlockedList).detach", scope: !492, file: !492, line: 82, type: !493, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !107, retainedNodes: !516) | |
!492 = !DIFile(filename: "chan.go", directory: "/usr/local/Cellar/tinygo/0.19.0/src/runtime") | |
!493 = !DISubroutineType(types: !494) | |
!494 = !{!495} | |
!495 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !496, size: 64, align: 64, dwarfAddressSpace: 0) | |
!496 = !DIDerivedType(tag: DW_TAG_typedef, name: "runtime.channelBlockedList", baseType: !497) | |
!497 = !DICompositeType(tag: DW_TAG_structure_type, size: 384, align: 64, elements: !498) | |
!498 = !{!499, !500, !501, !512} | |
!499 = !DIDerivedType(tag: DW_TAG_member, name: "next", baseType: !495, size: 64, align: 64) | |
!500 = !DIDerivedType(tag: DW_TAG_member, name: "t", baseType: !30, size: 64, align: 64, offset: 64) | |
!501 = !DIDerivedType(tag: DW_TAG_member, name: "s", baseType: !502, size: 64, align: 64, offset: 128) | |
!502 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !503, size: 64, align: 64, dwarfAddressSpace: 0) | |
!503 = !DIDerivedType(tag: DW_TAG_typedef, name: "runtime.chanSelectState", baseType: !504) | |
!504 = !DICompositeType(tag: DW_TAG_structure_type, size: 128, align: 64, elements: !505) | |
!505 = !{!506, !152} | |
!506 = !DIDerivedType(tag: DW_TAG_member, name: "ch", baseType: !507, size: 64, align: 64) | |
!507 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !508, size: 64, align: 64, dwarfAddressSpace: 0) | |
!508 = !DIDerivedType(tag: DW_TAG_typedef, name: "runtime.channel", baseType: !509) | |
!509 = !DICompositeType(tag: DW_TAG_structure_type, size: 512, align: 64, elements: !510) | |
!510 = !{!135, !136, !137, !511, !157, !158, !159, !160} | |
!511 = !DIDerivedType(tag: DW_TAG_member, name: "blocked", baseType: !495, size: 64, align: 64, offset: 192) | |
!512 = !DIDerivedType(tag: DW_TAG_member, name: "allSelectOps", baseType: !513, size: 192, align: 64, offset: 192) | |
!513 = !DICompositeType(tag: DW_TAG_structure_type, name: "[]runtime.channelBlockedList", size: 192, align: 64, elements: !514) | |
!514 = !{!515, !12, !14} | |
!515 = !DIDerivedType(tag: DW_TAG_member, name: "ptr", baseType: !495, size: 64, align: 64) | |
!516 = !{!517, !518, !519, !520, !521} | |
!517 = !DILocalVariable(name: "b", arg: 1, scope: !491, file: !492, line: 82, type: !495) | |
!518 = !DILocalVariable(name: "i", scope: !491, file: !492, line: 87, type: !456) | |
!519 = !DILocalVariable(name: "v", scope: !491, file: !492, line: 87, type: !496) | |
!520 = !DILocalVariable(name: "blocked", scope: !491, file: !492, line: 123, type: !495) | |
!521 = !DILocalVariable(name: "state", scope: !491, file: !492, line: 122, type: !138) | |
!522 = !DILocation(line: 82, column: 30, scope: !491) | |
!523 = !DILocation(line: 83, column: 5, scope: !491) | |
!524 = !DILocation(line: 83, column: 7, scope: !491) | |
!525 = !DILocation(line: 85, column: 3, scope: !491) | |
!526 = !DILocation(line: 87, column: 20, scope: !491) | |
!527 = !DILocation(line: 0, scope: !491) | |
!528 = !DILocation(line: 87, column: 22, scope: !491) | |
!529 = !DILocation(line: 83, column: 20, scope: !491) | |
!530 = !DILocation(line: 87, column: 6, scope: !491) | |
!531 = !DILocation(line: 87, column: 9, scope: !491) | |
!532 = !DILocation(line: 90, column: 9, scope: !491) | |
!533 = !DILocation(line: 90, column: 11, scope: !491) | |
!534 = !DILocation(line: 90, column: 23, scope: !491) | |
!535 = !DILocation(line: 90, column: 30, scope: !491) | |
!536 = !DILocation(line: 90, column: 27, scope: !491) | |
!537 = !DILocation(line: 97, column: 7, scope: !491) | |
!538 = !DILocation(line: 97, column: 10, scope: !491) | |
!539 = !DILocation(line: 97, column: 27, scope: !491) | |
!540 = !DILocation(line: 97, column: 43, scope: !491) | |
!541 = !DILocation(line: 97, column: 58, scope: !491) | |
!542 = !DILocalVariable(name: "b", arg: 1, scope: !543, file: !492, line: 66, type: !495) | |
!543 = distinct !DISubprogram(name: "(*runtime.channelBlockedList).remove", linkageName: "(*runtime.channelBlockedList).remove", scope: !492, file: !492, line: 66, type: !544, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !107, retainedNodes: !546) | |
!544 = !DISubroutineType(types: !545) | |
!545 = !{!495, !495} | |
!546 = !{!542, !547, !548, !549} | |
!547 = !DILocalVariable(name: "old", arg: 2, scope: !543, file: !492, line: 66, type: !495) | |
!548 = !DILocalVariable(name: "c", scope: !543, file: !492, line: 70, type: !495) | |
!549 = !DILocalVariable(name: "next", scope: !543, file: !492, line: 45, type: !495) | |
!550 = !DILocation(line: 67, column: 5, scope: !543, inlinedAt: !551) | |
!551 = distinct !DILocation(line: 97, column: 41, scope: !491) | |
!552 = !DILocation(line: 67, column: 10, scope: !543, inlinedAt: !551) | |
!553 = !DILocation(line: 67, column: 7, scope: !543, inlinedAt: !551) | |
!554 = !DILocation(line: 0, scope: !543, inlinedAt: !551) | |
!555 = !DILocation(line: 68, column: 12, scope: !543, inlinedAt: !551) | |
!556 = !DILocation(line: 70, column: 2, scope: !543, inlinedAt: !551) | |
!557 = !DILocation(line: 71, column: 8, scope: !543, inlinedAt: !551) | |
!558 = !DILocation(line: 68, column: 3, scope: !543, inlinedAt: !551) | |
!559 = !DILocation(line: 71, column: 20, scope: !543, inlinedAt: !551) | |
!560 = !DILocation(line: 71, column: 22, scope: !543, inlinedAt: !551) | |
!561 = !DILocation(line: 71, column: 30, scope: !543, inlinedAt: !551) | |
!562 = !DILocation(line: 71, column: 27, scope: !543, inlinedAt: !551) | |
!563 = !DILocation(line: 74, column: 3, scope: !543, inlinedAt: !551) | |
!564 = !DILocation(line: 74, column: 12, scope: !543, inlinedAt: !551) | |
!565 = !DILocation(line: 74, column: 16, scope: !543, inlinedAt: !551) | |
!566 = !DILocation(line: 74, column: 5, scope: !543, inlinedAt: !551) | |
!567 = !DILocation(line: 98, column: 10, scope: !491) | |
!568 = !DILocation(line: 98, column: 13, scope: !491) | |
!569 = !DILocation(line: 98, column: 21, scope: !491) | |
!570 = !DILocation(line: 99, column: 11, scope: !491) | |
!571 = !DILocation(line: 99, column: 17, scope: !491) | |
!572 = !DILocation(line: 101, column: 15, scope: !491) | |
!573 = !DILocation(line: 101, column: 21, scope: !491) | |
!574 = !DILocation(line: 102, column: 13, scope: !491) | |
!575 = !DILocation(line: 106, column: 15, scope: !491) | |
!576 = !DILocation(line: 106, column: 23, scope: !491) | |
!577 = !DILocation(line: 108, column: 13, scope: !491) | |
!578 = !DILocation(line: 111, column: 13, scope: !491) | |
!579 = distinct !DISubprogram(name: "runtime.lookupPanic", linkageName: "runtime.lookupPanic", scope: !440, file: !440, line: 36, type: !399, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !107, retainedNodes: !76) | |
!580 = !DILocation(line: 37, column: 14, scope: !579) | |
!581 = distinct !DISubprogram(name: "(*runtime.channel).pop", linkageName: "(*runtime.channel).pop", scope: !492, file: !492, line: 268, type: !582, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !107, retainedNodes: !584) | |
!582 = !DISubroutineType(types: !583) | |
!583 = !{!507, !36} | |
!584 = !{!585, !586, !587, !588, !589} | |
!585 = !DILocalVariable(name: "ch", arg: 1, scope: !581, file: !492, line: 268, type: !507) | |
!586 = !DILocalVariable(name: "value", arg: 2, scope: !581, file: !492, line: 268, type: !36) | |
!587 = !DILocalVariable(name: "addr", scope: !581, file: !492, line: 275, type: !36) | |
!588 = !DILocalVariable(name: "bufUsed", scope: !581, file: !492, line: 126, type: !13) | |
!589 = !DILocalVariable(name: "bufTail", scope: !581, file: !492, line: 125, type: !13) | |
!590 = !DILocation(line: 268, column: 20, scope: !581) | |
!591 = !DILocation(line: 270, column: 5, scope: !581) | |
!592 = !DILocation(line: 270, column: 8, scope: !581) | |
!593 = !DILocation(line: 270, column: 16, scope: !581) | |
!594 = !DILocation(line: 0, scope: !581) | |
!595 = !DILocation(line: 271, column: 3, scope: !581) | |
!596 = !DILocation(line: 275, column: 33, scope: !581) | |
!597 = !DILocation(line: 275, column: 36, scope: !581) | |
!598 = !DILocation(line: 275, column: 47, scope: !581) | |
!599 = !DILocation(line: 275, column: 64, scope: !581) | |
!600 = !DILocation(line: 275, column: 59, scope: !581) | |
!601 = !DILocation(line: 275, column: 24, scope: !581) | |
!602 = !DILocation(line: 279, column: 3, scope: !581) | |
!603 = !DILocation(line: 280, column: 3, scope: !581) | |
!604 = !DILocation(line: 278, column: 8, scope: !581) | |
!605 = !DILocation(line: 287, column: 6, scope: !581) | |
!606 = !DILocation(line: 285, column: 9, scope: !581) | |
!607 = !DILocation(line: 291, column: 5, scope: !581) | |
!608 = !DILocation(line: 291, column: 2, scope: !581) | |
!609 = !DILocation(line: 294, column: 5, scope: !581) | |
!610 = !DILocation(line: 294, column: 2, scope: !581) | |
!611 = !DILocation(line: 295, column: 22, scope: !581) | |
!612 = !DILocation(line: 295, column: 16, scope: !581) | |
!613 = distinct !DISubprogram(name: "(*runtime.channel).resumeTX", linkageName: "(*runtime.channel).resumeTX", scope: !492, file: !492, line: 204, type: !614, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !107, retainedNodes: !616) | |
!614 = !DISubroutineType(types: !615) | |
!615 = !{!507} | |
!616 = !{!617, !618, !619, !620, !621} | |
!617 = !DILocalVariable(name: "ch", arg: 1, scope: !613, file: !492, line: 204, type: !507) | |
!618 = !DILocalVariable(name: "b", scope: !613, file: !492, line: 206, type: !495) | |
!619 = !DILocalVariable(name: "blocked", scope: !613, file: !492, line: 123, type: !495) | |
!620 = !DILocalVariable(name: "src", scope: !613, file: !492, line: 210, type: !36) | |
!621 = !DILocalVariable(name: "Ptr", scope: !613, file: !184, line: 13, type: !36) | |
!622 = !DILocation(line: 206, column: 6, scope: !613) | |
!623 = !DILocation(line: 207, column: 18, scope: !613) | |
!624 = !DILocation(line: 207, column: 21, scope: !613) | |
!625 = !DILocation(line: 207, column: 41, scope: !613) | |
!626 = !DILocation(line: 207, column: 2, scope: !613) | |
!627 = !DILocation(line: 207, column: 8, scope: !613) | |
!628 = !DILocation(line: 210, column: 11, scope: !613) | |
!629 = !DILocation(line: 210, column: 13, scope: !613) | |
!630 = !DILocation(line: 210, column: 2, scope: !613) | |
!631 = !DILocation(line: 212, column: 5, scope: !613) | |
!632 = !DILocation(line: 212, column: 7, scope: !613) | |
!633 = !DILocation(line: 212, column: 9, scope: !613) | |
!634 = !DILocation(line: 0, scope: !613) | |
!635 = !DILocation(line: 214, column: 9, scope: !613) | |
!636 = !DILocation(line: 214, column: 13, scope: !613) | |
!637 = !DILocation(line: 214, column: 3, scope: !613) | |
!638 = !DILocation(line: 217, column: 7, scope: !613) | |
!639 = !DILocation(line: 220, column: 11, scope: !613) | |
!640 = !DILocation(line: 224, column: 18, scope: !613) | |
!641 = !DILocation(line: 224, column: 16, scope: !613) | |
!642 = !DILocation(line: 224, column: 15, scope: !613) | |
!643 = !DILocation(line: 226, column: 9, scope: !613) | |
!644 = !DILocation(line: 226, column: 2, scope: !613) | |
!645 = distinct !DISubprogram(name: "runtime._panic", linkageName: "runtime._panic", scope: !440, file: !440, line: 9, type: !646, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !107, retainedNodes: !652) | |
!646 = !DISubroutineType(types: !647) | |
!647 = !{!648} | |
!648 = !DIDerivedType(tag: DW_TAG_typedef, name: "runtime._interface", baseType: !649) | |
!649 = !DICompositeType(tag: DW_TAG_structure_type, size: 128, align: 64, elements: !650) | |
!650 = !{!651, !152} | |
!651 = !DIDerivedType(tag: DW_TAG_member, name: "typecode", baseType: !13, size: 64, align: 64) | |
!652 = !{!653} | |
!653 = !DILocalVariable(name: "message", arg: 1, scope: !645, file: !440, line: 9, type: !648) | |
!654 = !DILocation(line: 9, column: 6, scope: !645) | |
!655 = !DILocation(line: 10, column: 13, scope: !645) | |
!656 = !DILocation(line: 11, column: 10, scope: !645) | |
!657 = !DILocation(line: 12, column: 9, scope: !645) | |
!658 = !DILocation(line: 13, column: 7, scope: !645) | |
!659 = !DILocation(line: 14, column: 2, scope: !645) | |
!660 = distinct !DISubprogram(name: "runtime.printitf", linkageName: "runtime.printitf", scope: !452, file: !452, line: 290, type: !646, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !107, retainedNodes: !661) | |
!661 = !{!662, !663, !664, !665, !667, !669, !671, !672, !674, !675, !677, !678, !679, !680, !682, !683, !685, !687, !688, !690, !692} | |
!662 = !DILocalVariable(name: "msg", arg: 1, scope: !660, file: !452, line: 290, type: !648) | |
!663 = !DILocalVariable(name: "msg", scope: !660, file: !452, line: 291, type: !51) | |
!664 = !DILocalVariable(name: "msg", scope: !660, file: !452, line: 291, type: !456) | |
!665 = !DILocalVariable(name: "msg", scope: !660, file: !452, line: 291, type: !666) | |
!666 = !DIBasicType(name: "int8", size: 8, encoding: DW_ATE_signed) | |
!667 = !DILocalVariable(name: "msg", scope: !660, file: !452, line: 291, type: !668) | |
!668 = !DIBasicType(name: "int16", size: 16, encoding: DW_ATE_signed) | |
!669 = !DILocalVariable(name: "msg", scope: !660, file: !452, line: 291, type: !670) | |
!670 = !DIBasicType(name: "int32", size: 32, encoding: DW_ATE_signed) | |
!671 = !DILocalVariable(name: "msg", scope: !660, file: !452, line: 291, type: !118) | |
!672 = !DILocalVariable(name: "msg", scope: !660, file: !452, line: 291, type: !673) | |
!673 = !DIBasicType(name: "uint", size: 64, encoding: DW_ATE_unsigned) | |
!674 = !DILocalVariable(name: "msg", scope: !660, file: !452, line: 291, type: !11) | |
!675 = !DILocalVariable(name: "msg", scope: !660, file: !452, line: 291, type: !676) | |
!676 = !DIBasicType(name: "uint16", size: 16, encoding: DW_ATE_unsigned) | |
!677 = !DILocalVariable(name: "msg", scope: !660, file: !452, line: 291, type: !380) | |
!678 = !DILocalVariable(name: "msg", scope: !660, file: !452, line: 291, type: !38) | |
!679 = !DILocalVariable(name: "msg", scope: !660, file: !452, line: 291, type: !13) | |
!680 = !DILocalVariable(name: "msg", scope: !660, file: !452, line: 291, type: !681) | |
!681 = !DIBasicType(name: "float32", size: 32, encoding: DW_ATE_float) | |
!682 = !DILocalVariable(name: "msg", scope: !660, file: !452, line: 291, type: !112) | |
!683 = !DILocalVariable(name: "msg", scope: !660, file: !452, line: 291, type: !684) | |
!684 = !DIBasicType(name: "complex64", size: 64, encoding: DW_ATE_complex_float) | |
!685 = !DILocalVariable(name: "msg", scope: !660, file: !452, line: 291, type: !686) | |
!686 = !DIBasicType(name: "complex128", size: 128, encoding: DW_ATE_complex_float) | |
!687 = !DILocalVariable(name: "msg", scope: !660, file: !452, line: 291, type: !7) | |
!688 = !DILocalVariable(name: "msg", scope: !660, file: !452, line: 291, type: !689) | |
!689 = !DIDerivedType(tag: DW_TAG_typedef, name: "error", baseType: !648) | |
!690 = !DILocalVariable(name: "msg", scope: !660, file: !452, line: 291, type: !691) | |
!691 = !DIDerivedType(tag: DW_TAG_typedef, name: "runtime.stringer", baseType: !648) | |
!692 = !DILocalVariable(name: "itf", scope: !660, file: !452, line: 332, type: !648) | |
!693 = !DILocation(line: 290, column: 6, scope: !660) | |
!694 = !DILocation(line: 325, column: 8, scope: !660) | |
!695 = !DILocation(line: 346, column: 2, scope: !660) | |
!696 = distinct !DISubprogram(name: "runtime.chanRecv", linkageName: "runtime.chanRecv", scope: !492, file: !492, line: 502, type: !697, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !107, retainedNodes: !699) | |
!697 = !DISubroutineType(types: !698) | |
!698 = !{!507, !36, !495} | |
!699 = !{!700, !701, !702, !703, !704, !705, !706, !707, !708, !709, !710, !711} | |
!700 = !DILocalVariable(name: "ch", arg: 1, scope: !696, file: !492, line: 502, type: !507) | |
!701 = !DILocalVariable(name: "value", arg: 2, scope: !696, file: !492, line: 502, type: !36) | |
!702 = !DILocalVariable(name: "blockedlist", arg: 3, scope: !696, file: !492, line: 502, type: !495) | |
!703 = !DILocalVariable(name: "i", scope: !696, file: !492, line: 503, type: !182) | |
!704 = !DILocalVariable(name: "rx", scope: !696, file: !492, line: 505, type: !51) | |
!705 = !DILocalVariable(name: "ok", scope: !696, file: !492, line: 505, type: !51) | |
!706 = !DILocalVariable(name: "receiver", scope: !696, file: !492, line: 519, type: !30) | |
!707 = !DILocalVariable(name: "state", scope: !696, file: !492, line: 122, type: !138) | |
!708 = !DILocalVariable(name: "Ptr", scope: !696, file: !184, line: 13, type: !36) | |
!709 = !DILocalVariable(name: "Data", scope: !696, file: !184, line: 16, type: !38) | |
!710 = !DILocalVariable(name: "blocked", scope: !696, file: !492, line: 123, type: !495) | |
!711 = !DILocalVariable(name: "ok", scope: !696, file: !492, line: 530, type: !51) | |
!712 = !DILocation(line: 502, column: 6, scope: !696) | |
!713 = !DILocation(line: 57, column: 16, scope: !714, inlinedAt: !717) | |
!714 = distinct !DISubprogram(name: "(*internal/task.Task).getReturnPtr", linkageName: "(*internal/task.Task).getReturnPtr", scope: !209, file: !209, line: 57, type: !222, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !78, retainedNodes: !715) | |
!715 = !{!716} | |
!716 = !DILocalVariable(name: "t", arg: 1, scope: !714, file: !209, line: 57, type: !172) | |
!717 = distinct !DILocation(line: 502, column: 6, scope: !696) | |
!718 = !DILocation(line: 58, column: 9, scope: !714, inlinedAt: !717) | |
!719 = !DILocation(line: 58, column: 11, scope: !714, inlinedAt: !717) | |
!720 = !DILocation(line: 503, column: 2, scope: !696) | |
!721 = !DILocation(line: 505, column: 15, scope: !696) | |
!722 = !DILocation(line: 505, column: 26, scope: !696) | |
!723 = !DILocalVariable(name: "value", arg: 2, scope: !724, file: !492, line: 357, type: !36) | |
!724 = distinct !DISubprogram(name: "(*runtime.channel).tryRecv", linkageName: "(*runtime.channel).tryRecv", scope: !492, file: !492, line: 357, type: !582, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !107, retainedNodes: !725) | |
!725 = !{!726, !723, !727, !728, !729, !730} | |
!726 = !DILocalVariable(name: "ch", arg: 1, scope: !724, file: !492, line: 357, type: !507) | |
!727 = !DILocalVariable(name: "i", scope: !724, file: !492, line: 364, type: !182) | |
!728 = !DILocalVariable(name: "src", scope: !724, file: !492, line: 372, type: !36) | |
!729 = !DILocalVariable(name: "state", scope: !724, file: !492, line: 122, type: !138) | |
!730 = !DILocalVariable(name: "src", scope: !724, file: !492, line: 392, type: !36) | |
!731 = !DILocation(line: 357, column: 20, scope: !724, inlinedAt: !732) | |
!732 = distinct !DILocation(line: 505, column: 25, scope: !696) | |
!733 = !DILocation(line: 364, column: 2, scope: !724, inlinedAt: !732) | |
!734 = !DILocation(line: 366, column: 9, scope: !724, inlinedAt: !732) | |
!735 = !DILocation(line: 366, column: 12, scope: !724, inlinedAt: !732) | |
!736 = !DILocation(line: 0, scope: !724, inlinedAt: !732) | |
!737 = !DILocation(line: 369, column: 6, scope: !724, inlinedAt: !732) | |
!738 = !DILocation(line: 369, column: 13, scope: !724, inlinedAt: !732) | |
!739 = !DILocation(line: 369, column: 12, scope: !724, inlinedAt: !732) | |
!740 = !DILocation(line: 371, column: 7, scope: !724, inlinedAt: !732) | |
!741 = !DILocation(line: 390, column: 13, scope: !724, inlinedAt: !732) | |
!742 = !DILocation(line: 372, column: 12, scope: !724, inlinedAt: !732) | |
!743 = !DILocation(line: 372, column: 23, scope: !724, inlinedAt: !732) | |
!744 = !DILocation(line: 375, column: 13, scope: !724, inlinedAt: !732) | |
!745 = !DILocalVariable(name: "value", arg: 2, scope: !746, file: !492, line: 231, type: !36) | |
!746 = distinct !DISubprogram(name: "(*runtime.channel).push", linkageName: "(*runtime.channel).push", scope: !492, file: !492, line: 231, type: !582, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !107, retainedNodes: !747) | |
!747 = !{!748, !745, !749, !750} | |
!748 = !DILocalVariable(name: "ch", arg: 1, scope: !746, file: !492, line: 231, type: !507) | |
!749 = !DILocalVariable(name: "bufUsed", scope: !746, file: !492, line: 126, type: !13) | |
!750 = !DILocalVariable(name: "bufHead", scope: !746, file: !492, line: 124, type: !13) | |
!751 = !DILocation(line: 231, column: 20, scope: !746, inlinedAt: !752) | |
!752 = distinct !DILocation(line: 375, column: 12, scope: !724, inlinedAt: !732) | |
!753 = !DILocation(line: 233, column: 5, scope: !746, inlinedAt: !752) | |
!754 = !DILocation(line: 233, column: 8, scope: !746, inlinedAt: !752) | |
!755 = !DILocation(line: 233, column: 16, scope: !746, inlinedAt: !752) | |
!756 = !DILocation(line: 0, scope: !746, inlinedAt: !752) | |
!757 = !DILocation(line: 238, column: 5, scope: !746, inlinedAt: !752) | |
!758 = !DILocation(line: 245, column: 12, scope: !746, inlinedAt: !752) | |
!759 = !DILocation(line: 245, column: 15, scope: !746, inlinedAt: !752) | |
!760 = !DILocation(line: 247, column: 9, scope: !746, inlinedAt: !752) | |
!761 = !DILocation(line: 248, column: 10, scope: !746, inlinedAt: !752) | |
!762 = !DILocation(line: 247, column: 20, scope: !746, inlinedAt: !752) | |
!763 = !DILocation(line: 244, column: 17, scope: !746, inlinedAt: !752) | |
!764 = !DILocation(line: 251, column: 3, scope: !746, inlinedAt: !752) | |
!765 = !DILocation(line: 243, column: 8, scope: !746, inlinedAt: !752) | |
!766 = !DILocation(line: 256, column: 5, scope: !746, inlinedAt: !752) | |
!767 = !DILocation(line: 256, column: 2, scope: !746, inlinedAt: !752) | |
!768 = !DILocation(line: 257, column: 5, scope: !746, inlinedAt: !752) | |
!769 = !DILocation(line: 257, column: 2, scope: !746, inlinedAt: !752) | |
!770 = !DILocation(line: 258, column: 22, scope: !746, inlinedAt: !752) | |
!771 = !DILocation(line: 258, column: 16, scope: !746, inlinedAt: !752) | |
!772 = !DILocation(line: 377, column: 11, scope: !724, inlinedAt: !732) | |
!773 = !DILocation(line: 377, column: 19, scope: !724, inlinedAt: !732) | |
!774 = !DILocation(line: 392, column: 11, scope: !724, inlinedAt: !732) | |
!775 = !DILocation(line: 392, column: 22, scope: !724, inlinedAt: !732) | |
!776 = !DILocation(line: 395, column: 11, scope: !724, inlinedAt: !732) | |
!777 = !DILocation(line: 395, column: 18, scope: !724, inlinedAt: !732) | |
!778 = !DILocation(line: 395, column: 26, scope: !724, inlinedAt: !732) | |
!779 = !DILocation(line: 395, column: 10, scope: !724, inlinedAt: !732) | |
!780 = !DILocation(line: 397, column: 10, scope: !724, inlinedAt: !732) | |
!781 = !DILocation(line: 397, column: 18, scope: !724, inlinedAt: !732) | |
!782 = !DILocation(line: 412, column: 6, scope: !724, inlinedAt: !732) | |
!783 = !DILocation(line: 412, column: 13, scope: !724, inlinedAt: !732) | |
!784 = !DILocation(line: 412, column: 12, scope: !724, inlinedAt: !732) | |
!785 = !DILocation(line: 422, column: 15, scope: !724, inlinedAt: !732) | |
!786 = !DILocation(line: 383, column: 10, scope: !724, inlinedAt: !732) | |
!787 = !DILocation(line: 379, column: 6, scope: !724, inlinedAt: !732) | |
!788 = !DILocation(line: 379, column: 9, scope: !724, inlinedAt: !732) | |
!789 = !DILocation(line: 383, column: 7, scope: !724, inlinedAt: !732) | |
!790 = !DILocation(line: 383, column: 18, scope: !724, inlinedAt: !732) | |
!791 = !DILocation(line: 385, column: 5, scope: !724, inlinedAt: !732) | |
!792 = !DILocation(line: 385, column: 8, scope: !724, inlinedAt: !732) | |
!793 = !DILocation(line: 399, column: 5, scope: !724, inlinedAt: !732) | |
!794 = !DILocation(line: 399, column: 8, scope: !724, inlinedAt: !732) | |
!795 = !DILocation(line: 418, column: 11, scope: !724, inlinedAt: !732) | |
!796 = !DILocation(line: 418, column: 18, scope: !724, inlinedAt: !732) | |
!797 = !DILocation(line: 418, column: 21, scope: !724, inlinedAt: !732) | |
!798 = !DILocation(line: 418, column: 10, scope: !724, inlinedAt: !732) | |
!799 = !DILocation(line: 419, column: 21, scope: !724, inlinedAt: !732) | |
!800 = !DILocation(line: 420, column: 3, scope: !724, inlinedAt: !732) | |
!801 = !DILocation(line: 505, column: 25, scope: !696) | |
!802 = !DILocation(line: 505, column: 9, scope: !696) | |
!803 = !DILocation(line: 505, column: 34, scope: !696) | |
!804 = !DILocation(line: 512, column: 5, scope: !696) | |
!805 = !DILocation(line: 0, scope: !696) | |
!806 = !DILocation(line: 508, column: 21, scope: !696) | |
!807 = !DILocation(line: 509, column: 10, scope: !696) | |
!808 = !DILocation(line: 509, column: 3, scope: !696) | |
!809 = !DILocation(line: 35, column: 16, scope: !208, inlinedAt: !810) | |
!810 = distinct !DILocation(line: 509, column: 3, scope: !696) | |
!811 = !DILocation(line: 36, column: 2, scope: !208, inlinedAt: !810) | |
!812 = !DILocation(line: 36, column: 4, scope: !208, inlinedAt: !810) | |
!813 = !DILocation(line: 36, column: 18, scope: !208, inlinedAt: !810) | |
!814 = !DILocation(line: 42, column: 15, scope: !221, inlinedAt: !815) | |
!815 = distinct !DILocation(line: 37, column: 17, scope: !208, inlinedAt: !810) | |
!816 = !DILocation(line: 80, column: 16, scope: !229, inlinedAt: !817) | |
!817 = distinct !DILocation(line: 42, column: 14, scope: !221, inlinedAt: !815) | |
!818 = !DILocation(line: 80, column: 15, scope: !229, inlinedAt: !817) | |
!819 = !DILocation(line: 519, column: 2, scope: !696) | |
!820 = !DILocation(line: 520, column: 2, scope: !696) | |
!821 = !DILocation(line: 520, column: 5, scope: !696) | |
!822 = !DILocation(line: 521, column: 11, scope: !696) | |
!823 = !DILocation(line: 521, column: 25, scope: !696) | |
!824 = !DILocation(line: 521, column: 32, scope: !696) | |
!825 = !DILocation(line: 522, column: 3, scope: !696) | |
!826 = !DILocation(line: 502, column: 50, scope: !696) | |
!827 = !DILocation(line: 523, column: 9, scope: !696) | |
!828 = !DILocation(line: 523, column: 12, scope: !696) | |
!829 = !DILocation(line: 524, column: 9, scope: !696) | |
!830 = !DILocation(line: 523, column: 7, scope: !696) | |
!831 = !DILocation(line: 522, column: 35, scope: !696) | |
!832 = !DILocation(line: 524, column: 4, scope: !696) | |
!833 = !DILocation(line: 526, column: 15, scope: !696) | |
!834 = !DILocation(line: 526, column: 5, scope: !696) | |
!835 = !DILocation(line: 528, column: 20, scope: !696) | |
!836 = !DILocation(line: 532, column: 2, scope: !696) | |
!837 = distinct !DISubprogram(name: "runtime.main", linkageName: "main", scope: !121, file: !121, line: 49, type: !838, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !107, retainedNodes: !841) | |
!838 = !DISubroutineType(types: !839) | |
!839 = !{!670, !840} | |
!840 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !36, size: 64, align: 64, dwarfAddressSpace: 0) | |
!841 = !{!842, !843, !844, !849, !850, !851, !852, !853, !854, !855, !863, !865, !866} | |
!842 = !DILocalVariable(name: "argc", arg: 1, scope: !837, file: !121, line: 49, type: !670) | |
!843 = !DILocalVariable(name: "argv", arg: 2, scope: !837, file: !121, line: 49, type: !840) | |
!844 = !DILocalVariable(name: "argsSlice", scope: !837, file: !121, line: 55, type: !845) | |
!845 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !846, size: 64, align: 64, dwarfAddressSpace: 0) | |
!846 = !DICompositeType(tag: DW_TAG_structure_type, size: 192, align: 64, elements: !847) | |
!847 = !{!848, !12, !14} | |
!848 = !DIDerivedType(tag: DW_TAG_member, name: "ptr", baseType: !36, size: 64, align: 64) | |
!849 = !DILocalVariable(name: "ptr", scope: !837, file: !121, line: 56, type: !36) | |
!850 = !DILocalVariable(name: "len", scope: !837, file: !121, line: 57, type: !13) | |
!851 = !DILocalVariable(name: "cap", scope: !837, file: !121, line: 58, type: !13) | |
!852 = !DILocalVariable(name: "i", scope: !837, file: !121, line: 65, type: !456) | |
!853 = !DILocalVariable(name: "length", scope: !837, file: !121, line: 67, type: !13) | |
!854 = !DILocalVariable(name: "args", scope: !837, file: !2, line: 29, type: !3) | |
!855 = !DILocalVariable(name: "arg", scope: !837, file: !121, line: 68, type: !856) | |
!856 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !857, size: 64, align: 64, dwarfAddressSpace: 0) | |
!857 = !DIDerivedType(tag: DW_TAG_typedef, name: "runtime._string", baseType: !858) | |
!858 = !DICompositeType(tag: DW_TAG_structure_type, size: 128, align: 64, elements: !859) | |
!859 = !{!860, !862} | |
!860 = !DIDerivedType(tag: DW_TAG_member, name: "ptr", baseType: !861, size: 64, align: 64) | |
!861 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !470, size: 64, align: 64, dwarfAddressSpace: 0) | |
!862 = !DIDerivedType(tag: DW_TAG_member, name: "length", baseType: !13, size: 64, align: 64, offset: 64) | |
!863 = !DILocalVariable(name: "length", scope: !837, file: !864, line: 12, type: !13) | |
!864 = !DIFile(filename: "string.go", directory: "/usr/local/Cellar/tinygo/0.19.0/src/runtime") | |
!865 = !DILocalVariable(name: "ptr", scope: !837, file: !864, line: 11, type: !861) | |
!866 = !DILocalVariable(name: "stackTop", scope: !837, file: !121, line: 43, type: !13) | |
!867 = !DILocation(line: 49, column: 6, scope: !837) | |
!868 = !DILocation(line: 17, column: 14, scope: !869, inlinedAt: !875) | |
!869 = distinct !DISubprogram(name: "runtime.preinit", linkageName: "runtime.preinit", scope: !17, file: !17, line: 13, type: !399, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !107, retainedNodes: !870) | |
!870 = !{!871, !872, !873, !874} | |
!871 = !DILocalVariable(name: "addr", scope: !869, file: !17, line: 17, type: !36) | |
!872 = !DILocalVariable(name: "heapStart", scope: !869, file: !17, line: 11, type: !13) | |
!873 = !DILocalVariable(name: "heapSize", scope: !869, file: !17, line: 8, type: !13) | |
!874 = !DILocalVariable(name: "heapEnd", scope: !869, file: !17, line: 11, type: !13) | |
!875 = distinct !DILocation(line: 50, column: 9, scope: !837) | |
!876 = !DILocation(line: 17, column: 2, scope: !869, inlinedAt: !875) | |
!877 = !DILocation(line: 18, column: 22, scope: !869, inlinedAt: !875) | |
!878 = !DILocation(line: 18, column: 21, scope: !869, inlinedAt: !875) | |
!879 = !DILocation(line: 18, column: 2, scope: !869, inlinedAt: !875) | |
!880 = !DILocation(line: 19, column: 12, scope: !869, inlinedAt: !875) | |
!881 = !DILocation(line: 19, column: 24, scope: !869, inlinedAt: !875) | |
!882 = !DILocation(line: 19, column: 22, scope: !869, inlinedAt: !875) | |
!883 = !DILocation(line: 19, column: 2, scope: !869, inlinedAt: !875) | |
!884 = !DILocation(line: 60, column: 32, scope: !837) | |
!885 = !DILocation(line: 60, column: 69, scope: !837) | |
!886 = !DILocation(line: 60, column: 24, scope: !837) | |
!887 = !DILocation(line: 60, column: 12, scope: !837) | |
!888 = !DILocation(line: 61, column: 12, scope: !837) | |
!889 = !DILocation(line: 62, column: 12, scope: !837) | |
!890 = !DILocation(line: 65, column: 6, scope: !837) | |
!891 = !DILocation(line: 0, scope: !837) | |
!892 = !DILocation(line: 49, column: 23, scope: !837) | |
!893 = !DILocation(line: 65, column: 14, scope: !837) | |
!894 = !DILocation(line: 65, column: 22, scope: !837) | |
!895 = !DILocation(line: 65, column: 16, scope: !837) | |
!896 = !DILocation(line: 67, column: 21, scope: !837) | |
!897 = !DILocation(line: 67, column: 20, scope: !837) | |
!898 = !DILocation(line: 18, column: 23, scope: !899, inlinedAt: !900) | |
!899 = distinct !DISubprogram(name: "runtime.getCurrentStackPointer", linkageName: "runtime.getCurrentStackPointer", scope: !385, file: !385, line: 17, type: !399, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !107, retainedNodes: !76) | |
!900 = distinct !DILocation(line: 78, column: 35, scope: !837) | |
!901 = !DILocation(line: 78, column: 2, scope: !837) | |
!902 = !DILocation(line: 79, column: 9, scope: !837) | |
!903 = !DILocation(line: 82, column: 2, scope: !837) | |
!904 = !DILocation(line: 67, column: 3, scope: !837) | |
!905 = !DILocation(line: 68, column: 37, scope: !837) | |
!906 = !DILocation(line: 68, column: 42, scope: !837) | |
!907 = !DILocation(line: 68, column: 41, scope: !837) | |
!908 = !DILocation(line: 67, column: 19, scope: !837) | |
!909 = !DILocation(line: 69, column: 3, scope: !837) | |
!910 = !DILocation(line: 69, column: 7, scope: !837) | |
!911 = !DILocation(line: 69, column: 16, scope: !837) | |
!912 = !DILocation(line: 70, column: 22, scope: !837) | |
!913 = !DILocation(line: 70, column: 7, scope: !837) | |
!914 = !DILocation(line: 70, column: 21, scope: !837) | |
!915 = !DILocation(line: 72, column: 66, scope: !837) | |
!916 = !DILocation(line: 72, column: 42, scope: !837) | |
!917 = !DILocation(line: 72, column: 3, scope: !837) | |
!918 = !DILocation(line: 65, column: 29, scope: !837) | |
!919 = distinct !DISubprogram(name: "runtime.runMain", linkageName: "runtime.runMain", scope: !121, file: !121, line: 87, type: !399, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !107, retainedNodes: !76) | |
!920 = !DILocation(line: 63, column: 14, scope: !921, inlinedAt: !922) | |
!921 = distinct !DISubprogram(name: "internal/task.createTask", linkageName: "internal/task.createTask", scope: !209, file: !209, line: 62, type: !399, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !78, retainedNodes: !76) | |
!922 = distinct !DILocation(line: 18, column: 2, scope: !923, inlinedAt: !925) | |
!923 = distinct !DISubprogram(name: "runtime.run", linkageName: "runtime.run", scope: !924, file: !924, line: 16, type: !399, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !107, retainedNodes: !76) | |
!924 = !DIFile(filename: "scheduler_any.go", directory: "/usr/local/Cellar/tinygo/0.19.0/src/runtime") | |
!925 = distinct !DILocation(line: 88, column: 5, scope: !919) | |
!926 = !DILocation(line: 64, column: 16, scope: !921, inlinedAt: !922) | |
!927 = !DILocation(line: 18, column: 2, scope: !923, inlinedAt: !925) | |
!928 = !DILocalVariable(name: "now", scope: !929, file: !25, line: 122, type: !126) | |
!929 = distinct !DISubprogram(name: "runtime.scheduler", linkageName: "runtime.scheduler", scope: !25, file: !25, line: 120, type: !399, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !107, retainedNodes: !930) | |
!930 = !{!928, !931, !932, !933, !934, !935, !936, !937, !938} | |
!931 = !DILocalVariable(name: "schedulerDone", scope: !929, file: !25, line: 27, type: !51) | |
!932 = !DILocalVariable(name: "sleepQueue", scope: !929, file: !25, line: 32, type: !30) | |
!933 = !DILocalVariable(name: "sleepQueueBaseTime", scope: !929, file: !25, line: 33, type: !126) | |
!934 = !DILocalVariable(name: "t", scope: !929, file: !25, line: 133, type: !30) | |
!935 = !DILocalVariable(name: "Next", scope: !929, file: !184, line: 10, type: !30) | |
!936 = !DILocalVariable(name: "t", scope: !929, file: !25, line: 141, type: !30) | |
!937 = !DILocalVariable(name: "timeLeft", scope: !929, file: !25, line: 151, type: !126) | |
!938 = !DILocalVariable(name: "t", scope: !929, file: !25, line: 154, type: !30) | |
!939 = !DILocation(line: 122, column: 6, scope: !929, inlinedAt: !940) | |
!940 = distinct !DILocation(line: 24, column: 11, scope: !923, inlinedAt: !925) | |
!941 = !DILocation(line: 0, scope: !929, inlinedAt: !940) | |
!942 = !DILocation(line: 123, column: 7, scope: !929, inlinedAt: !940) | |
!943 = !DILocation(line: 126, column: 6, scope: !929, inlinedAt: !940) | |
!944 = !DILocation(line: 132, column: 6, scope: !929, inlinedAt: !940) | |
!945 = !DILocalVariable(name: "i", scope: !946, file: !164, line: 33, type: !182) | |
!946 = distinct !DISubprogram(name: "(*internal/task.Queue).Pop", linkageName: "(*internal/task.Queue).Pop", scope: !164, file: !164, line: 32, type: !947, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !78, retainedNodes: !949) | |
!947 = !DISubroutineType(types: !948) | |
!948 = !{!167} | |
!949 = !{!950, !945, !951, !952, !953, !954} | |
!950 = !DILocalVariable(name: "q", arg: 1, scope: !946, file: !164, line: 32, type: !167) | |
!951 = !DILocalVariable(name: "t", scope: !946, file: !164, line: 34, type: !172) | |
!952 = !DILocalVariable(name: "head", scope: !946, file: !164, line: 10, type: !172) | |
!953 = !DILocalVariable(name: "tail", scope: !946, file: !164, line: 10, type: !172) | |
!954 = !DILocalVariable(name: "Next", scope: !946, file: !184, line: 10, type: !172) | |
!955 = !DILocation(line: 33, column: 2, scope: !946, inlinedAt: !956) | |
!956 = distinct !DILocation(line: 141, column: 20, scope: !929, inlinedAt: !940) | |
!957 = !DILocation(line: 34, column: 7, scope: !946, inlinedAt: !956) | |
!958 = !DILocation(line: 34, column: 9, scope: !946, inlinedAt: !956) | |
!959 = !DILocation(line: 35, column: 5, scope: !946, inlinedAt: !956) | |
!960 = !DILocation(line: 35, column: 7, scope: !946, inlinedAt: !956) | |
!961 = !DILocation(line: 0, scope: !946, inlinedAt: !956) | |
!962 = !DILocation(line: 39, column: 2, scope: !946, inlinedAt: !956) | |
!963 = !DILocation(line: 39, column: 11, scope: !946, inlinedAt: !956) | |
!964 = !DILocation(line: 39, column: 13, scope: !946, inlinedAt: !956) | |
!965 = !DILocation(line: 39, column: 4, scope: !946, inlinedAt: !956) | |
!966 = !DILocation(line: 40, column: 7, scope: !946, inlinedAt: !956) | |
!967 = !DILocation(line: 40, column: 12, scope: !946, inlinedAt: !956) | |
!968 = !DILocation(line: 41, column: 3, scope: !946, inlinedAt: !956) | |
!969 = !DILocation(line: 41, column: 5, scope: !946, inlinedAt: !956) | |
!970 = !DILocation(line: 142, column: 6, scope: !929, inlinedAt: !940) | |
!971 = !DILocation(line: 143, column: 7, scope: !929, inlinedAt: !940) | |
!972 = !DILocation(line: 148, column: 18, scope: !929, inlinedAt: !940) | |
!973 = !DILocation(line: 43, column: 2, scope: !946, inlinedAt: !956) | |
!974 = !DILocation(line: 43, column: 4, scope: !946, inlinedAt: !956) | |
!975 = !DILocation(line: 44, column: 20, scope: !946, inlinedAt: !956) | |
!976 = !DILocation(line: 171, column: 3, scope: !929, inlinedAt: !940) | |
!977 = !DILocalVariable(name: "t", arg: 1, scope: !978, file: !209, line: 22, type: !172) | |
!978 = distinct !DISubprogram(name: "(*internal/task.Task).Resume", linkageName: "(*internal/task.Task).Resume", scope: !209, file: !209, line: 22, type: !222, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !78, retainedNodes: !979) | |
!979 = !{!977} | |
!980 = !DILocation(line: 23, column: 13, scope: !978, inlinedAt: !981) | |
!981 = distinct !DILocation(line: 171, column: 11, scope: !929, inlinedAt: !940) | |
!982 = !DILocation(line: 23, column: 21, scope: !978, inlinedAt: !981) | |
!983 = !DILocation(line: 23, column: 12, scope: !978, inlinedAt: !981) | |
!984 = !DILocation(line: 89, column: 2, scope: !919) | |
!985 = distinct !DISubprogram(name: "runtime.run$1", linkageName: "runtime.run$1", scope: !924, file: !924, line: 18, type: !399, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !107, retainedNodes: !986) | |
!986 = !{!987} | |
!987 = !DILocalVariable(name: "schedulerDone", scope: !985, file: !25, line: 27, type: !51) | |
!988 = !DILocation(line: 21, column: 11, scope: !985) | |
!989 = !DILocation(line: 23, column: 3, scope: !985) | |
!990 = distinct !DISubprogram(name: "runtime.waitForEvents", linkageName: "runtime.waitForEvents", scope: !991, file: !991, line: 6, type: !399, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !107, retainedNodes: !76) | |
!991 = !DIFile(filename: "wait_other.go", directory: "/usr/local/Cellar/tinygo/0.19.0/src/runtime") | |
!992 = !DILocation(line: 7, column: 14, scope: !990) | |
!993 = distinct !DISubprogram(name: "main.main", linkageName: "main.main", scope: !54, file: !54, line: 12, type: !399, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !127, retainedNodes: !994) | |
!994 = !{!995} | |
!995 = !DILocalVariable(name: "ready", scope: !993, file: !54, line: 9, type: !131) | |
!996 = !DILocation(line: 14, column: 9, scope: !993) | |
!997 = distinct !DISubprogram(name: "(*sync.Once).Do", linkageName: "(*sync.Once).Do", scope: !316, file: !316, line: 8, type: !317, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !79, retainedNodes: !998) | |
!998 = !{!999, !1000, !1001} | |
!999 = !DILocalVariable(name: "o", arg: 1, scope: !997, file: !316, line: 8, type: !319) | |
!1000 = !DILocalVariable(name: "f", arg: 2, scope: !997, file: !316, line: 8, type: !324) | |
!1001 = !DILocalVariable(name: "done", scope: !997, file: !316, line: 4, type: !51) | |
!1002 = !DILocation(line: 12, column: 3, scope: !997) | |
!1003 = !DILocation(line: 11, column: 7, scope: !997) | |
!1004 = !DILocation(line: 0, scope: !997) | |
!1005 = !DILocation(line: 8, column: 16, scope: !997) | |
!1006 = !DILocation(line: 14, column: 2, scope: !997) | |
!1007 = !DILocation(line: 14, column: 4, scope: !997) | |
!1008 = !DILocation(line: 15, column: 2, scope: !997) | |
!1009 = !DILocalVariable(name: "ready", scope: !1010, file: !54, line: 9, type: !131) | |
!1010 = distinct !DISubprogram(name: "main.main$1", linkageName: "main.main$1", scope: !54, file: !54, line: 14, type: !399, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !127, retainedNodes: !1011) | |
!1011 = !{!1009} | |
!1012 = !DILocation(line: 15, column: 9, scope: !1010, inlinedAt: !1013) | |
!1013 = distinct !DILocation(line: 15, column: 3, scope: !997) | |
!1014 = !DILocalVariable(name: "i", scope: !1015, file: !492, line: 542, type: !182) | |
!1015 = distinct !DISubprogram(name: "runtime.chanClose", linkageName: "runtime.chanClose", scope: !492, file: !492, line: 537, type: !614, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !107, retainedNodes: !1016) | |
!1016 = !{!1017, !1014, !1018} | |
!1017 = !DILocalVariable(name: "ch", arg: 1, scope: !1015, file: !492, line: 537, type: !507) | |
!1018 = !DILocalVariable(name: "state", scope: !1015, file: !492, line: 122, type: !138) | |
!1019 = !DILocation(line: 542, column: 2, scope: !1015, inlinedAt: !1020) | |
!1020 = distinct !DILocation(line: 15, column: 8, scope: !1010, inlinedAt: !1013) | |
!1021 = !DILocation(line: 543, column: 9, scope: !1015, inlinedAt: !1020) | |
!1022 = !DILocation(line: 543, column: 12, scope: !1015, inlinedAt: !1020) | |
!1023 = !DILocation(line: 0, scope: !1015, inlinedAt: !1020) | |
!1024 = !DILocation(line: 546, column: 21, scope: !1015, inlinedAt: !1020) | |
!1025 = !DILocation(line: 547, column: 15, scope: !1015, inlinedAt: !1020) | |
!1026 = !DILocation(line: 553, column: 21, scope: !1015, inlinedAt: !1020) | |
!1027 = !DILocation(line: 554, column: 15, scope: !1015, inlinedAt: !1020) | |
!1028 = !DILocation(line: 558, column: 7, scope: !1015, inlinedAt: !1020) | |
!1029 = !DILocation(line: 558, column: 10, scope: !1015, inlinedAt: !1020) | |
!1030 = !DILocation(line: 558, column: 18, scope: !1015, inlinedAt: !1020) | |
!1031 = !DILocation(line: 559, column: 4, scope: !1015, inlinedAt: !1020) | |
!1032 = !DILocalVariable(name: "ok", arg: 2, scope: !1033, file: !492, line: 174, type: !51) | |
!1033 = distinct !DISubprogram(name: "(*runtime.channel).resumeRX", linkageName: "(*runtime.channel).resumeRX", scope: !492, file: !492, line: 174, type: !1034, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !107, retainedNodes: !1036) | |
!1034 = !DISubroutineType(types: !1035) | |
!1035 = !{!507, !51} | |
!1036 = !{!1037, !1032, !1038, !1039, !1040, !1041, !1042} | |
!1037 = !DILocalVariable(name: "ch", arg: 1, scope: !1033, file: !492, line: 174, type: !507) | |
!1038 = !DILocalVariable(name: "b", scope: !1033, file: !492, line: 176, type: !495) | |
!1039 = !DILocalVariable(name: "blocked", scope: !1033, file: !492, line: 123, type: !495) | |
!1040 = !DILocalVariable(name: "dst", scope: !1033, file: !492, line: 180, type: !36) | |
!1041 = !DILocalVariable(name: "Ptr", scope: !1033, file: !184, line: 13, type: !36) | |
!1042 = !DILocalVariable(name: "Data", scope: !1033, file: !184, line: 16, type: !38) | |
!1043 = !DILocation(line: 174, column: 20, scope: !1033, inlinedAt: !1044) | |
!1044 = distinct !DILocation(line: 559, column: 15, scope: !1015, inlinedAt: !1020) | |
!1045 = !DILocation(line: 176, column: 6, scope: !1033, inlinedAt: !1044) | |
!1046 = !DILocation(line: 177, column: 18, scope: !1033, inlinedAt: !1044) | |
!1047 = !DILocation(line: 177, column: 41, scope: !1033, inlinedAt: !1044) | |
!1048 = !DILocation(line: 177, column: 2, scope: !1033, inlinedAt: !1044) | |
!1049 = !DILocation(line: 177, column: 8, scope: !1033, inlinedAt: !1044) | |
!1050 = !DILocation(line: 180, column: 11, scope: !1033, inlinedAt: !1044) | |
!1051 = !DILocation(line: 180, column: 13, scope: !1033, inlinedAt: !1044) | |
!1052 = !DILocation(line: 182, column: 6, scope: !1033, inlinedAt: !1044) | |
!1053 = !DILocation(line: 184, column: 11, scope: !1033, inlinedAt: !1044) | |
!1054 = !DILocation(line: 184, column: 16, scope: !1033, inlinedAt: !1044) | |
!1055 = !DILocation(line: 184, column: 19, scope: !1033, inlinedAt: !1044) | |
!1056 = !DILocation(line: 184, column: 10, scope: !1033, inlinedAt: !1044) | |
!1057 = !DILocation(line: 185, column: 3, scope: !1033, inlinedAt: !1044) | |
!1058 = !DILocation(line: 185, column: 5, scope: !1033, inlinedAt: !1044) | |
!1059 = !DILocation(line: 185, column: 7, scope: !1033, inlinedAt: !1044) | |
!1060 = !DILocation(line: 190, column: 3, scope: !1033, inlinedAt: !1044) | |
!1061 = !DILocation(line: 190, column: 5, scope: !1033, inlinedAt: !1044) | |
!1062 = !DILocation(line: 190, column: 7, scope: !1033, inlinedAt: !1044) | |
!1063 = !DILocation(line: 190, column: 28, scope: !1033, inlinedAt: !1044) | |
!1064 = !DILocation(line: 193, column: 11, scope: !1033, inlinedAt: !1044) | |
!1065 = !DILocation(line: 0, scope: !1033, inlinedAt: !1044) | |
!1066 = !DILocation(line: 188, column: 5, scope: !1033, inlinedAt: !1044) | |
!1067 = !DILocation(line: 188, column: 7, scope: !1033, inlinedAt: !1044) | |
!1068 = !DILocation(line: 188, column: 9, scope: !1033, inlinedAt: !1044) | |
!1069 = !DILocation(line: 197, column: 16, scope: !1033, inlinedAt: !1044) | |
!1070 = !DILocation(line: 197, column: 18, scope: !1033, inlinedAt: !1044) | |
!1071 = !DILocation(line: 197, column: 15, scope: !1033, inlinedAt: !1044) | |
!1072 = !DILocation(line: 199, column: 9, scope: !1033, inlinedAt: !1044) | |
!1073 = !DILocation(line: 557, column: 3, scope: !1015, inlinedAt: !1020) | |
!1074 = !DILocation(line: 557, column: 6, scope: !1015, inlinedAt: !1020) | |
!1075 = !DILocation(line: 564, column: 2, scope: !1015, inlinedAt: !1020) | |
!1076 = !DILocation(line: 564, column: 5, scope: !1015, inlinedAt: !1020) | |
!1077 = !DILocation(line: 565, column: 20, scope: !1015, inlinedAt: !1020) | |
!1078 = distinct !DISubprogram(name: "(*sync.Once).Do", linkageName: "(*sync.Once).Do", scope: !316, file: !316, line: 8, type: !317, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !79, retainedNodes: !1079) | |
!1079 = !{!1080, !1081, !1082} | |
!1080 = !DILocalVariable(name: "o", arg: 1, scope: !1078, file: !316, line: 8, type: !319) | |
!1081 = !DILocalVariable(name: "f", arg: 2, scope: !1078, file: !316, line: 8, type: !324) | |
!1082 = !DILocalVariable(name: "done", scope: !1078, file: !316, line: 4, type: !51) | |
!1083 = !DILocation(line: 8, column: 16, scope: !1078) | |
!1084 = distinct !DISubprogram(name: "(*sync.Once).Do", linkageName: "(*sync.Once).Do", scope: !316, file: !316, line: 8, type: !317, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !79, retainedNodes: !1085) | |
!1085 = !{!1086, !1087, !1088} | |
!1086 = !DILocalVariable(name: "o", arg: 1, scope: !1084, file: !316, line: 8, type: !319) | |
!1087 = !DILocalVariable(name: "f", arg: 2, scope: !1084, file: !316, line: 8, type: !324) | |
!1088 = !DILocalVariable(name: "done", scope: !1084, file: !316, line: 4, type: !51) | |
!1089 = !DILocation(line: 8, column: 16, scope: !1084) | |
!1090 = distinct !DISubprogram(name: "runtime.chanRecv", linkageName: "runtime.chanRecv", scope: !492, file: !492, line: 502, type: !697, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !107, retainedNodes: !1091) | |
!1091 = !{!1092, !1093, !1094, !1095, !1096, !1097, !1098, !1099, !1100, !1101, !1102, !1103} | |
!1092 = !DILocalVariable(name: "ch", arg: 1, scope: !1090, file: !492, line: 502, type: !507) | |
!1093 = !DILocalVariable(name: "value", arg: 2, scope: !1090, file: !492, line: 502, type: !36) | |
!1094 = !DILocalVariable(name: "blockedlist", arg: 3, scope: !1090, file: !492, line: 502, type: !495) | |
!1095 = !DILocalVariable(name: "i", scope: !1090, file: !492, line: 503, type: !182) | |
!1096 = !DILocalVariable(name: "rx", scope: !1090, file: !492, line: 505, type: !51) | |
!1097 = !DILocalVariable(name: "ok", scope: !1090, file: !492, line: 505, type: !51) | |
!1098 = !DILocalVariable(name: "receiver", scope: !1090, file: !492, line: 519, type: !30) | |
!1099 = !DILocalVariable(name: "state", scope: !1090, file: !492, line: 122, type: !138) | |
!1100 = !DILocalVariable(name: "Ptr", scope: !1090, file: !184, line: 13, type: !36) | |
!1101 = !DILocalVariable(name: "Data", scope: !1090, file: !184, line: 16, type: !38) | |
!1102 = !DILocalVariable(name: "blocked", scope: !1090, file: !492, line: 123, type: !495) | |
!1103 = !DILocalVariable(name: "ok", scope: !1090, file: !492, line: 530, type: !51) | |
!1104 = !DILocation(line: 521, column: 25, scope: !1090) | |
!1105 = !DILocation(line: 58, column: 11, scope: !714, inlinedAt: !1106) | |
!1106 = distinct !DILocation(line: 502, column: 6, scope: !1090) | |
!1107 = !DILocation(line: 502, column: 6, scope: !1090) | |
!1108 = !DILocation(line: 532, column: 2, scope: !1090) | |
!1109 = !DILocation(line: 530, column: 17, scope: !1090) | |
!1110 = !DILocation(line: 530, column: 22, scope: !1090) | |
!1111 = !DILocation(line: 530, column: 2, scope: !1090) | |
!1112 = !DILocation(line: 531, column: 11, scope: !1090) | |
!1113 = !DILocation(line: 531, column: 25, scope: !1090) | |
!1114 = !DILocation(line: 35, column: 16, scope: !208, inlinedAt: !1115) | |
!1115 = distinct !DILocation(line: 532, column: 2, scope: !1090) | |
!1116 = !DILocation(line: 36, column: 2, scope: !208, inlinedAt: !1115) | |
!1117 = !DILocation(line: 36, column: 4, scope: !208, inlinedAt: !1115) | |
!1118 = !DILocation(line: 36, column: 18, scope: !208, inlinedAt: !1115) | |
!1119 = !DILocation(line: 42, column: 15, scope: !221, inlinedAt: !1120) | |
!1120 = distinct !DILocation(line: 37, column: 17, scope: !208, inlinedAt: !1115) | |
!1121 = !DILocation(line: 80, column: 16, scope: !229, inlinedAt: !1122) | |
!1122 = distinct !DILocation(line: 42, column: 14, scope: !221, inlinedAt: !1120) | |
!1123 = !DILocation(line: 80, column: 15, scope: !229, inlinedAt: !1122) | |
!1124 = distinct !DISubprogram(name: "runtime.chanRecv", linkageName: "runtime.chanRecv", scope: !492, file: !492, line: 502, type: !697, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !107, retainedNodes: !1125) | |
!1125 = !{!1126, !1127, !1128, !1129, !1130, !1131, !1132, !1133, !1134, !1135, !1136, !1137} | |
!1126 = !DILocalVariable(name: "ch", arg: 1, scope: !1124, file: !492, line: 502, type: !507) | |
!1127 = !DILocalVariable(name: "value", arg: 2, scope: !1124, file: !492, line: 502, type: !36) | |
!1128 = !DILocalVariable(name: "blockedlist", arg: 3, scope: !1124, file: !492, line: 502, type: !495) | |
!1129 = !DILocalVariable(name: "i", scope: !1124, file: !492, line: 503, type: !182) | |
!1130 = !DILocalVariable(name: "rx", scope: !1124, file: !492, line: 505, type: !51) | |
!1131 = !DILocalVariable(name: "ok", scope: !1124, file: !492, line: 505, type: !51) | |
!1132 = !DILocalVariable(name: "receiver", scope: !1124, file: !492, line: 519, type: !30) | |
!1133 = !DILocalVariable(name: "state", scope: !1124, file: !492, line: 122, type: !138) | |
!1134 = !DILocalVariable(name: "Ptr", scope: !1124, file: !184, line: 13, type: !36) | |
!1135 = !DILocalVariable(name: "Data", scope: !1124, file: !184, line: 16, type: !38) | |
!1136 = !DILocalVariable(name: "blocked", scope: !1124, file: !492, line: 123, type: !495) | |
!1137 = !DILocalVariable(name: "ok", scope: !1124, file: !492, line: 530, type: !51) | |
!1138 = !DILocation(line: 502, column: 6, scope: !1124) | |
!1139 = distinct !DISubprogram(name: "runtime.chanRecv", linkageName: "runtime.chanRecv", scope: !492, file: !492, line: 502, type: !697, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !107, retainedNodes: !1140) | |
!1140 = !{!1141, !1142, !1143, !1144, !1145, !1146, !1147, !1148, !1149, !1150, !1151, !1152} | |
!1141 = !DILocalVariable(name: "ch", arg: 1, scope: !1139, file: !492, line: 502, type: !507) | |
!1142 = !DILocalVariable(name: "value", arg: 2, scope: !1139, file: !492, line: 502, type: !36) | |
!1143 = !DILocalVariable(name: "blockedlist", arg: 3, scope: !1139, file: !492, line: 502, type: !495) | |
!1144 = !DILocalVariable(name: "i", scope: !1139, file: !492, line: 503, type: !182) | |
!1145 = !DILocalVariable(name: "rx", scope: !1139, file: !492, line: 505, type: !51) | |
!1146 = !DILocalVariable(name: "ok", scope: !1139, file: !492, line: 505, type: !51) | |
!1147 = !DILocalVariable(name: "receiver", scope: !1139, file: !492, line: 519, type: !30) | |
!1148 = !DILocalVariable(name: "state", scope: !1139, file: !492, line: 122, type: !138) | |
!1149 = !DILocalVariable(name: "Ptr", scope: !1139, file: !184, line: 13, type: !36) | |
!1150 = !DILocalVariable(name: "Data", scope: !1139, file: !184, line: 16, type: !38) | |
!1151 = !DILocalVariable(name: "blocked", scope: !1139, file: !492, line: 123, type: !495) | |
!1152 = !DILocalVariable(name: "ok", scope: !1139, file: !492, line: 530, type: !51) | |
!1153 = !DILocation(line: 502, column: 6, scope: !1139) | |
!1154 = distinct !DISubprogram(name: "main.main", linkageName: "main.main", scope: !54, file: !54, line: 12, type: !399, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !127, retainedNodes: !1155) | |
!1155 = !{!1156} | |
!1156 = !DILocalVariable(name: "ready", scope: !1154, file: !54, line: 9, type: !131) | |
!1157 = !DILocation(line: 14, column: 9, scope: !1154) | |
!1158 = !DILocalVariable(name: "t", arg: 1, scope: !1159, file: !209, line: 50, type: !172) | |
!1159 = distinct !DISubprogram(name: "(*internal/task.Task).setReturnPtr", linkageName: "(*internal/task.Task).setReturnPtr", scope: !209, file: !209, line: 50, type: !1160, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !78, retainedNodes: !1162) | |
!1160 = !DISubroutineType(types: !1161) | |
!1161 = !{!172, !36} | |
!1162 = !{!1158, !1163, !1164} | |
!1163 = !DILocalVariable(name: "buf", arg: 2, scope: !1159, file: !209, line: 50, type: !36) | |
!1164 = !DILocalVariable(name: "Ptr", scope: !1159, file: !184, line: 13, type: !36) | |
!1165 = !DILocation(line: 50, column: 16, scope: !1159, inlinedAt: !1166) | |
!1166 = distinct !DILocation(line: 14, column: 9, scope: !1154) | |
!1167 = !DILocation(line: 52, column: 2, scope: !1159, inlinedAt: !1166) | |
!1168 = !DILocation(line: 52, column: 4, scope: !1159, inlinedAt: !1166) | |
!1169 = !DILocation(line: 35, column: 16, scope: !208, inlinedAt: !1170) | |
!1170 = distinct !DILocation(line: 14, column: 9, scope: !1154) | |
!1171 = !DILocation(line: 36, column: 2, scope: !208, inlinedAt: !1170) | |
!1172 = !DILocation(line: 36, column: 4, scope: !208, inlinedAt: !1170) | |
!1173 = !DILocation(line: 36, column: 18, scope: !208, inlinedAt: !1170) | |
!1174 = !DILocation(line: 37, column: 2, scope: !208, inlinedAt: !1170) | |
!1175 = !DILocation(line: 42, column: 15, scope: !221, inlinedAt: !1176) | |
!1176 = distinct !DILocation(line: 37, column: 17, scope: !208, inlinedAt: !1170) | |
!1177 = !DILocation(line: 80, column: 16, scope: !229, inlinedAt: !1178) | |
!1178 = distinct !DILocation(line: 42, column: 14, scope: !221, inlinedAt: !1176) | |
!1179 = !DILocation(line: 80, column: 15, scope: !229, inlinedAt: !1178) | |
!1180 = !DILocation(line: 52, column: 10, scope: !1159, inlinedAt: !1166) | |
!1181 = distinct !DISubprogram(name: "main.main", linkageName: "main.main", scope: !54, file: !54, line: 12, type: !399, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !127, retainedNodes: !1182) | |
!1182 = !{!1183} | |
!1183 = !DILocalVariable(name: "ready", scope: !1181, file: !54, line: 9, type: !131) | |
!1184 = !DILocation(line: 14, column: 9, scope: !1181) | |
!1185 = distinct !DISubprogram(name: "main.main", linkageName: "main.main", scope: !54, file: !54, line: 12, type: !399, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !127, retainedNodes: !1186) | |
!1186 = !{!1187} | |
!1187 = !DILocalVariable(name: "ready", scope: !1185, file: !54, line: 9, type: !131) | |
!1188 = !DILocation(line: 14, column: 9, scope: !1185) | |
!1189 = distinct !DISubprogram(name: "runtime.run$1", linkageName: "runtime.run$1", scope: !924, file: !924, line: 18, type: !399, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !107, retainedNodes: !1190) | |
!1190 = !{!1191} | |
!1191 = !DILocalVariable(name: "schedulerDone", scope: !1189, file: !25, line: 27, type: !51) | |
!1192 = !DILocation(line: 21, column: 11, scope: !1189) | |
!1193 = !DILocation(line: 23, column: 3, scope: !1189) | |
!1194 = distinct !DISubprogram(name: "runtime.run$1", linkageName: "runtime.run$1", scope: !924, file: !924, line: 18, type: !399, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !107, retainedNodes: !1195) | |
!1195 = !{!1196} | |
!1196 = !DILocalVariable(name: "schedulerDone", scope: !1194, file: !25, line: 27, type: !51) | |
!1197 = !DILocation(line: 21, column: 11, scope: !1194) | |
!1198 = distinct !DISubprogram(name: "runtime.run$1", linkageName: "runtime.run$1", scope: !924, file: !924, line: 18, type: !399, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !107, retainedNodes: !1199) | |
!1199 = !{!1200} | |
!1200 = !DILocalVariable(name: "schedulerDone", scope: !1198, file: !25, line: 27, type: !51) | |
!1201 = !DILocation(line: 21, column: 11, scope: !1198) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment