@@ -832,8 +832,11 @@ fn type_of_inner(@crate_ctxt cx, ty.t t) -> TypeRef {
832
832
}
833
833
834
834
assert ( llty as int != 0 ) ;
835
- llvm. LLVMAddTypeName ( cx. llmod , Str . buf ( ty. ty_to_short_str ( cx. tcx , t) ) ,
836
- llty) ;
835
+ if ( cx. sess . get_opts ( ) . save_temps ) {
836
+ llvm. LLVMAddTypeName ( cx. llmod ,
837
+ Str . buf ( ty. ty_to_short_str ( cx. tcx , t) ) ,
838
+ llty) ;
839
+ }
837
840
cx. lltypes . insert ( t, llty) ;
838
841
ret llty;
839
842
}
@@ -2146,6 +2149,12 @@ fn decr_refcnt_and_if_zero(@block_ctxt cx,
2146
2149
2147
2150
// Structural comparison: a rather involved form of glue.
2148
2151
2152
+ fn maybe_name_value ( & @crate_ctxt cx , ValueRef v, str s) {
2153
+ if ( cx. sess . get_opts ( ) . save_temps ) {
2154
+ llvm. LLVMSetValueName ( v, Str . buf ( s) ) ;
2155
+ }
2156
+ }
2157
+
2149
2158
fn make_cmp_glue ( @block_ctxt cx ,
2150
2159
ValueRef lhs0,
2151
2160
ValueRef rhs0,
@@ -2197,7 +2206,7 @@ fn make_cmp_glue(@block_ctxt cx,
2197
2206
*/
2198
2207
2199
2208
auto flag = alloca ( scx, T_i1 ( ) ) ;
2200
- llvm . LLVMSetValueName ( flag, Str . buf ( "flag" ) ) ;
2209
+ maybe_name_value ( cx . fcx . lcx . ccx , flag, "flag" ) ;
2201
2210
2202
2211
auto r;
2203
2212
if ( ty. type_is_sequence ( cx. fcx . lcx . ccx . tcx , t) ) {
@@ -2822,7 +2831,7 @@ fn maybe_call_dtor(@block_ctxt cx, ValueRef v) -> @block_ctxt {
2822
2831
auto self_t = llvm. LLVMGetElementType ( val_ty( v) ) ;
2823
2832
dtor_ptr = cx. build. BitCast ( dtor_ptr,
2824
2833
T_ptr ( T_dtor ( cx. fcx. lcx. ccx, self_t) ) ) ;
2825
-
2834
+
2826
2835
auto dtor_cx = new_sub_block_ctxt( cx, "dtor") ;
2827
2836
auto after_cx = new_sub_block_ctxt( cx, "after_dtor") ;
2828
2837
auto test = cx. build. ICmp ( lib. llvm. LLVMIntNE , dtor_ptr,
@@ -3967,7 +3976,7 @@ fn trans_pat_binding(@block_ctxt cx, @ast.pat pat,
3967
3976
auto rslt = alloc_ty( cx, t) ;
3968
3977
auto dst = rslt. val;
3969
3978
auto bcx = rslt. bcx;
3970
- llvm . LLVMSetValueName ( dst, Str . buf ( id ) ) ;
3979
+ maybe_name_value ( cx . fcx . lcx . ccx , dst, id ) ;
3971
3980
bcx. fcx. lllocals. insert( def_id, dst) ;
3972
3981
bcx. cleanups +=
3973
3982
vec( clean( bind drop_slot( _, dst, t) ) ) ;
@@ -4314,10 +4323,10 @@ fn trans_index(@block_ctxt cx, &ast.span sp, @ast.expr base,
4314
4323
auto unit_ty = node_ann_type( cx. fcx. lcx. ccx, ann) ;
4315
4324
auto unit_sz = size_of( bcx, unit_ty) ;
4316
4325
bcx = unit_sz. bcx;
4317
- llvm . LLVMSetValueName ( unit_sz. val, Str . buf ( "unit_sz") ) ;
4326
+ maybe_name_value ( cx . fcx . lcx . ccx , unit_sz. val, "unit_sz") ;
4318
4327
4319
4328
auto scaled_ix = bcx. build. Mul ( ix_val, unit_sz. val) ;
4320
- llvm . LLVMSetValueName ( scaled_ix, Str . buf ( "scaled_ix") ) ;
4329
+ maybe_name_value ( cx . fcx . lcx . ccx , scaled_ix, "scaled_ix") ;
4321
4330
4322
4331
auto lim = bcx. build. GEP ( v, vec( C_int ( 0 ) , C_int ( abi. vec_elt_fill) ) ) ;
4323
4332
lim = bcx. build. Load ( lim) ;
@@ -5834,10 +5843,11 @@ fn new_block_ctxt(@fn_ctxt cx, block_parent parent,
5834
5843
block_kind kind,
5835
5844
str name) -> @block_ctxt {
5836
5845
let vec[ cleanup] cleanups = vec( ) ;
5837
- let BasicBlockRef llbb =
5838
- llvm. LLVMAppendBasicBlock ( cx. llfn,
5839
- Str . buf( cx. lcx. ccx. names. next( name) ) ) ;
5840
-
5846
+ auto s = Str . buf( "") ;
5847
+ if ( cx. lcx. ccx. sess. get_opts( ) . save_temps) {
5848
+ s = Str . buf( cx. lcx. ccx. names. next( name) ) ;
5849
+ }
5850
+ let BasicBlockRef llbb = llvm. LLVMAppendBasicBlock ( cx. llfn, s) ;
5841
5851
ret @rec( llbb=llbb,
5842
5852
build=new_builder( llbb) ,
5843
5853
parent=parent,
@@ -7478,14 +7488,14 @@ fn trans_vec_append_glue(@local_ctxt cx) {
7478
7488
vec ( bcx. fcx . lltaskptr , lldst_vec,
7479
7489
vec_fill_adjusted ( bcx, llsrc_vec, llskipnull) ,
7480
7490
llcopy_dst_ptr, llvec_tydesc) ) ;
7481
- llvm . LLVMSetValueName ( llnew_vec, Str . buf ( "llnew_vec" ) ) ;
7491
+ maybe_name_value ( bcx . fcx . lcx . ccx , llnew_vec, "llnew_vec" ) ;
7482
7492
7483
7493
auto copy_dst_cx = new_sub_block_ctxt ( bcx, "copy new <- dst" ) ;
7484
7494
auto copy_src_cx = new_sub_block_ctxt ( bcx, "copy new <- src" ) ;
7485
7495
7486
7496
auto pp0 = alloca ( bcx, T_ptr ( T_i8 ( ) ) ) ;
7487
7497
bcx. build . Store ( vec_p1_adjusted ( bcx, llnew_vec, llskipnull) , pp0) ;
7488
- llvm . LLVMSetValueName ( pp0, Str . buf ( "pp0" ) ) ;
7498
+ maybe_name_value ( bcx . fcx . lcx . ccx , pp0, "pp0" ) ;
7489
7499
7490
7500
bcx. build . CondBr ( bcx. build . TruncOrBitCast
7491
7501
( bcx. build . Load ( llcopy_dst_ptr) ,
@@ -7501,19 +7511,19 @@ fn trans_vec_append_glue(@local_ctxt cx) {
7501
7511
ValueRef n_bytes) -> result {
7502
7512
7503
7513
auto src_lim = cx. build . GEP ( src, vec ( n_bytes) ) ;
7504
- llvm . LLVMSetValueName ( src_lim, Str . buf ( "src_lim" ) ) ;
7514
+ maybe_name_value ( cx . fcx . lcx . ccx , src_lim, "src_lim" ) ;
7505
7515
7506
7516
auto elt_llsz =
7507
7517
cx. build . Load ( cx. build . GEP ( elt_tydesc,
7508
7518
vec ( C_int ( 0 ) ,
7509
7519
C_int ( abi. tydesc_field_size ) ) ) ) ;
7510
- llvm . LLVMSetValueName ( elt_llsz, Str . buf ( "elt_llsz" ) ) ;
7520
+ maybe_name_value ( cx . fcx . lcx . ccx , elt_llsz, "elt_llsz" ) ;
7511
7521
7512
7522
auto elt_llalign =
7513
7523
cx. build . Load ( cx. build . GEP ( elt_tydesc,
7514
7524
vec ( C_int ( 0 ) ,
7515
7525
C_int ( abi. tydesc_field_align ) ) ) ) ;
7516
- llvm . LLVMSetValueName ( elt_llsz, Str . buf ( "elt_llalign" ) ) ;
7526
+ maybe_name_value ( cx . fcx . lcx . ccx , elt_llsz, "elt_llalign" ) ;
7517
7527
7518
7528
7519
7529
fn take_one ( ValueRef elt_tydesc ,
@@ -7535,7 +7545,7 @@ fn trans_vec_append_glue(@local_ctxt cx) {
7535
7545
// Copy any dst elements in, omitting null if doing str.
7536
7546
7537
7547
auto n_bytes = vec_fill_adjusted ( copy_dst_cx, lldst_vec, llskipnull) ;
7538
- llvm . LLVMSetValueName ( n_bytes, Str . buf ( "n_bytes" ) ) ;
7548
+ maybe_name_value ( copy_dst_cx . fcx . lcx . ccx , n_bytes, "n_bytes" ) ;
7539
7549
7540
7550
copy_dst_cx = copy_elts ( copy_dst_cx,
7541
7551
llelt_tydesc,
0 commit comments