@@ -118,17 +118,17 @@ impl<'a, 'tcx, O:DataFlowOperator> pprust::PpAnn for DataFlowContext<'a, 'tcx, O
118
118
assert ! ( self . bits_per_id > 0 ) ;
119
119
let cfgidx = to_cfgidx_or_die ( id, & self . nodeid_to_index ) ;
120
120
let ( start, end) = self . compute_id_range ( cfgidx) ;
121
- let on_entry = self . on_entry . slice ( start, end) ;
121
+ let on_entry = & self . on_entry [ start.. end] ;
122
122
let entry_str = bits_to_string ( on_entry) ;
123
123
124
- let gens = self . gens . slice ( start, end) ;
124
+ let gens = & self . gens [ start.. end] ;
125
125
let gens_str = if gens. iter ( ) . any ( |& u| u != 0 ) {
126
126
format ! ( " gen: {}" , bits_to_string( gens) )
127
127
} else {
128
128
"" . to_string ( )
129
129
} ;
130
130
131
- let kills = self . kills . slice ( start, end) ;
131
+ let kills = & self . kills [ start .. end] ;
132
132
let kills_str = if kills. iter ( ) . any ( |& u| u != 0 ) {
133
133
format ! ( " kill: {}" , bits_to_string( kills) )
134
134
} else {
@@ -232,7 +232,7 @@ impl<'a, 'tcx, O:DataFlowOperator> DataFlowContext<'a, 'tcx, O> {
232
232
233
233
let cfgidx = to_cfgidx_or_die ( id, & self . nodeid_to_index ) ;
234
234
let ( start, end) = self . compute_id_range ( cfgidx) ;
235
- let gens = self . gens . slice_mut ( start, end) ;
235
+ let gens = & mut self . gens [ start.. end] ;
236
236
set_bit ( gens, bit) ;
237
237
}
238
238
@@ -245,7 +245,7 @@ impl<'a, 'tcx, O:DataFlowOperator> DataFlowContext<'a, 'tcx, O> {
245
245
246
246
let cfgidx = to_cfgidx_or_die ( id, & self . nodeid_to_index ) ;
247
247
let ( start, end) = self . compute_id_range ( cfgidx) ;
248
- let kills = self . kills . slice_mut ( start, end) ;
248
+ let kills = & mut self . kills [ start.. end] ;
249
249
set_bit ( kills, bit) ;
250
250
}
251
251
@@ -256,9 +256,9 @@ impl<'a, 'tcx, O:DataFlowOperator> DataFlowContext<'a, 'tcx, O> {
256
256
assert ! ( self . bits_per_id > 0 ) ;
257
257
258
258
let ( start, end) = self . compute_id_range ( cfgidx) ;
259
- let gens = self . gens . slice ( start, end) ;
259
+ let gens = & self . gens [ start.. end] ;
260
260
bitwise ( bits, gens, & Union ) ;
261
- let kills = self . kills . slice ( start, end) ;
261
+ let kills = & self . kills [ start.. end] ;
262
262
bitwise ( bits, kills, & Subtract ) ;
263
263
264
264
debug ! ( "{} apply_gen_kill(cfgidx={:?}, bits={}) [after]" ,
@@ -304,7 +304,7 @@ impl<'a, 'tcx, O:DataFlowOperator> DataFlowContext<'a, 'tcx, O> {
304
304
}
305
305
306
306
let ( start, end) = self . compute_id_range ( cfgidx) ;
307
- let on_entry = self . on_entry . slice ( start, end) ;
307
+ let on_entry = & self . on_entry [ start.. end] ;
308
308
let temp_bits;
309
309
let slice = match e {
310
310
Entry => on_entry,
@@ -336,7 +336,7 @@ impl<'a, 'tcx, O:DataFlowOperator> DataFlowContext<'a, 'tcx, O> {
336
336
337
337
let cfgidx = to_cfgidx_or_die ( id, & self . nodeid_to_index ) ;
338
338
let ( start, end) = self . compute_id_range ( cfgidx) ;
339
- let gens = self . gens . slice ( start, end) ;
339
+ let gens = & self . gens [ start.. end] ;
340
340
debug ! ( "{} each_gen_bit(id={}, gens={})" ,
341
341
self . analysis_name, id, bits_to_string( gens) ) ;
342
342
self . each_bit ( gens, f)
@@ -396,15 +396,15 @@ impl<'a, 'tcx, O:DataFlowOperator> DataFlowContext<'a, 'tcx, O> {
396
396
cfg. graph . each_edge ( |_edge_index, edge| {
397
397
let flow_exit = edge. source ( ) ;
398
398
let ( start, end) = self . compute_id_range ( flow_exit) ;
399
- let mut orig_kills = self . kills . slice ( start, end) . to_vec ( ) ;
399
+ let mut orig_kills = self . kills [ start.. end] . to_vec ( ) ;
400
400
401
401
let mut changed = false ;
402
402
for & node_id in edge. data . exiting_scopes . iter ( ) {
403
403
let opt_cfg_idx = self . nodeid_to_index . get ( & node_id) . map ( |& i|i) ;
404
404
match opt_cfg_idx {
405
405
Some ( cfg_idx) => {
406
406
let ( start, end) = self . compute_id_range ( cfg_idx) ;
407
- let kills = self . kills . slice ( start, end) ;
407
+ let kills = & self . kills [ start.. end] ;
408
408
if bitwise ( orig_kills. as_mut_slice ( ) , kills, & Union ) {
409
409
changed = true ;
410
410
}
@@ -418,7 +418,7 @@ impl<'a, 'tcx, O:DataFlowOperator> DataFlowContext<'a, 'tcx, O> {
418
418
}
419
419
420
420
if changed {
421
- let bits = self . kills . slice_mut ( start, end) ;
421
+ let bits = & mut self . kills [ start.. end] ;
422
422
debug ! ( "{} add_kills_from_flow_exits flow_exit={:?} bits={} [before]" ,
423
423
self . analysis_name, flow_exit, mut_bits_to_string( bits) ) ;
424
424
bits. clone_from_slice ( & orig_kills[ ] ) ;
@@ -487,7 +487,7 @@ impl<'a, 'b, 'tcx, O:DataFlowOperator> PropagationContext<'a, 'b, 'tcx, O> {
487
487
let ( start, end) = self . dfcx . compute_id_range ( node_index) ;
488
488
489
489
// Initialize local bitvector with state on-entry.
490
- in_out. clone_from_slice ( self . dfcx . on_entry . slice ( start, end) ) ;
490
+ in_out. clone_from_slice ( & self . dfcx . on_entry [ start.. end] ) ;
491
491
492
492
// Compute state on-exit by applying transfer function to
493
493
// state on-entry.
@@ -528,13 +528,13 @@ impl<'a, 'b, 'tcx, O:DataFlowOperator> PropagationContext<'a, 'b, 'tcx, O> {
528
528
let ( start, end) = self . dfcx . compute_id_range ( cfgidx) ;
529
529
let changed = {
530
530
// (scoping mutable borrow of self.dfcx.on_entry)
531
- let on_entry = self . dfcx . on_entry . slice_mut ( start, end) ;
531
+ let on_entry = & mut self . dfcx . on_entry [ start.. end] ;
532
532
bitwise ( on_entry, pred_bits, & self . dfcx . oper )
533
533
} ;
534
534
if changed {
535
535
debug ! ( "{} changed entry set for {:?} to {}" ,
536
536
self . dfcx. analysis_name, cfgidx,
537
- bits_to_string( self . dfcx. on_entry. slice ( start, end) ) ) ;
537
+ bits_to_string( & self . dfcx. on_entry[ start.. end] ) ) ;
538
538
self . changed = true ;
539
539
}
540
540
}
0 commit comments