@@ -249,8 +249,6 @@ enum VarKind {
249
249
struct IrMaps < ' tcx > {
250
250
tcx : TyCtxt < ' tcx > ,
251
251
body_owner : LocalDefId ,
252
- num_live_nodes : usize ,
253
- num_vars : usize ,
254
252
live_node_map : HirIdMap < LiveNode > ,
255
253
variable_map : HirIdMap < Variable > ,
256
254
capture_info_map : HirIdMap < Rc < Vec < CaptureInfo > > > ,
@@ -263,8 +261,6 @@ impl IrMaps<'tcx> {
263
261
IrMaps {
264
262
tcx,
265
263
body_owner,
266
- num_live_nodes : 0 ,
267
- num_vars : 0 ,
268
264
live_node_map : HirIdMap :: default ( ) ,
269
265
variable_map : HirIdMap :: default ( ) ,
270
266
capture_info_map : Default :: default ( ) ,
@@ -274,9 +270,8 @@ impl IrMaps<'tcx> {
274
270
}
275
271
276
272
fn add_live_node ( & mut self , lnk : LiveNodeKind ) -> LiveNode {
277
- let ln = LiveNode ( self . num_live_nodes as u32 ) ;
273
+ let ln = LiveNode ( self . lnks . len ( ) as u32 ) ;
278
274
self . lnks . push ( lnk) ;
279
- self . num_live_nodes += 1 ;
280
275
281
276
debug ! ( "{:?} is of kind {}" , ln, live_node_kind_to_string( lnk, self . tcx) ) ;
282
277
@@ -291,9 +286,8 @@ impl IrMaps<'tcx> {
291
286
}
292
287
293
288
fn add_variable ( & mut self , vk : VarKind ) -> Variable {
294
- let v = Variable ( self . num_vars as u32 ) ;
289
+ let v = Variable ( self . var_kinds . len ( ) as u32 ) ;
295
290
self . var_kinds . push ( vk) ;
296
- self . num_vars += 1 ;
297
291
298
292
match vk {
299
293
Local ( LocalInfo { id : node_id, .. } ) | Param ( node_id, _) | Upvar ( node_id, _) => {
@@ -672,8 +666,8 @@ impl<'a, 'tcx> Liveness<'a, 'tcx> {
672
666
let typeck_results = ir. tcx . typeck ( def_id) ;
673
667
let param_env = ir. tcx . param_env ( def_id) ;
674
668
675
- let num_live_nodes = ir. num_live_nodes ;
676
- let num_vars = ir. num_vars ;
669
+ let num_live_nodes = ir. lnks . len ( ) ;
670
+ let num_vars = ir. var_kinds . len ( ) ;
677
671
678
672
Liveness {
679
673
ir,
@@ -719,7 +713,7 @@ impl<'a, 'tcx> Liveness<'a, 'tcx> {
719
713
}
720
714
721
715
fn idx ( & self , ln : LiveNode , var : Variable ) -> usize {
722
- ln. get ( ) * self . ir . num_vars + var. get ( )
716
+ ln. get ( ) * self . ir . var_kinds . len ( ) + var. get ( )
723
717
}
724
718
725
719
fn live_on_entry ( & self , ln : LiveNode , var : Variable ) -> Option < LiveNodeKind > {
@@ -756,7 +750,7 @@ impl<'a, 'tcx> Liveness<'a, 'tcx> {
756
750
{
757
751
let node_base_idx = self . idx ( ln, Variable ( 0 ) ) ;
758
752
let succ_base_idx = self . idx ( succ_ln, Variable ( 0 ) ) ;
759
- for var_idx in 0 ..self . ir . num_vars {
753
+ for var_idx in 0 ..self . ir . var_kinds . len ( ) {
760
754
op ( self , node_base_idx + var_idx, succ_base_idx + var_idx) ;
761
755
}
762
756
}
@@ -766,7 +760,7 @@ impl<'a, 'tcx> Liveness<'a, 'tcx> {
766
760
F : FnMut ( usize ) -> bool ,
767
761
{
768
762
let node_base_idx = self . idx ( ln, Variable ( 0 ) ) ;
769
- for var_idx in 0 ..self . ir . num_vars {
763
+ for var_idx in 0 ..self . ir . var_kinds . len ( ) {
770
764
let idx = node_base_idx + var_idx;
771
765
if test ( idx) {
772
766
write ! ( wr, " {:?}" , Variable ( var_idx as u32 ) ) ?;
@@ -797,7 +791,7 @@ impl<'a, 'tcx> Liveness<'a, 'tcx> {
797
791
debug ! (
798
792
"^^ liveness computation results for body {} (entry={:?})" ,
799
793
{
800
- for ln_idx in 0 ..self . ir. num_live_nodes {
794
+ for ln_idx in 0 ..self . ir. lnks . len ( ) {
801
795
debug!( "{:?}" , self . ln_str( LiveNode ( ln_idx as u32 ) ) ) ;
802
796
}
803
797
hir_id
0 commit comments