@@ -162,20 +162,6 @@ object (self)
162162    let  get_variable_rdefs_r  (v_r : variable_t traceresult ): symbol_t list  = 
163163      TR. tfold_default get_variable_rdefs []  v_r in 
164164
165-     let  get_variable_defuses  (v : variable_t ): symbol_t list  = 
166-       let  symvar =  floc#f#env#mk_symbolic_variable v in 
167-       let  varinvs =  floc#varinv#get_var_def_uses symvar in 
168-       (match  varinvs with 
169-        |  [vinv] -> vinv#get_def_uses
170-        |  _  -> [] ) in 
171- 
172-     let  has_exit_use  (v : variable_t ): bool  = 
173-       let  defuses =  get_variable_defuses v in 
174-       List. exists (fun  s  -> s#getBaseName =  " exit" in 
175- 
176-     let  has_exit_use_r  (v_r : variable_t traceresult ): bool  = 
177-       TR. tfold_default has_exit_use false  v_r in 
178- 
179165    (* 
180166    let getopt_initial_argument_value (x: xpr_t): (register_t * int) option = 
181167      match (rewrite_expr x) with 
@@ -349,31 +335,11 @@ object (self)
349335          (LBLOCK  [STR  faddr; STR  " :" STR  iaddr; STR  " : " 
350336                   op#toPretty; STR  "  is not a register" in 
351337
352-     let  regvar_linked_to_exit  (mnem : string ) (op : arm_operand_int ) = 
353-       if  op#is_register then 
354-         (if  op#get_register =  AR0  &&  (has_exit_use_r (op#to_variable floc)) then 
355-            let  reg =  op#to_register in 
356-            let  tv_z =  mk_reglhs_typevar reg faddr iaddr in 
357-            let  fvar =  add_return_capability (mk_function_typevar faddr) in 
358-            let  tt_z =  mk_vty_term tv_z in 
359-            let  fterm =  mk_vty_term fvar in 
360-            let  rule =  mnem ^  " -exituse" in 
361-            if  fndata#is_typing_rule_enabled iaddr rule then 
362-              begin 
363-                log_subtype_constraint __LINE__ rule tt_z fterm;
364-                store#add_subtype_constraint faddr iaddr rule tt_z fterm
365-              end 
366-            else 
367-              log_subtype_rule_disabled __LINE__ rule tt_z fterm)
368-       else 
369-         ()  in 
370- 
371338    match  instr#get_opcode with 
372339
373340    |  Add  (_ , _ , rd , rn , rm , _ ) ->
374341       begin 
375342         (regvar_type_introduction " ADD" 
376-          (regvar_linked_to_exit " ADD" 
377343
378344         (*  Heuristic: if a small number (taken here as < 256) is added to
379345            a register value it is assumed that the value in the destination 
@@ -459,7 +425,6 @@ object (self)
459425       let  rndefs =  get_variable_rdefs_r (rn#to_variable floc) in 
460426       begin 
461427         (regvar_type_introduction " ASR" 
462-          (regvar_linked_to_exit " ASR" 
463428
464429         (*  ASR results in a signed integer *) 
465430         (let  tc =  mk_int_type_constant Signed  32  in 
@@ -499,7 +464,6 @@ object (self)
499464       let  rnreg =  rn#to_register in 
500465       begin 
501466         (regvar_type_introduction " AND" 
502-          (regvar_linked_to_exit " AND" 
503467
504468         List. iter (fun  rnsym  ->
505469             let  rnaddr =  rnsym#getBaseName in 
@@ -523,7 +487,6 @@ object (self)
523487       let  tyc =  mk_int_type_constant Signed  32  in 
524488       begin 
525489         (regvar_type_introduction " MVN" 
526-          (regvar_linked_to_exit " MVN" 
527490
528491         (*  destination is an integer type *) 
529492         (let  tctypeterm =  mk_cty_term tyc in 
@@ -545,7 +508,6 @@ object (self)
545508       let  rmreg =  rm#to_register in 
546509       begin 
547510         (regvar_type_introduction " MVN" 
548-          (regvar_linked_to_exit " MVN" 
549511
550512         (List. iter (fun  rmsym  ->
551513              let  rmaddr =  rmsym#getBaseName in 
@@ -570,7 +532,6 @@ object (self)
570532       let  rnreg =  rn#to_register in 
571533       begin 
572534         (regvar_type_introduction " ORR" 
573-          (regvar_linked_to_exit " ORR" 
574535
575536         List. iter (fun  rnsym  ->
576537             let  rnaddr =  rnsym#getBaseName in 
@@ -865,7 +826,6 @@ object (self)
865826       let  rttypevar =  mk_reglhs_typevar rtreg faddr iaddr in 
866827       begin 
867828         (regvar_type_introduction " LDR" 
868-          (regvar_linked_to_exit " LDR" 
869829
870830         (*  loaded type may be known *) 
871831         (let  xmem_r =  memop#to_expr floc in 
@@ -1036,7 +996,6 @@ object (self)
1036996       let  rttypevar =  mk_reglhs_typevar rtreg faddr iaddr in 
1037997       begin 
1038998         (regvar_type_introduction " LDRB" 
1039-          (regvar_linked_to_exit " LDRB" 
1040999
10411000         (*  LDRB rt, [rn, rm] :  X_rndef.load <: X_rt *) 
10421001         (if  rn#is_sp_register then 
@@ -1082,7 +1041,6 @@ object (self)
10821041       let  rttypevar =  mk_reglhs_typevar rtreg faddr iaddr in 
10831042       begin 
10841043         (regvar_type_introduction " LDRB" 
1085-          (regvar_linked_to_exit " LDRB" 
10861044
10871045         (*  LDRB rt, ...  : X_rt <: integer type *) 
10881046         (let  tc =  mk_int_type_constant SignedNeutral  8  in 
@@ -1104,7 +1062,6 @@ object (self)
11041062       let  rttypevar =  mk_reglhs_typevar rtreg faddr iaddr in 
11051063       begin 
11061064         (regvar_type_introduction " LDRH" 
1107-          (regvar_linked_to_exit " LDRH" 
11081065
11091066         (*  loaded type may be known *) 
11101067         (let  xmem_r =  memop#to_expr floc in 
@@ -1167,7 +1124,6 @@ object (self)
11671124       let  rttypevar =  mk_reglhs_typevar rtreg faddr iaddr in 
11681125       begin 
11691126         (regvar_type_introduction " LDRH" 
1170-          (regvar_linked_to_exit " LDRH" 
11711127
11721128       (*  LDRH rt, ...  : X_rt <: integer type *) 
11731129         (let  tc =  mk_int_type_constant SignedNeutral  16  in 
@@ -1190,7 +1146,6 @@ object (self)
11901146       let  rndefs =  get_variable_rdefs_r (rn#to_variable floc) in 
11911147       begin 
11921148         (regvar_type_introduction " LSL" 
1193-          (regvar_linked_to_exit " LSL" 
11941149
11951150         (*  LSL results in an unsigned integer *) 
11961151         (let  tc =  mk_int_type_constant Unsigned  32  in 
@@ -1230,7 +1185,6 @@ object (self)
12301185       let  rndefs =  get_variable_rdefs_r (rn#to_variable floc) in 
12311186       begin 
12321187         (regvar_type_introduction " LSR" 
1233-          (regvar_linked_to_exit " LSR" 
12341188
12351189         (*  LSR results in an unsigned integer *) 
12361190         (let  tc =  mk_int_type_constant Unsigned  32  in 
@@ -1269,7 +1223,6 @@ object (self)
12691223       let  lhstypevar =  mk_reglhs_typevar rdreg faddr iaddr in 
12701224       begin 
12711225         (regvar_type_introduction " MOV" 
1272-          (regvar_linked_to_exit " MOV" 
12731226
12741227         (let  rmval =  rm#to_numerical#toInt in 
12751228          (*  0 provides no information about the type *) 
@@ -1299,7 +1252,6 @@ object (self)
12991252       let  rdreg =  rd#to_register in 
13001253       begin 
13011254         (regvar_type_introduction " MOV" 
1302-          (regvar_linked_to_exit " MOV" 
13031255
13041256         (*  use reaching defs *) 
13051257         (let  rmreg =  rm#to_register in 
@@ -1396,7 +1348,6 @@ object (self)
13961348       let  rmreg =  rm#to_register in 
13971349       begin 
13981350         (regvar_type_introduction " RSB" 
1399-          (regvar_linked_to_exit " RSB" 
14001351
14011352         (let  rule =  " RSB-rdef" in 
14021353          List. iter (fun  rmsym  ->
@@ -1658,7 +1609,6 @@ object (self)
16581609       let  rnreg =  rn#to_register in 
16591610       begin 
16601611         (regvar_type_introduction " SUB" 
1661-          (regvar_linked_to_exit " SUB" 
16621612
16631613         (*  Note: Does not take into consideration the possibility of the
16641614            subtraction of two pointers *)  
@@ -1692,7 +1642,6 @@ object (self)
16921642    |  UnsignedBitFieldExtract  (_ , rd , rn ) ->
16931643       begin 
16941644         (regvar_type_introduction " UBFX" 
1695-          (regvar_linked_to_exit " UBFX" 
16961645
16971646         (match  rn#get_kind with 
16981647          |  ARMRegBitSequence  (r , _ , _ ) ->
@@ -1726,7 +1675,6 @@ object (self)
17261675       let  rdtypevar =  mk_reglhs_typevar rdreg faddr iaddr in 
17271676       begin 
17281677         (regvar_type_introduction " UXTH" 
1729-          (regvar_linked_to_exit " UXTH" 
17301678
17311679         (let  opttc =  mk_btype_constraint rdtypevar t_ushort in 
17321680          let  rule =  " UXTH-def-lhs" in 
0 commit comments