int main(int argc, char** args){ _DECL_1DARRAY(a); _DECL_DEALLOC(a); _DECL_1DARRAY(b); _DECL_DEALLOC(b); _DECL_1DARRAY(c); _DECL_DEALLOC(c); _DECL_1DARRAY(r); _DECL_DEALLOC(r); int64_t _5; int64_t _6; _DECL_1DARRAY(_7); _DECL_DEALLOC(_7); int64_t _8; int64_t _9; _DECL_1DARRAY(_10); _DECL_DEALLOC(_10); int64_t _11; int64_t _12; _DECL_1DARRAY(_13); _DECL_DEALLOC(_13); _DECL_1DARRAY(_14); _DECL_DEALLOC(_14); void* _15; int64_t _17; int64_t _18; void* _19; int64_t _21; int64_t _22; void* _23; int64_t _25; int64_t _26; //const %5 = 2 : int _5 = 2; //const %6 = 2 : int _6 = 2; //arraygen %7 = [5; 6] : int[] _NEW1DARRAY_DEALLOC(_7, _5, _6, int64_t); //assign %1 = %7 : int[] // isCopyEliminated = true _TRANSFER_DEALLOC(a, _7); //const %8 = 2 : int _8 = 2; //const %9 = 2 : int _9 = 2; //arraygen %10 = [8; 9] : int[] _NEW1DARRAY_DEALLOC(_10, _8, _9, int64_t); //assign %2 = %10 : int[] // isCopyEliminated = true _TRANSFER_DEALLOC(b, _10); //const %11 = 2 : int _11 = 2; //const %12 = 2 : int _12 = 2; //arraygen %13 = [11; 12] : int[] _NEW1DARRAY_DEALLOC(_13, _11, _12, int64_t); //assign %3 = %13 : int[] // isCopyEliminated = true _TRANSFER_DEALLOC(c, _13); //invoke (%14) = (%1, %2, %3) 3parameter_test63:func : function(int[],int[],int[])->(int[]) { _FUNCTIONCALL_COPY_PRE(_14, c, "true-NEVER_RETURN-true" , "func"); _FUNCTIONCALL_COPY_PRE(_14, b, "false-MAYBE_RETURN-true" , "func"); _FUNCTIONCALL_COPY_PRE(_14, a, "true-NEVER_RETURN-true" , "func"); _DEALLOC(_14); void* tmp_a; _COPY_1DARRAY_PARAM(a, tmp_a, int64_t); void* tmp_b; _COPY_1DARRAY_PARAM(b, tmp_b, int64_t); void* tmp_c; _COPY_1DARRAY_PARAM(c, tmp_c, int64_t); // isCopyEliminated of '_1' = false // isCopyEliminated of '_2' = false // isCopyEliminated of '_3' = false _14 = _func_(tmp_a, a_size, tmp_b, b_size, tmp_c, c_size, _1DARRAYSIZE_PARAM_CALLBYREFERENCE(_14)); if( _14 == tmp_b ){ _14_dealloc = true; free(tmp_a); free(tmp_c); } else { _14_dealloc = true; free(tmp_a); free(tmp_b); free(tmp_c); } } //assign %4 = %14 : int[] // isCopyEliminated = true _TRANSFER_DEALLOC(r, _14); //fieldload %15 = %0 out : {int[][] args,{method(any)->() print,method(int[])->() print_s,method(any)->() println,method(int[])->() println_s} out} //fieldload %16 = %15 println : {method(any)->() print,method(int[])->() print_s,method(any)->() println,method(int[])->() println_s} //const %17 = 0 : int _17 = 0; //indexof %18 = %1, %17 : int[] _18=a[_17]; //indirectinvoke () = %16 (%18) : method(any)->() { printf("%"PRId64"\n", _18); } //fieldload %19 = %0 out : {int[][] args,{method(any)->() print,method(int[])->() print_s,method(any)->() println,method(int[])->() println_s} out} //fieldload %20 = %19 println : {method(any)->() print,method(int[])->() print_s,method(any)->() println,method(int[])->() println_s} //const %21 = 0 : int _21 = 0; //indexof %22 = %2, %21 : int[] _22=b[_21]; //indirectinvoke () = %20 (%22) : method(any)->() { printf("%"PRId64"\n", _22); } //fieldload %23 = %0 out : {int[][] args,{method(any)->() print,method(int[])->() print_s,method(any)->() println,method(int[])->() println_s} out} //fieldload %24 = %23 println : {method(any)->() print,method(int[])->() print_s,method(any)->() println,method(int[])->() println_s} //const %25 = 0 : int _25 = 0; //indexof %26 = %3, %25 : int[] _26=c[_25]; //indirectinvoke () = %24 (%26) : method(any)->() { printf("%"PRId64"\n", _26); } //return _DEALLOC(a); _DEALLOC(b); _DEALLOC(c); _DEALLOC(r); _DEALLOC(_7); _DEALLOC(_10); _DEALLOC(_13); _DEALLOC(_14); exit(0); }
int main(int argc, char** args){ int64_t n; _DECL_1DARRAY(moves); _DECL_DEALLOC(moves); int64_t sum_alice; int64_t _4; int64_t _5; int64_t _6; _DECL_1DARRAY(_7); _DECL_DEALLOC(_7); _DECL_1DARRAY(_8); _DECL_DEALLOC(_8); int64_t _9; int64_t _10; int64_t _11; int64_t _12; void* _13; _DECL_1DARRAY(_15); _DECL_DEALLOC(_15); void* _16; void* _18; _DECL_1DARRAY(_20); _DECL_DEALLOC(_20); //const %4 = 10 : int _4 = 10; //assign %1 = %4 : int n = _4; //const %5 = 0 : int _5 = 0; //mul %6 = %1, %1 : int _6=n*n; //arraygen %7 = [5; 6] : int[] _NEW1DARRAY_DEALLOC(_7, _5, _6, int64_t); //assign %2 = %7 : int[] _ADD_DEALLOC(moves, _7, int64_t); //invoke (%8) = (%2, %1) CoinGame3:findMoves : function(int[],int)->(int[]) { _FUNCTIONCALL_COPY_PRE(_8, moves, 0, "liveness: moves = false, readonly: moves = false, return:moves = ALWAYS_RETURN" , "findMoves"); _DEALLOC(_8); void* tmp_moves; _COPY_1DARRAY_PARAM(moves, tmp_moves, int64_t); _8 = _findMoves_(tmp_moves, moves_size, n, _1DARRAYSIZE_PARAM_CALLBYREFERENCE(_8)); _8_dealloc = true; } //assign %2 = %8 : int[] _ADD_DEALLOC(moves, _8, int64_t); //const %9 = 1 : int _9 = 1; //sub %10 = %1, %9 : int _10=n-_9; //indexof %11 = %2, %10 : int[] _11=moves[_10]; //assign %3 = %11 : int sum_alice = _11; //assert { //const %12 = 25 : int _12 = 25; //ifeq %3, %12 goto blklab7 : int if(sum_alice==_12){goto blklab7;} //fail fprintf(stderr,"fail"); exit(-1); //.blklab7 blklab7:; //assert } //fieldload %13 = %0 out : {int[][] args,{method(any)->() print,method(int[])->() print_s,method(any)->() println,method(int[])->() println_s} out} //fieldload %14 = %13 print_s : {method(any)->() print,method(int[])->() print_s,method(any)->() println,method(int[])->() println_s} //const %15 = [84,104,101,32,116,111,116,97,108,32,97,109,111,117,110,116,32,111,102,32,109,111,110,101,121,32,40,109,97,120,105,109,117,109,41,32,65,108,105,99,101,32,103,101,116,115,32,105,115,32] : int[] _DEALLOC(_15); _NEW_1DARRAY_int64_t(_15, 50, 0); _15[0] = 84; _15[1] = 104; _15[2] = 101; _15[3] = 32; _15[4] = 116; _15[5] = 111; _15[6] = 116; _15[7] = 97; _15[8] = 108; _15[9] = 32; _15[10] = 97; _15[11] = 109; _15[12] = 111; _15[13] = 117; _15[14] = 110; _15[15] = 116; _15[16] = 32; _15[17] = 111; _15[18] = 102; _15[19] = 32; _15[20] = 109; _15[21] = 111; _15[22] = 110; _15[23] = 101; _15[24] = 121; _15[25] = 32; _15[26] = 40; _15[27] = 109; _15[28] = 97; _15[29] = 120; _15[30] = 105; _15[31] = 109; _15[32] = 117; _15[33] = 109; _15[34] = 41; _15[35] = 32; _15[36] = 65; _15[37] = 108; _15[38] = 105; _15[39] = 99; _15[40] = 101; _15[41] = 32; _15[42] = 103; _15[43] = 101; _15[44] = 116; _15[45] = 115; _15[46] = 32; _15[47] = 105; _15[48] = 115; _15[49] = 32; _15_dealloc = true; //indirectinvoke () = %14 (%15) : method(int[])->() { printf_s(_15, _15_size); } //fieldload %16 = %0 out : {int[][] args,{method(any)->() print,method(int[])->() print_s,method(any)->() println,method(int[])->() println_s} out} //fieldload %17 = %16 println : {method(any)->() print,method(int[])->() print_s,method(any)->() println,method(int[])->() println_s} //indirectinvoke () = %17 (%3) : method(any)->() { printf("%"PRId64"\n", sum_alice); } //fieldload %18 = %0 out : {int[][] args,{method(any)->() print,method(int[])->() print_s,method(any)->() println,method(int[])->() println_s} out} //fieldload %19 = %18 println_s : {method(any)->() print,method(int[])->() print_s,method(any)->() println,method(int[])->() println_s} //const %20 = [80,97,115,115,32,67,111,105,110,71,97,109,101,32,116,101,115,116,32,99,97,115,101] : int[] _DEALLOC(_20); _NEW_1DARRAY_int64_t(_20, 23, 0); _20[0] = 80; _20[1] = 97; _20[2] = 115; _20[3] = 115; _20[4] = 32; _20[5] = 67; _20[6] = 111; _20[7] = 105; _20[8] = 110; _20[9] = 71; _20[10] = 97; _20[11] = 109; _20[12] = 101; _20[13] = 32; _20[14] = 116; _20[15] = 101; _20[16] = 115; _20[17] = 116; _20[18] = 32; _20[19] = 99; _20[20] = 97; _20[21] = 115; _20[22] = 101; _20_dealloc = true; //indirectinvoke () = %19 (%20) : method(int[])->() { println_s(_20, _20_size); } //return _DEALLOC(moves); _DEALLOC(_7); _DEALLOC(_8); _DEALLOC(_15); _DEALLOC(_20); exit(0); }
int main(int argc, char** args){ _DECL_1DARRAY(a); _DECL_DEALLOC(a); _DECL_1DARRAY(b); _DECL_DEALLOC(b); _DECL_1DARRAY(r); _DECL_DEALLOC(r); int64_t _4; int64_t _5; _DECL_1DARRAY(_6); _DECL_DEALLOC(_6); int64_t _7; int64_t _8; _DECL_1DARRAY(_9); _DECL_DEALLOC(_9); _DECL_1DARRAY(_10); _DECL_DEALLOC(_10); void* _11; int64_t _13; int64_t _14; void* _15; int64_t _17; int64_t _18; //const %4 = 2 : int _4 = 2; //const %5 = 2 : int _5 = 2; //arraygen %6 = [4; 5] : int[] _NEW1DARRAY_DEALLOC(_6, _4, _5, int64_t); //assign %1 = %6 : int[] // isCopyEliminated = true _TRANSFER_DEALLOC(a, _6); //const %7 = 2 : int _7 = 2; //const %8 = 2 : int _8 = 2; //arraygen %9 = [7; 8] : int[] _NEW1DARRAY_DEALLOC(_9, _7, _8, int64_t); //assign %2 = %9 : int[] // isCopyEliminated = true _TRANSFER_DEALLOC(b, _9); //invoke (%10) = (%1, %2) 2parameter_test4:func : function(int[],int[])->(int[]) { _FUNCTIONCALL_NO_COPY_PRE(_10, b, "false-NEVER_RETURN-true" , "func"); _FUNCTIONCALL_COPY_PRE(_10, a, "false-MAYBE_RETURN-true" , "func"); _DEALLOC(_10); void* tmp_a; _COPY_1DARRAY_PARAM(a, tmp_a, int64_t); // isCopyEliminated of '_1' = false // isCopyEliminated of '_2' = true _10 = _func_(tmp_a, a_size, b, b_size, _1DARRAYSIZE_PARAM_CALLBYREFERENCE(_10)); if( _10 == tmp_a ){ _10_dealloc = true; } else { _10_dealloc = true; free(tmp_a); } } //assign %3 = %10 : int[] // isCopyEliminated = true _TRANSFER_DEALLOC(r, _10); //fieldload %11 = %0 out : {int[][] args,{method(any)->() print,method(int[])->() print_s,method(any)->() println,method(int[])->() println_s} out} //fieldload %12 = %11 println : {method(any)->() print,method(int[])->() print_s,method(any)->() println,method(int[])->() println_s} //const %13 = 0 : int _13 = 0; //indexof %14 = %1, %13 : int[] _14=a[_13]; //indirectinvoke () = %12 (%14) : method(any)->() { printf("%"PRId64"\n", _14); } //fieldload %15 = %0 out : {int[][] args,{method(any)->() print,method(int[])->() print_s,method(any)->() println,method(int[])->() println_s} out} //fieldload %16 = %15 println : {method(any)->() print,method(int[])->() print_s,method(any)->() println,method(int[])->() println_s} //const %17 = 0 : int _17 = 0; //indexof %18 = %2, %17 : int[] _18=b[_17]; //indirectinvoke () = %16 (%18) : method(any)->() { printf("%"PRId64"\n", _18); } //return _DEALLOC(a); _DEALLOC(b); _DEALLOC(r); _DEALLOC(_6); _DEALLOC(_9); _DEALLOC(_10); exit(0); }
int main(int argc, char** args){ _DECL_1DARRAY(a); _DECL_DEALLOC(a); _DECL_1DARRAY(b); _DECL_DEALLOC(b); _DECL_1DARRAY(c); _DECL_DEALLOC(c); _DECL_1DARRAY(r); _DECL_DEALLOC(r); int64_t _5; int64_t _6; _DECL_1DARRAY(_7); _DECL_DEALLOC(_7); int64_t _8; int64_t _9; _DECL_1DARRAY(_10); _DECL_DEALLOC(_10); int64_t _11; int64_t _12; _DECL_1DARRAY(_13); _DECL_DEALLOC(_13); _DECL_1DARRAY(_14); _DECL_DEALLOC(_14); int64_t _15; int64_t _16; int64_t _17; int64_t _18; int64_t _19; int64_t _20; int64_t _21; int64_t _22; int64_t _23; int64_t _24; int64_t _25; int64_t _26; //const %5 = 1 : int _5 = 1; //const %6 = 2 : int _6 = 2; //arraygen %7 = [5; 6] : int[] _NEW1DARRAY_DEALLOC(_7, _5, _6, int64_t); //assign %1 = %7 : int[] // isCopyEliminated = true _TRANSFER_DEALLOC(a, _7); //const %8 = 2 : int _8 = 2; //const %9 = 2 : int _9 = 2; //arraygen %10 = [8; 9] : int[] _NEW1DARRAY_DEALLOC(_10, _8, _9, int64_t); //assign %2 = %10 : int[] // isCopyEliminated = true _TRANSFER_DEALLOC(b, _10); //const %11 = 3 : int _11 = 3; //const %12 = 2 : int _12 = 2; //arraygen %13 = [11; 12] : int[] _NEW1DARRAY_DEALLOC(_13, _11, _12, int64_t); //assign %3 = %13 : int[] // isCopyEliminated = true _TRANSFER_DEALLOC(c, _13); //invoke (%14) = (%1, %2, %3) specialcase1:func : function(int[],int[],int[])->(int[]) { _FUNCTIONCALL_COPY_PRE(_14, c, 2, "liveness: c = true, readonly: c = false, return:c = MAYBE_RETURN" , "func"); _FUNCTIONCALL_COPY_PRE(_14, b, 1, "liveness: b = true, readonly: b = false, return:b = MAYBE_RETURN" , "func"); _FUNCTIONCALL_COPY_PRE(_14, a, 0, "liveness: a = true, readonly: a = false, return:a = MAYBE_RETURN" , "func"); _DEALLOC(_14); void* tmp_a; _COPY_1DARRAY_PARAM(a, tmp_a, int64_t); void* tmp_b; _COPY_1DARRAY_PARAM(b, tmp_b, int64_t); void* tmp_c; _COPY_1DARRAY_PARAM(c, tmp_c, int64_t); // isCopyEliminated of 'a at 0' = false // isCopyEliminated of 'b at 1' = false // isCopyEliminated of 'c at 2' = false _14 = _func_(tmp_a, a_size, tmp_b, b_size, tmp_c, c_size, _1DARRAYSIZE_PARAM_CALLBYREFERENCE(_14)); if( _14 == tmp_a ){ _14_dealloc = true; free(tmp_b); free(tmp_c); } else if( _14 == tmp_b ){ _14_dealloc = true; free(tmp_a); free(tmp_c); } else if( _14 == tmp_c ){ _14_dealloc = true; free(tmp_a); free(tmp_b); } else { _14_dealloc = true; free(tmp_a); free(tmp_b); free(tmp_c); } } //assign %4 = %14 : int[] // isCopyEliminated = true _TRANSFER_DEALLOC(r, _14); //assert { //const %15 = 0 : int _15 = 0; //indexof %16 = %1, %15 : int[] _16=a[_15]; //const %17 = 1 : int _17 = 1; //ifeq %16, %17 goto blklab2 : int if(_16==_17){goto blklab2;} //fail fprintf(stderr,"fail"); exit(-1); //.blklab2 blklab2:; //assert } //assert { //const %18 = 0 : int _18 = 0; //indexof %19 = %2, %18 : int[] _19=b[_18]; //const %20 = 2 : int _20 = 2; //ifeq %19, %20 goto blklab3 : int if(_19==_20){goto blklab3;} //fail fprintf(stderr,"fail"); exit(-1); //.blklab3 blklab3:; //assert } //assert { //const %21 = 0 : int _21 = 0; //indexof %22 = %3, %21 : int[] _22=c[_21]; //const %23 = 3 : int _23 = 3; //ifeq %22, %23 goto blklab4 : int if(_22==_23){goto blklab4;} //fail fprintf(stderr,"fail"); exit(-1); //.blklab4 blklab4:; //assert } //assert { //const %24 = 0 : int _24 = 0; //indexof %25 = %4, %24 : int[] _25=r[_24]; //const %26 = 3 : int _26 = 3; //ifeq %25, %26 goto blklab5 : int if(_25==_26){goto blklab5;} //fail fprintf(stderr,"fail"); exit(-1); //.blklab5 blklab5:; //assert } //return _DEALLOC(a); _DEALLOC(b); _DEALLOC(c); _DEALLOC(r); _DEALLOC(_7); _DEALLOC(_10); _DEALLOC(_13); _DEALLOC(_14); exit(0); }
int main(int argc, char** args){ _DECL_1DARRAY(till); _DECL_DEALLOC(till); int64_t _2; int64_t _3; int64_t _4; int64_t _5; int64_t _6; int64_t _7; int64_t _8; int64_t _9; _DECL_1DARRAY(_10); _DECL_DEALLOC(_10); void* _11; _DECL_1DARRAY(_13); _DECL_DEALLOC(_13); void* _14; _DECL_1DARRAY(_16); _DECL_DEALLOC(_16); //const %2 = 5 : int _2 = 5; //const %3 = 3 : int _3 = 3; //const %4 = 3 : int _4 = 3; //const %5 = 1 : int _5 = 1; //const %6 = 1 : int _6 = 1; //const %7 = 3 : int _7 = 3; //const %8 = 0 : int _8 = 0; //const %9 = 0 : int _9 = 0; //newlist %10 = (%2, %3, %4, %5, %6, %7, %8, %9) : int[] _DEALLOC(_10); _NEW_1DARRAY_int64_t(_10, 8, 0); _10[0] = _2; _10[1] = _3; _10[2] = _4; _10[3] = _5; _10[4] = _6; _10[5] = _7; _10[6] = _8; _10[7] = _9; _10_dealloc = true; //assign %1 = %10 : int[] _ADD_DEALLOC(till, _10, int64_t); //fieldload %11 = %0 out : {int[][] args,{method(any)->() print,method(int[])->() print_s,method(any)->() println,method(int[])->() println_s} out} //fieldload %12 = %11 print_s : {method(any)->() print,method(int[])->() print_s,method(any)->() println,method(int[])->() println_s} //const %13 = [84,105,108,108,58,32] : int[] _DEALLOC(_13); _NEW_1DARRAY_int64_t(_13, 6, 0); _13[0] = 84; _13[1] = 105; _13[2] = 108; _13[3] = 108; _13[4] = 58; _13[5] = 32; _13_dealloc = true; //indirectinvoke () = %12 (%13) : method(int[])->() { printf_s(_13, _13_size); } //fieldload %14 = %0 out : {int[][] args,{method(any)->() print,method(int[])->() print_s,method(any)->() println,method(int[])->() println_s} out} //fieldload %15 = %14 println_s : {method(any)->() print,method(int[])->() print_s,method(any)->() println,method(int[])->() println_s} //invoke (%16) = (%1) ArrayAppend3:toString : function(ArrayAppend3:Cash)->(whiley/lang/ASCII:string) { _FUNCTIONCALL_COPY_PRE(_16, till, 0, "liveness: till = false, readonly: till = true, return:till = NEVER_RETURN" , "toString"); _DEALLOC(_16); void* tmp_c; _COPY_1DARRAY_PARAM(till, tmp_c, int64_t); _16 = _toString_(tmp_c, till_size, _1DARRAYSIZE_PARAM_CALLBYREFERENCE(_16)); _16_dealloc = true; free(tmp_c); } //indirectinvoke () = %15 (%16) : method(int[])->() { println_s(_16, _16_size); } //return _DEALLOC(till); _DEALLOC(_10); _DEALLOC(_13); _DEALLOC(_16); exit(0); }
int main(int argc, char** args){ FILE* file; int64_t width; int64_t height; _DECL_1DARRAY_BYTE(pixels); _DECL_DEALLOC(pixels); _DECL_1DARRAY_BYTE(newPixels); _DECL_DEALLOC(newPixels); void* _6; _DECL_DEALLOC(_6); _DECL_1DARRAY(_7); _DECL_DEALLOC(_7); int64_t _8; int64_t _9; _DECL_1DARRAY_BYTE(_10); _DECL_DEALLOC(_10); _DECL_1DARRAY_BYTE(_12); _DECL_DEALLOC(_12); //const %7 = [46,46,47,46,46,47,46,46,47,73,110,112,117,116,102,105,108,101,115,47,105,109,97,103,101,54,52,120,54,52,46,112,98,109] : int[] _DEALLOC(_7); _NEW_1DARRAY_int64_t(_7, 34, 0); _7[0] = 46; _7[1] = 46; _7[2] = 47; _7[3] = 46; _7[4] = 46; _7[5] = 47; _7[6] = 46; _7[7] = 46; _7[8] = 47; _7[9] = 73; _7[10] = 110; _7[11] = 112; _7[12] = 117; _7[13] = 116; _7[14] = 102; _7[15] = 105; _7[16] = 108; _7[17] = 101; _7[18] = 115; _7[19] = 47; _7[20] = 105; _7[21] = 109; _7[22] = 97; _7[23] = 103; _7[24] = 101; _7[25] = 54; _7[26] = 52; _7[27] = 120; _7[28] = 54; _7[29] = 52; _7[30] = 46; _7[31] = 112; _7[32] = 98; _7[33] = 109; _7_dealloc = true; //invoke (%6) = (%7) whiley/io/File:Reader : method(whiley/lang/ASCII:string)->(whiley/io/File:Reader) { _6 = Reader(_7, _7_size); } //assign %1 = %6 : {method()->(int) available,method()->() close,method()->(bool) hasMore,method(int)->(byte[]) read,method()->(byte[]) readAll} file = _6; //const %8 = 64 : int _8 = 64; //assign %2 = %8 : int width = _8; //const %9 = 64 : int _9 = 64; //assign %3 = %9 : int height = _9; //fieldload %11 = %1 readAll : {method()->(int) available,method()->() close,method()->(bool) hasMore,method(int)->(byte[]) read,method()->(byte[]) readAll} //indirectinvoke (%10) = %11 () : method()->(byte[]) { _10 = readAll(file, &_10_size); _10_dealloc = true; } //assign %4 = %10 : byte[] _ADD_DEALLOC(pixels, _10, BYTE); //invoke (%12) = (%4, %2, %3) SobelEdge:sobelEdgeDetection : function(byte[],int,int)->(byte[]) { _FUNCTIONCALL_COPY_PRE(_12, pixels, 0, "liveness: pixels = false, readonly: pixels = true, return:pixels = NEVER_RETURN" , "sobelEdgeDetection"); _DEALLOC(_12); void* tmp_pixels; _COPY_1DARRAY_PARAM(pixels, tmp_pixels, BYTE); _12 = _sobelEdgeDetection_(tmp_pixels, pixels_size, width, height, _1DARRAYSIZE_PARAM_CALLBYREFERENCE(_12)); _12_dealloc = true; free(tmp_pixels); } //assign %5 = %12 : byte[] _ADD_DEALLOC(newPixels, _12, BYTE); //invoke () = (%0, %2, %3, %5) SobelEdge:print_pbm : method(whiley/lang/System:Console,int,int,byte[])->() { _FUNCTIONCALL_COPY_PRE(, newPixels, 3, "liveness: newPixels = false, readonly: newPixels = true, return:newPixels = NEVER_RETURN" , "print_pbm"); void* tmp_pixels; _COPY_1DARRAY_PARAM(newPixels, tmp_pixels, BYTE); _print_pbm_(stdout, width, height, tmp_pixels, newPixels_size); free(tmp_pixels); } //return if(file != NULL){fclose(file); file = NULL;} _DEALLOC(pixels); _DEALLOC(newPixels); _DEALLOC(_7); _DEALLOC(_10); _DEALLOC(_12); exit(0); }
BYTE* _sobelEdgeDetection_(BYTE* pixels, size_t pixels_size, int64_t width, int64_t height, _DECL_1DARRAYSIZE_PARAM_CALLBYREFERENCE){ _DECL_DEALLOC(pixels); _DECL_1DARRAY_BYTE(_3); _DECL_DEALLOC(_3); int64_t size; _DECL_1DARRAY_BYTE(newPixels); _DECL_DEALLOC(newPixels); _DECL_1DARRAY(v_sobel); _DECL_DEALLOC(v_sobel); _DECL_1DARRAY(h_sobel); _DECL_DEALLOC(h_sobel); int64_t x; int64_t y; int64_t pos; int64_t v_g; int64_t h_g; int64_t t_g; int64_t _14; BYTE _15; _DECL_1DARRAY_BYTE(_16); _DECL_DEALLOC(_16); int64_t _17; int64_t _18; int64_t _19; int64_t _20; int64_t _21; int64_t _22; int64_t _23; int64_t _24; int64_t _25; int64_t _26; int64_t _27; int64_t _28; _DECL_1DARRAY(_29); _DECL_DEALLOC(_29); int64_t _30; int64_t _31; int64_t _32; int64_t _33; int64_t _34; int64_t _35; int64_t _36; int64_t _37; int64_t _38; int64_t _39; int64_t _40; int64_t _41; _DECL_1DARRAY(_42); _DECL_DEALLOC(_42); int64_t _43; int64_t _44; int64_t _45; int64_t _46; int64_t _47; int64_t _48; int64_t _49; int64_t _50; int64_t _51; int64_t _52; BYTE _53; int64_t _54; int64_t _55; int64_t _56; int64_t _57; //mul %14 = %1, %2 : int _14=width*height; //assign %4 = %14 : int size = _14; //const %15 = 00100000b : byte _15 = 0b00100000; //arraygen %16 = [15; 4] : byte[] _NEW1DARRAY_DEALLOC(_16, _15, size, BYTE); //assign %5 = %16 : byte[] _ADD_DEALLOC(newPixels, _16, BYTE); //const %17 = 1 : int _17 = 1; //neg %18 = %17 : int _18= -_17; //const %19 = 0 : int _19 = 0; //const %20 = 1 : int _20 = 1; //const %21 = 2 : int _21 = 2; //neg %22 = %21 : int _22= -_21; //const %23 = 0 : int _23 = 0; //const %24 = 2 : int _24 = 2; //const %25 = 1 : int _25 = 1; //neg %26 = %25 : int _26= -_25; //const %27 = 0 : int _27 = 0; //const %28 = 1 : int _28 = 1; //newlist %29 = (%18, %19, %20, %22, %23, %24, %26, %27, %28) : int[] _DEALLOC(_29); _NEW_1DARRAY_int64_t(_29, 9, 0); _29[0] = _18; _29[1] = _19; _29[2] = _20; _29[3] = _22; _29[4] = _23; _29[5] = _24; _29[6] = _26; _29[7] = _27; _29[8] = _28; _29_dealloc = true; //assign %6 = %29 : int[] _ADD_DEALLOC(v_sobel, _29, int64_t); //const %30 = 1 : int _30 = 1; //const %31 = 2 : int _31 = 2; //const %32 = 1 : int _32 = 1; //const %33 = 0 : int _33 = 0; //const %34 = 0 : int _34 = 0; //const %35 = 0 : int _35 = 0; //const %36 = 1 : int _36 = 1; //neg %37 = %36 : int _37= -_36; //const %38 = 2 : int _38 = 2; //neg %39 = %38 : int _39= -_38; //const %40 = 1 : int _40 = 1; //neg %41 = %40 : int _41= -_40; //newlist %42 = (%30, %31, %32, %33, %34, %35, %37, %39, %41) : int[] _DEALLOC(_42); _NEW_1DARRAY_int64_t(_42, 9, 0); _42[0] = _30; _42[1] = _31; _42[2] = _32; _42[3] = _33; _42[4] = _34; _42[5] = _35; _42[6] = _37; _42[7] = _39; _42[8] = _41; _42_dealloc = true; //assign %7 = %42 : int[] _ADD_DEALLOC(h_sobel, _42, int64_t); //const %43 = 0 : int _43 = 0; //assign %8 = %43 : int x = _43; //loop (%5, %8, %9, %10, %11, %12, %13, %44, %45, %46, %47, %48, %49, %50, %51, %52, %53, %54, %55, %56, %57) while(true){ //ifge %8, %1 goto blklab8 : int if(x>=width){goto blklab8;} //const %44 = 0 : int _44 = 0; //assign %9 = %44 : int y = _44; //loop (%5, %9, %10, %11, %12, %13, %45, %46, %47, %48, %49, %50, %51, %52, %53, %54, %55) while(true){ //ifge %9, %2 goto blklab10 : int if(y>=height){goto blklab10;} //mul %45 = %9, %1 : int _45=y*width; //add %46 = %45, %8 : int _46=_45+x; //assign %10 = %46 : int pos = _46; //invoke (%47) = (%0, %1, %2, %8, %9, %6) SobelEdge:convolution : function(byte[],int,int,int,int,int[])->(int) { _FUNCTIONCALL_COPY_PRE(_47, v_sobel, 5, "liveness: v_sobel = true, readonly: v_sobel = true, return:v_sobel = NEVER_RETURN" , "convolution"); _FUNCTIONCALL_COPY_PRE(_47, pixels, 0, "liveness: pixels = true, readonly: pixels = true, return:pixels = NEVER_RETURN" , "convolution"); void* tmp_pixels; _COPY_1DARRAY_PARAM(pixels, tmp_pixels, BYTE); void* tmp_kernel; _COPY_1DARRAY_PARAM(v_sobel, tmp_kernel, int64_t); _47 = _convolution_(tmp_pixels, pixels_size, width, height, x, y, tmp_kernel, v_sobel_size); free(tmp_pixels); free(tmp_kernel); } //assign %11 = %47 : int v_g = _47; //invoke (%48) = (%0, %1, %2, %8, %9, %7) SobelEdge:convolution : function(byte[],int,int,int,int,int[])->(int) { _FUNCTIONCALL_COPY_PRE(_48, h_sobel, 5, "liveness: h_sobel = true, readonly: h_sobel = true, return:h_sobel = NEVER_RETURN" , "convolution"); _FUNCTIONCALL_COPY_PRE(_48, pixels, 0, "liveness: pixels = true, readonly: pixels = true, return:pixels = NEVER_RETURN" , "convolution"); void* tmp_pixels; _COPY_1DARRAY_PARAM(pixels, tmp_pixels, BYTE); void* tmp_kernel; _COPY_1DARRAY_PARAM(h_sobel, tmp_kernel, int64_t); _48 = _convolution_(tmp_pixels, pixels_size, width, height, x, y, tmp_kernel, h_sobel_size); free(tmp_pixels); free(tmp_kernel); } //assign %12 = %48 : int h_g = _48; //invoke (%49) = (%11) whiley/lang/Math:abs : function(int)->(int) { _49 = abs(v_g); } //invoke (%50) = (%12) whiley/lang/Math:abs : function(int)->(int) { _50 = abs(h_g); } //add %51 = %49, %50 : int _51=_49+_50; //assign %13 = %51 : int t_g = _51; //const %52 = 800 : int _52 = 800; //ifle %13, %52 goto blklab12 : int if(t_g<=_52){goto blklab12;} //const %53 = 01100010b : byte _53 = 0b01100010; //update %5[%10] = %53 : byte[] -> byte[] newPixels[pos] = _53; //.blklab12 blklab12:; //const %54 = 1 : int _54 = 1; //add %55 = %9, %54 : int _55=y+_54; //assign %9 = %55 : int y = _55; //.blklab11 blklab11:; } //.blklab10 blklab10:; //const %56 = 1 : int _56 = 1; //add %57 = %8, %56 : int _57=x+_56; //assign %8 = %57 : int x = _57; //.blklab9 blklab9:; } //.blklab8 blklab8:; //return %5 _DEALLOC(pixels); _DEALLOC(_3); _DEALLOC(v_sobel); _DEALLOC(h_sobel); _DEALLOC(_16); _DEALLOC(_29); _DEALLOC(_42); _UPDATE_1DARRAYSZIE_PARAM_CALLBYREFERENCE(newPixels); return newPixels; //return }
int main(int argc, char** args){ _DECL_1DARRAY(a); _DECL_DEALLOC(a); _DECL_1DARRAY(b); _DECL_DEALLOC(b); _DECL_1DARRAY(c); _DECL_DEALLOC(c); int64_t _4; int64_t _5; int64_t _6; int64_t _7; int64_t _8; _DECL_1DARRAY(_9); _DECL_DEALLOC(_9); _DECL_1DARRAY(_10); _DECL_DEALLOC(_10); int64_t _11; int64_t _12; int64_t _13; void* _14; _DECL_1DARRAY(_16); _DECL_DEALLOC(_16); void* _17; int64_t _19; int64_t _20; int64_t _21; int64_t _22; int64_t _23; int64_t _24; int64_t _25; _DECL_1DARRAY(_26); _DECL_DEALLOC(_26); _DECL_1DARRAY(_27); _DECL_DEALLOC(_27); int64_t _28; int64_t _29; int64_t _30; int64_t _31; int64_t _32; int64_t _33; void* _34; _DECL_1DARRAY(_36); _DECL_DEALLOC(_36); void* _37; int64_t _39; int64_t _40; void* _41; _DECL_1DARRAY(_43); _DECL_DEALLOC(_43); void* _44; int64_t _46; int64_t _47; //const %4 = 0 : int _4 = 0; //const %5 = 0 : int _5 = 0; //const %6 = 0 : int _6 = 0; //const %7 = 0 : int _7 = 0; //const %8 = 0 : int _8 = 0; //newlist %9 = (%4, %5, %6, %7, %8) : int[] _DEALLOC(_9); _NEW_1DARRAY_int64_t(_9, 5, 0); _9[0] = _4; _9[1] = _5; _9[2] = _6; _9[3] = _7; _9[4] = _8; _9_dealloc = true; //assign %1 = %9 : int[] // isCopyEliminated = true _TRANSFER_DEALLOC(a, _9); //invoke (%10) = (%1) FunctionCall3:func : function(int[])->(int[]) { _FUNCTIONCALL_NO_COPY_PRE(_10, a, 0, "liveness: a = false, readonly: a = false, return:a = MAYBE_RETURN" , "func"); _DEALLOC(_10); // isCopyEliminated of 'a at 0' = true _10 = _func_(a, a_size, _1DARRAYSIZE_PARAM_CALLBYREFERENCE(_10)); if( _10 == a ){ _10_dealloc = a_dealloc; a_dealloc = false; } else { _10_dealloc = true; } } //assign %1 = %10 : int[] // isCopyEliminated = true _TRANSFER_DEALLOC(a, _10); //assert { //const %11 = 2 : int _11 = 2; //indexof %12 = %1, %11 : int[] _12=a[_11]; //const %13 = 0 : int _13 = 0; //ifeq %12, %13 goto blklab0 : int if(_12==_13){goto blklab0;} //fail fprintf(stderr,"fail"); exit(-1); //.blklab0 blklab0:; //assert } //fieldload %14 = %0 out : {int[][] args,{method(any)->() print,method(int[])->() print_s,method(any)->() println,method(int[])->() println_s} out} //fieldload %15 = %14 print_s : {method(any)->() print,method(int[])->() print_s,method(any)->() println,method(int[])->() println_s} //const %16 = [97,91,50,93,61] : int[] _DEALLOC(_16); _NEW_1DARRAY_int64_t(_16, 5, 0); _16[0] = 97; _16[1] = 91; _16[2] = 50; _16[3] = 93; _16[4] = 61; _16_dealloc = true; //indirectinvoke () = %15 (%16) : method(int[])->() { printf_s(_16, _16_size); } //fieldload %17 = %0 out : {int[][] args,{method(any)->() print,method(int[])->() print_s,method(any)->() println,method(int[])->() println_s} out} //fieldload %18 = %17 println : {method(any)->() print,method(int[])->() print_s,method(any)->() println,method(int[])->() println_s} //const %19 = 2 : int _19 = 2; //indexof %20 = %1, %19 : int[] _20=a[_19]; //indirectinvoke () = %18 (%20) : method(any)->() { printf("%"PRId64"\n", _20); } //const %21 = 0 : int _21 = 0; //const %22 = 0 : int _22 = 0; //const %23 = 0 : int _23 = 0; //const %24 = 0 : int _24 = 0; //const %25 = 0 : int _25 = 0; //newlist %26 = (%21, %22, %23, %24, %25) : int[] _DEALLOC(_26); _NEW_1DARRAY_int64_t(_26, 5, 0); _26[0] = _21; _26[1] = _22; _26[2] = _23; _26[3] = _24; _26[4] = _25; _26_dealloc = true; //assign %2 = %26 : int[] // isCopyEliminated = true _TRANSFER_DEALLOC(b, _26); //invoke (%27) = (%2) FunctionCall3:func : function(int[])->(int[]) { _FUNCTIONCALL_COPY_PRE(_27, b, 0, "liveness: b = true, readonly: b = false, return:b = MAYBE_RETURN" , "func"); _DEALLOC(_27); void* tmp_s; _COPY_1DARRAY_PARAM(b, tmp_s, int64_t); // isCopyEliminated of 'b at 0' = false _27 = _func_(tmp_s, b_size, _1DARRAYSIZE_PARAM_CALLBYREFERENCE(_27)); if( _27 == tmp_s ){ _27_dealloc = true; } else { _27_dealloc = true; free(tmp_s); } } //assign %3 = %27 : int[] // isCopyEliminated = true _TRANSFER_DEALLOC(c, _27); //assert { //const %28 = 2 : int _28 = 2; //indexof %29 = %2, %28 : int[] _29=b[_28]; //const %30 = 0 : int _30 = 0; //ifeq %29, %30 goto blklab1 : int if(_29==_30){goto blklab1;} //fail fprintf(stderr,"fail"); exit(-1); //.blklab1 blklab1:; //assert } //assert { //const %31 = 2 : int _31 = 2; //indexof %32 = %3, %31 : int[] _32=c[_31]; //const %33 = 0 : int _33 = 0; //ifeq %32, %33 goto blklab2 : int if(_32==_33){goto blklab2;} //fail fprintf(stderr,"fail"); exit(-1); //.blklab2 blklab2:; //assert } //fieldload %34 = %0 out : {int[][] args,{method(any)->() print,method(int[])->() print_s,method(any)->() println,method(int[])->() println_s} out} //fieldload %35 = %34 print_s : {method(any)->() print,method(int[])->() print_s,method(any)->() println,method(int[])->() println_s} //const %36 = [98,91,50,93,61] : int[] _DEALLOC(_36); _NEW_1DARRAY_int64_t(_36, 5, 0); _36[0] = 98; _36[1] = 91; _36[2] = 50; _36[3] = 93; _36[4] = 61; _36_dealloc = true; //indirectinvoke () = %35 (%36) : method(int[])->() { printf_s(_36, _36_size); } //fieldload %37 = %0 out : {int[][] args,{method(any)->() print,method(int[])->() print_s,method(any)->() println,method(int[])->() println_s} out} //fieldload %38 = %37 println : {method(any)->() print,method(int[])->() print_s,method(any)->() println,method(int[])->() println_s} //const %39 = 2 : int _39 = 2; //indexof %40 = %2, %39 : int[] _40=b[_39]; //indirectinvoke () = %38 (%40) : method(any)->() { printf("%"PRId64"\n", _40); } //fieldload %41 = %0 out : {int[][] args,{method(any)->() print,method(int[])->() print_s,method(any)->() println,method(int[])->() println_s} out} //fieldload %42 = %41 print_s : {method(any)->() print,method(int[])->() print_s,method(any)->() println,method(int[])->() println_s} //const %43 = [99,91,50,93,61] : int[] _DEALLOC(_43); _NEW_1DARRAY_int64_t(_43, 5, 0); _43[0] = 99; _43[1] = 91; _43[2] = 50; _43[3] = 93; _43[4] = 61; _43_dealloc = true; //indirectinvoke () = %42 (%43) : method(int[])->() { printf_s(_43, _43_size); } //fieldload %44 = %0 out : {int[][] args,{method(any)->() print,method(int[])->() print_s,method(any)->() println,method(int[])->() println_s} out} //fieldload %45 = %44 println : {method(any)->() print,method(int[])->() print_s,method(any)->() println,method(int[])->() println_s} //const %46 = 2 : int _46 = 2; //indexof %47 = %3, %46 : int[] _47=c[_46]; //indirectinvoke () = %45 (%47) : method(any)->() { printf("%"PRId64"\n", _47); } //return _DEALLOC(a); _DEALLOC(b); _DEALLOC(c); _DEALLOC(_9); _DEALLOC(_10); _DEALLOC(_16); _DEALLOC(_26); _DEALLOC(_27); _DEALLOC(_36); _DEALLOC(_43); exit(0); }
BYTE* _decompress_(BYTE* data, size_t data_size, _DECL_1DARRAYSIZE_PARAM_CALLBYREFERENCE){ _DECL_DEALLOC(data); _DECL_1DARRAY_BYTE(output); _DECL_DEALLOC(output); int64_t pos; BYTE header; BYTE item; int64_t offset; int64_t len; int64_t start; int64_t i; BYTE _9; int64_t _10; _DECL_1DARRAY_BYTE(_11); _DECL_DEALLOC(_11); int64_t _12; int64_t _13; int64_t _14; int64_t _15; BYTE _16; int64_t _17; int64_t _18; BYTE _19; int64_t _20; int64_t _21; BYTE _22; _DECL_1DARRAY_BYTE(_23); _DECL_DEALLOC(_23); int64_t _24; int64_t _25; int64_t _26; int64_t _27; int64_t _28; BYTE _29; _DECL_1DARRAY_BYTE(_30); _DECL_DEALLOC(_30); int64_t _31; int64_t _32; //const %9 = 00000000b : byte _9 = 0b00000000; //const %10 = 0 : int _10 = 0; //arraygen %11 = [9; 10] : byte[] _NEW1DARRAY_DEALLOC(_11, _9, _10, BYTE); //assign %1 = %11 : byte[] _ADD_DEALLOC(output, _11, BYTE); //const %12 = 0 : int _12 = 0; //assign %2 = %12 : int pos = _12; //loop (%1, %2, %3, %4, %5, %6, %7, %8, %13, %14, %15, %16, %17, %18, %19, %20, %21, %22, %23, %24, %25, %26, %27, %28, %29, %30, %31, %32) while(true){ //const %13 = 1 : int _13 = 1; //add %14 = %2, %13 : int _14=pos+_13; //lengthof %15 = %0 : byte[] _15 = data_size; //ifge %14, %15 goto blklab3 : int if(_14>=_15){goto blklab3;} //indexof %16 = %0, %2 : byte[] _16=data[pos]; //assign %3 = %16 : byte header = _16; //const %17 = 1 : int _17 = 1; //add %18 = %2, %17 : int _18=pos+_17; //indexof %19 = %0, %18 : byte[] _19=data[_18]; //assign %4 = %19 : byte item = _19; //const %20 = 2 : int _20 = 2; //add %21 = %2, %20 : int _21=pos+_20; //assign %2 = %21 : int pos = _21; //const %22 = 00000000b : byte _22 = 0b00000000; //ifne %3, %22 goto blklab5 : byte if(header!=_22){goto blklab5;} //invoke (%23) = (%1, %4) lz77_decompress:append : function(byte[],byte)->(byte[]) { _FUNCTIONCALL_COPY_PRE(_23, output, 0, "liveness: output = false, readonly: output = true, return:output = NEVER_RETURN" , "append"); _DEALLOC(_23); void* tmp_items; _COPY_1DARRAY_PARAM(output, tmp_items, BYTE); _23 = _append_(tmp_items, output_size, item, _1DARRAYSIZE_PARAM_CALLBYREFERENCE(_23)); _23_dealloc = true; free(tmp_items); } //assign %1 = %23 : byte[] _ADD_DEALLOC(output, _23, BYTE); //goto blklab6 goto blklab6; //.blklab5 blklab5:; //invoke (%24) = (%3) whiley/lang/Byte:toUnsignedInt : function(byte)->(whiley/lang/Int:uint) { _24 = (unsigned int)header; } //assign %5 = %24 : int offset = _24; //invoke (%25) = (%4) whiley/lang/Byte:toUnsignedInt : function(byte)->(whiley/lang/Int:uint) { _25 = (unsigned int)item; } //assign %6 = %25 : int len = _25; //lengthof %26 = %1 : byte[] _26 = output_size; //sub %27 = %26, %5 : int _27=_26-offset; //assign %7 = %27 : int start = _27; //assign %8 = %7 : int i = start; //loop (%1, %4, %8, %28, %29, %30, %31, %32) while(true){ //add %28 = %7, %6 : int _28=start+len; //ifge %8, %28 goto blklab7 : int if(i>=_28){goto blklab7;} //indexof %29 = %1, %8 : byte[] _29=output[i]; //assign %4 = %29 : byte item = _29; //invoke (%30) = (%1, %4) lz77_decompress:append : function(byte[],byte)->(byte[]) { _FUNCTIONCALL_COPY_PRE(_30, output, 0, "liveness: output = false, readonly: output = true, return:output = NEVER_RETURN" , "append"); _DEALLOC(_30); void* tmp_items; _COPY_1DARRAY_PARAM(output, tmp_items, BYTE); _30 = _append_(tmp_items, output_size, item, _1DARRAYSIZE_PARAM_CALLBYREFERENCE(_30)); _30_dealloc = true; free(tmp_items); } //assign %1 = %30 : byte[] _ADD_DEALLOC(output, _30, BYTE); //const %31 = 1 : int _31 = 1; //add %32 = %8, %31 : int _32=i+_31; //assign %8 = %32 : int i = _32; //.blklab8 blklab8:; } //.blklab7 blklab7:; //.blklab6 blklab6:; //.blklab4 blklab4:; } //.blklab3 blklab3:; //return %1 _DEALLOC(data); _DEALLOC(_11); _DEALLOC(_23); _DEALLOC(_30); _UPDATE_1DARRAYSZIE_PARAM_CALLBYREFERENCE(output); return output; //return }
int main(int argc, char** args){ FILE* file; _DECL_1DARRAY_BYTE(input_data); _DECL_DEALLOC(input_data); _DECL_1DARRAY_BYTE(decompress_data); _DECL_DEALLOC(decompress_data); void* _4; _DECL_DEALLOC(_4); _DECL_1DARRAY(_5); _DECL_DEALLOC(_5); _DECL_1DARRAY_BYTE(_6); _DECL_DEALLOC(_6); _DECL_1DARRAY_BYTE(_8); _DECL_DEALLOC(_8); void* _9; _DECL_1DARRAY(_11); _DECL_DEALLOC(_11); void* _12; _DECL_1DARRAY(_14); _DECL_DEALLOC(_14); void* _15; int64_t _17; void* _18; _DECL_1DARRAY(_20); _DECL_DEALLOC(_20); //const %5 = [46,46,47,46,46,47,46,46,47,73,110,112,117,116,102,105,108,101,115,47,115,109,97,108,108,46,100,97,116] : int[] _DEALLOC(_5); _NEW_1DARRAY_int64_t(_5, 29, 0); _5[0] = 46; _5[1] = 46; _5[2] = 47; _5[3] = 46; _5[4] = 46; _5[5] = 47; _5[6] = 46; _5[7] = 46; _5[8] = 47; _5[9] = 73; _5[10] = 110; _5[11] = 112; _5[12] = 117; _5[13] = 116; _5[14] = 102; _5[15] = 105; _5[16] = 108; _5[17] = 101; _5[18] = 115; _5[19] = 47; _5[20] = 115; _5[21] = 109; _5[22] = 97; _5[23] = 108; _5[24] = 108; _5[25] = 46; _5[26] = 100; _5[27] = 97; _5[28] = 116; _5_dealloc = true; //invoke (%4) = (%5) whiley/io/File:Reader : method(whiley/lang/ASCII:string)->(whiley/io/File:Reader) { _4 = Reader(_5, _5_size); } //assign %1 = %4 : {method()->(int) available,method()->() close,method()->(bool) hasMore,method(int)->(byte[]) read,method()->(byte[]) readAll} file = _4; //fieldload %7 = %1 readAll : {method()->(int) available,method()->() close,method()->(bool) hasMore,method(int)->(byte[]) read,method()->(byte[]) readAll} //indirectinvoke (%6) = %7 () : method()->(byte[]) { _6 = readAll(file, &_6_size); _6_dealloc = true; } //assign %2 = %6 : byte[] _ADD_DEALLOC(input_data, _6, BYTE); //invoke (%8) = (%2) lz77_decompress:decompress : function(byte[])->(byte[]) { _FUNCTIONCALL_COPY_PRE(_8, input_data, 0, "liveness: input_data = false, readonly: input_data = true, return:input_data = NEVER_RETURN" , "decompress"); _DEALLOC(_8); void* tmp_data; _COPY_1DARRAY_PARAM(input_data, tmp_data, BYTE); _8 = _decompress_(tmp_data, input_data_size, _1DARRAYSIZE_PARAM_CALLBYREFERENCE(_8)); _8_dealloc = true; free(tmp_data); } //assign %3 = %8 : byte[] _ADD_DEALLOC(decompress_data, _8, BYTE); //fieldload %9 = %0 out : {int[][] args,{method(any)->() print,method(int[])->() print_s,method(any)->() println,method(int[])->() println_s} out} //fieldload %10 = %9 println_s : {method(any)->() print,method(int[])->() print_s,method(any)->() println,method(int[])->() println_s} //const %11 = [68,69,67,79,77,80,82,69,83,83,69,68,58,32,32,32] : int[] _DEALLOC(_11); _NEW_1DARRAY_int64_t(_11, 16, 0); _11[0] = 68; _11[1] = 69; _11[2] = 67; _11[3] = 79; _11[4] = 77; _11[5] = 80; _11[6] = 82; _11[7] = 69; _11[8] = 83; _11[9] = 83; _11[10] = 69; _11[11] = 68; _11[12] = 58; _11[13] = 32; _11[14] = 32; _11[15] = 32; _11_dealloc = true; //indirectinvoke () = %10 (%11) : method(int[])->() { println_s(_11, _11_size); } //fieldload %12 = %0 out : {int[][] args,{method(any)->() print,method(int[])->() print_s,method(any)->() println,method(int[])->() println_s} out} //fieldload %13 = %12 println_s : {method(any)->() print,method(int[])->() print_s,method(any)->() println,method(int[])->() println_s} //invoke (%14) = (%3) whiley/lang/ASCII:fromBytes : function(byte[])->(whiley/lang/ASCII:string) { _DEALLOC(_14); _14 = fromBytes(decompress_data, decompress_data_size); _14_size = decompress_data_size; _14_dealloc = true; } //indirectinvoke () = %13 (%14) : method(int[])->() { println_s(_14, _14_size); } //fieldload %15 = %0 out : {int[][] args,{method(any)->() print,method(int[])->() print_s,method(any)->() println,method(int[])->() println_s} out} //fieldload %16 = %15 print : {method(any)->() print,method(int[])->() print_s,method(any)->() println,method(int[])->() println_s} //lengthof %17 = %3 : byte[] _17 = decompress_data_size; //indirectinvoke () = %16 (%17) : method(any)->() { printf("%"PRId64, _17); } //fieldload %18 = %0 out : {int[][] args,{method(any)->() print,method(int[])->() print_s,method(any)->() println,method(int[])->() println_s} out} //fieldload %19 = %18 println_s : {method(any)->() print,method(int[])->() print_s,method(any)->() println,method(int[])->() println_s} //const %20 = [32,98,121,116,101,115] : int[] _DEALLOC(_20); _NEW_1DARRAY_int64_t(_20, 6, 0); _20[0] = 32; _20[1] = 98; _20[2] = 121; _20[3] = 116; _20[4] = 101; _20[5] = 115; _20_dealloc = true; //indirectinvoke () = %19 (%20) : method(int[])->() { println_s(_20, _20_size); } //fieldload %21 = %1 close : {method()->(int) available,method()->() close,method()->(bool) hasMore,method(int)->(byte[]) read,method()->(byte[]) readAll} //indirectinvoke () = %21 () : method()->() { fclose(file); file = NULL; } //return if(file != NULL){fclose(file); file = NULL;} _DEALLOC(input_data); _DEALLOC(decompress_data); _DEALLOC(_5); _DEALLOC(_6); _DEALLOC(_8); _DEALLOC(_11); _DEALLOC(_14); _DEALLOC(_20); exit(0); }