@@ -5925,7 +5925,7 @@ fn trans_spawn(&@block_ctxt cx,
5925
5925
T_int ( ) ) ;
5926
5926
5927
5927
// Generate the wrapper function
5928
- auto wrapper = mk_spawn_wrapper( bcx, tname , func, args_ty) ;
5928
+ auto wrapper = mk_spawn_wrapper( bcx, func, args_ty) ;
5929
5929
bcx = wrapper. bcx;
5930
5930
auto llfnptr_i = bcx. build. PointerCast ( wrapper. val, T_int ( ) ) ;
5931
5931
// TODO: this next line might be necessary...
@@ -5944,7 +5944,6 @@ fn trans_spawn(&@block_ctxt cx,
5944
5944
}
5945
5945
5946
5946
fn mk_spawn_wrapper( & @block_ctxt cx,
5947
- & str tname,
5948
5947
& @ast:: expr func,
5949
5948
& ty:: t args_ty) -> result {
5950
5949
auto llmod = cx. fcx. lcx. ccx. llmod;
@@ -5956,30 +5955,20 @@ fn mk_spawn_wrapper(&@block_ctxt cx,
5956
5955
ty:: idx_nil,
5957
5956
0 u) ;
5958
5957
5959
- log_err #fmt( "wrapper args type: %s" ,
5960
- ty_str( cx. fcx. lcx. ccx. tn, args_ty_tref) ) ;
5961
- log_err #fmt( "wrapper fn desired type: %s" ,
5962
- ty_str( cx. fcx. lcx. ccx. tn, wrapper_fn_type) ) ;
5963
-
5964
5958
// TODO: construct a name based on tname
5965
- auto llfndecl = decl_fastcall_fn( llmod, "spawn_wrap" ,
5959
+ let str wrap_name = mangle_name_by_seq( cx. fcx. lcx. ccx,
5960
+ [ "" ] ,
5961
+ "spawn_wrapper" ) ;
5962
+ auto llfndecl = decl_fastcall_fn( llmod, wrap_name,
5966
5963
wrapper_fn_type) ;
5967
5964
5968
- log_err #fmt( "spawn wrapper decl type: %s" ,
5969
- val_str( cx. fcx. lcx. ccx. tn, llfndecl) ) ;
5970
-
5971
5965
auto fcx = new_fn_ctxt( cx. fcx. lcx, cx. sp, llfndecl) ;
5972
5966
5973
5967
auto fbcx = new_top_block_ctxt( fcx) ;
5974
5968
5975
- log_err #fmt( "spawn wrapper type: %s" , val_str( fcx. lcx. ccx. tn,
5976
- fcx. llfn) ) ;
5977
-
5978
5969
// 3u to skip the three implicit args
5979
5970
let ValueRef arg = llvm:: LLVMGetParam ( fcx. llfn, 3 u) ;
5980
5971
5981
- log_err #fmt( "arg type: %s" , val_str( fbcx. fcx. lcx. ccx. tn, arg) ) ;
5982
-
5983
5972
let vec[ ValueRef ] child_args =
5984
5973
[ llvm:: LLVMGetParam ( fcx. llfn, 0 u) ,
5985
5974
llvm:: LLVMGetParam ( fcx. llfn, 1 u) ,
@@ -5990,14 +5979,9 @@ fn mk_spawn_wrapper(&@block_ctxt cx,
5990
5979
case( ty:: ty_tup( ?elements) ) {
5991
5980
auto i = 0 ;
5992
5981
for ( ty:: mt m in elements) {
5993
- log_err #fmt( "GEP arg %d" , i) ;
5994
5982
auto src = fbcx. build. GEP ( arg, [ C_int ( 0 ) , C_int ( i) ] ) ;
5995
5983
i += 1 ;
5996
5984
5997
- log_err #fmt( "generating load of type %s" ,
5998
- val_str( fbcx. fcx. lcx. ccx. tn,
5999
- src) ) ;
6000
-
6001
5985
auto child_arg = fbcx. build. Load ( src) ;
6002
5986
6003
5987
child_args += [ child_arg] ;
@@ -6009,24 +5993,10 @@ fn mk_spawn_wrapper(&@block_ctxt cx,
6009
5993
auto fnptr = trans_lval( fbcx, func) . res;
6010
5994
fbcx = fnptr. bcx;
6011
5995
6012
- log_err "SPAWN 1" ;
6013
5996
auto llfnptr = fbcx. build. GEP ( fnptr. val,
6014
5997
[ C_int ( 0 ) , C_int ( 0 ) ] ) ;
6015
5998
auto llfn = fbcx. build. Load ( llfnptr) ;
6016
5999
6017
- log_err #fmt( "Generating call to child function: %s" ,
6018
- val_str( fbcx. fcx. lcx. ccx. tn,
6019
- llfn) ) ;
6020
-
6021
- auto i = 0 ;
6022
- for ( ValueRef v in child_args) {
6023
- log_err #fmt( "Arg %d: %s" ,
6024
- i,
6025
- val_str( fbcx. fcx. lcx. ccx. tn,
6026
- v) ) ;
6027
- i += 1 ;
6028
- }
6029
-
6030
6000
fbcx. build. FastCall ( llfn,
6031
6001
child_args) ;
6032
6002
fbcx. build. RetVoid ( ) ;
0 commit comments