@@ -95,7 +95,6 @@ state type crate_ctxt = rec(session::session sess,
95
95
ModuleRef llmod,
96
96
target_data td,
97
97
type_names tn,
98
- ValueRef crate_ptr ,
99
98
hashmap[ str, ValueRef ] externs ,
100
99
hashmap[ str, ValueRef ] intrinsics ,
101
100
hashmap[ ast:: def_id, ValueRef ] item_ids ,
@@ -482,31 +481,6 @@ fn T_chan(TypeRef t) -> TypeRef {
482
481
ret T_struct ( [ T_int ( ) ] ) ; // Refcount
483
482
}
484
483
485
- fn T_crate ( & type_names tn) -> TypeRef {
486
- auto s = "crate" ;
487
- if ( tn. name_has_type ( s) ) {
488
- ret tn. get_type ( s) ;
489
- }
490
-
491
- auto t = T_struct ( [ T_int ( ) , // ptrdiff_t image_base_off
492
- T_int ( ) , // uintptr_t self_addr
493
- T_int ( ) , // ptrdiff_t debug_abbrev_off
494
- T_int ( ) , // size_t debug_abbrev_sz
495
- T_int ( ) , // ptrdiff_t debug_info_off
496
- T_int ( ) , // size_t debug_info_sz
497
- T_int ( ) , // size_t activate_glue
498
- T_int ( ) , // size_t yield_glue
499
- T_int ( ) , // size_t unwind_glue
500
- T_int ( ) , // size_t pad
501
- T_int ( ) , // size_t pad
502
- T_int ( ) , // int n_rust_syms
503
- T_int ( ) , // int n_c_syms
504
- T_int ( ) // int n_libs
505
- ] ) ;
506
- tn. associate ( s, t) ;
507
- ret t;
508
- }
509
-
510
484
fn T_taskptr ( & type_names tn) -> TypeRef {
511
485
ret T_ptr ( T_task ( tn) ) ;
512
486
}
@@ -1670,11 +1644,11 @@ fn get_derived_tydesc(&@block_ctxt cx, &ty::t t, bool escapes,
1670
1644
T_ptr ( T_ptr ( T_tydesc ( bcx. fcx. lcx. ccx. tn) ) ) ) ;
1671
1645
auto td_val = bcx. build. Call ( bcx. fcx. lcx. ccx. upcalls. get_type_desc,
1672
1646
[ bcx. fcx. lltaskptr,
1673
- bcx . fcx . lcx . ccx . crate_ptr ,
1674
- sz. val,
1675
- align. val,
1676
- C_int ( ( 1 u + n_params) as int) ,
1677
- lltydescsptr] ) ;
1647
+ C_null ( T_ptr ( T_nil ( ) ) ) ,
1648
+ sz. val,
1649
+ align. val,
1650
+ C_int ( ( 1 u + n_params) as int) ,
1651
+ lltydescsptr] ) ;
1678
1652
v = td_val;
1679
1653
} else {
1680
1654
auto llparamtydescs = alloca( bcx,
@@ -7615,35 +7589,10 @@ fn i2p(ValueRef v, TypeRef t) -> ValueRef {
7615
7589
}
7616
7590
7617
7591
fn create_typedefs( & @crate_ctxt cx) {
7618
- llvm:: LLVMAddTypeName ( cx. llmod , str:: buf( "crate" ) , T_crate ( cx . tn) ) ;
7619
7592
llvm:: LLVMAddTypeName ( cx. llmod , str:: buf( "task" ) , T_task ( cx . tn) ) ;
7620
7593
llvm:: LLVMAddTypeName ( cx. llmod , str:: buf( "tydesc" ) , T_tydesc ( cx . tn) ) ;
7621
7594
}
7622
7595
7623
- fn create_crate_constant( ValueRef crate_ptr, @glue_fns glues) {
7624
-
7625
- let ValueRef crate_addr = p2i( crate_ptr) ;
7626
-
7627
- let ValueRef crate_val =
7628
- C_struct ( [ C_null ( T_int ( ) ) , // ptrdiff_t image_base_off
7629
- p2i( crate_ptr) , // uintptr_t self_addr
7630
- C_null ( T_int ( ) ) , // ptrdiff_t debug_abbrev_off
7631
- C_null ( T_int ( ) ) , // size_t debug_abbrev_sz
7632
- C_null ( T_int ( ) ) , // ptrdiff_t debug_info_off
7633
- C_null ( T_int ( ) ) , // size_t debug_info_sz
7634
- C_null ( T_int ( ) ) , // size_t pad
7635
- C_null ( T_int ( ) ) , // size_t pad2
7636
- C_null ( T_int ( ) ) , // size_t pad3
7637
- C_null ( T_int ( ) ) , // size_t pad4
7638
- C_null ( T_int ( ) ) , // size_t pad5
7639
- C_null ( T_int ( ) ) , // int n_rust_syms
7640
- C_null ( T_int ( ) ) , // int n_c_syms
7641
- C_null ( T_int ( ) ) // int n_libs
7642
- ] ) ;
7643
-
7644
- llvm:: LLVMSetInitializer ( crate_ptr, crate_val) ;
7645
- }
7646
-
7647
7596
fn find_main_fn ( & @crate_ctxt cx ) -> ValueRef {
7648
7597
auto e = sep ( ) + "main" ;
7649
7598
let ValueRef v = C_nil ( ) ;
@@ -7668,7 +7617,7 @@ fn find_main_fn(&@crate_ctxt cx) -> ValueRef {
7668
7617
fail;
7669
7618
}
7670
7619
7671
- fn trans_main_fn( @local_ctxt cx, ValueRef llcrate , ValueRef crate_map) {
7620
+ fn trans_main_fn( @local_ctxt cx, ValueRef crate_map) {
7672
7621
auto T_main_args = [ T_int ( ) , T_int ( ) ] ;
7673
7622
auto T_rust_start_args = [ T_int ( ) , T_int ( ) , T_int ( ) , T_int ( ) ] ;
7674
7623
@@ -7693,7 +7642,7 @@ fn trans_main_fn(@local_ctxt cx, ValueRef llcrate, ValueRef crate_map) {
7693
7642
// Emit the moral equivalent of:
7694
7643
//
7695
7644
// main(int argc, char **argv) {
7696
- // rust_start(&_rust.main, &crate, argc, argv);
7645
+ // rust_start(&_rust.main, argc, argv);
7697
7646
// }
7698
7647
//
7699
7648
@@ -8002,15 +7951,12 @@ fn make_common_glue(&session::session sess, &str output) {
8002
7951
llvm:: LLVMSetTarget ( llmod, str :: buf( x86:: get_target_triple( ) ) ) ;
8003
7952
auto td = mk_target_data( x86:: get_data_layout( ) ) ;
8004
7953
auto tn = mk_type_names( ) ;
8005
- let ValueRef crate_ptr =
8006
- llvm:: LLVMAddGlobal ( llmod, T_crate ( tn) , str :: buf( "rust_crate") ) ;
8007
7954
8008
7955
auto intrinsics = declare_intrinsics( llmod) ;
8009
7956
8010
7957
llvm:: LLVMSetModuleInlineAsm ( llmod, str :: buf( x86:: get_module_asm( ) ) ) ;
8011
7958
8012
7959
auto glues = make_glues( llmod, tn) ;
8013
- create_crate_constant( crate_ptr, glues) ;
8014
7960
8015
7961
link:: write:: run_passes( sess, llmod, output) ;
8016
7962
}
@@ -8076,8 +8022,6 @@ fn trans_crate(&session::session sess, &@ast::crate crate,
8076
8022
llvm:: LLVMSetTarget ( llmod, str :: buf( x86:: get_target_triple( ) ) ) ;
8077
8023
auto td = mk_target_data( x86:: get_data_layout( ) ) ;
8078
8024
auto tn = mk_type_names( ) ;
8079
- let ValueRef crate_ptr =
8080
- llvm:: LLVMAddGlobal ( llmod, T_crate ( tn) , str :: buf( "rust_crate") ) ;
8081
8025
8082
8026
auto intrinsics = declare_intrinsics( llmod) ;
8083
8027
@@ -8095,7 +8039,6 @@ fn trans_crate(&session::session sess, &@ast::crate crate,
8095
8039
llmod = llmod,
8096
8040
td = td,
8097
8041
tn = tn,
8098
- crate_ptr = crate_ptr,
8099
8042
externs = new_str_hash[ ValueRef ] ( ) ,
8100
8043
intrinsics = intrinsics,
8101
8044
item_ids = new_def_hash[ ValueRef ] ( ) ,
@@ -8135,7 +8078,7 @@ fn trans_crate(&session::session sess, &@ast::crate crate,
8135
8078
trans_vec_append_glue( cx, crate . span) ;
8136
8079
auto crate_map = create_crate_map( ccx) ;
8137
8080
if ( !sess. get_opts( ) . shared) {
8138
- trans_main_fn( cx, crate_ptr , crate_map) ;
8081
+ trans_main_fn( cx, crate_map) ;
8139
8082
}
8140
8083
8141
8084
emit_tydescs( ccx) ;
0 commit comments