mirror of
https://github.com/justinethier/cyclone.git
synced 2025-05-24 04:25:06 +02:00
WIP
This commit is contained in:
parent
dd772305b5
commit
139c342d3a
1 changed files with 12 additions and 2 deletions
|
@ -1556,8 +1556,10 @@ static void __lambda_6(void *data, int argc, object self_73218, object r_73143)
|
||||||
return_closcall3(data, __glo_ack, ((closureN)self_73218)->elements[0], ((closureN)self_73218)->elements[1], r_73143);;
|
return_closcall3(data, __glo_ack, ((closureN)self_73218)->elements[0], ((closureN)self_73218)->elements[1], r_73143);;
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO: update calls into here
|
|
||||||
//TODO: update closcall (BTW, these changes not taken into account on benchmarks, we could have even more slowdown (!!)
|
//TODO: update closcall (BTW, these changes not taken into account on benchmarks, we could have even more slowdown (!!)
|
||||||
|
// this ran in 56 secs with these closcall changes, which is an increase of 5 seconds (!!!)
|
||||||
|
// runtime with function call changes is... TBD
|
||||||
|
//
|
||||||
//TODO: how to call into host_lambda via switch (need to alloca gc args, for example). we never did that in fac_test
|
//TODO: how to call into host_lambda via switch (need to alloca gc args, for example). we never did that in fac_test
|
||||||
static void __host_lambda_1(void *data, int argc, closure self){
|
static void __host_lambda_1(void *data, int argc, closure self){
|
||||||
while(1) {
|
while(1) {
|
||||||
|
@ -1613,7 +1615,15 @@ object local_73293 = alloca(sizeof(complex_num_type)); object c_73294 = Cyc_fast
|
||||||
|
|
||||||
// TODO: this (and all calls to ack) need to stay internal to this function.
|
// TODO: this (and all calls to ack) need to stay internal to this function.
|
||||||
// but test with this first, then see what the speedup is (Hopefully there is some) to avoiding the fnc calls
|
// but test with this first, then see what the speedup is (Hopefully there is some) to avoiding the fnc calls
|
||||||
return_closcall3(data, __glo_ack, ((closureN)self /*self_73215*/)->elements[0], c_73294, stack[0] /*r_73129*/);;
|
//return_closcall3(data, __glo_ack, ((closureN)self /*self_73215*/)->elements[0], c_73294, stack[0] /*r_73129*/);;
|
||||||
|
((gc_thread_data *)data)->args = alloca(sizeof(object) * 3);
|
||||||
|
((gc_thread_data *)data)->args[0] = ((closureN)self /*self_73215*/)->elements[0];
|
||||||
|
((gc_thread_data *)data)->args[1] = c_73294;
|
||||||
|
((gc_thread_data *)data)->args[2] = stack[0];
|
||||||
|
((gc_thread_data *)data)->pc = 1;
|
||||||
|
self = __glo_ack;
|
||||||
|
argc = 3;
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
default: {
|
default: {
|
||||||
// raise error
|
// raise error
|
||||||
|
|
Loading…
Add table
Reference in a new issue