You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
"description": "apply warrowing to globals instead of contributions; Enabling this option is incompatible with stable and immediate-growth and ignores conservative-widen and narrow-gas.",
Copy file name to clipboardExpand all lines: src/solver/td3.ml
+21Lines changed: 21 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -286,6 +286,7 @@ module Base =
286
286
let narrow_sides_gas_default =GobConfig.get_int "solvers.td3.narrow-sides.narrow-gas"in
287
287
let narrow_sides_gas_default =if narrow_sides_gas_default <0thenNoneelseSome (narrow_sides_gas_default, D_Widen) in
288
288
let narrow_sides_eliminate_dead =GobConfig.get_bool "solvers.td3.narrow-sides.eliminate-dead"in
289
+
let narrow_sides_eliminate_cyclic_dead =GobConfig.get_bool "solvers.td3.narrow-sides.eliminate-cyclic-dead"in
289
290
let apinis =GobConfig.get_bool "solvers.td3.narrow-sides.apinis"in
290
291
let narrow_sides_stats =GobConfig.get_bool "solvers.td3.narrow-sides.stats"in
291
292
@@ -481,6 +482,24 @@ module Base =
481
482
|None -> S.Dom.bot ()in
482
483
let orphaned =HM.find_default orphan_side_effects y (S.Dom.bot()) in
483
484
S.Dom.join combined orphaned
485
+
andcombined_side_elim_deadnarrow_gasxy=
486
+
ifHM.mem orphan_side_effects y then
487
+
(* If there is a start value, then we cannot get this back to bot anyway *)
488
+
combined_side y
489
+
else
490
+
let contribs =Option.get @@HM.find_option data.divided_side_effects y in
491
+
letfind_fundecv=Node.find_fundec (S.Var.node y) in
492
+
let y_fundec = find_fundec y in
493
+
let has_outside_contrib =HM.exists (funk_ -> (not@@S.Var.equal k x) && ((not@@CilType.Fundec.equal y_fundec (find_fundec k)) || (not@@S.must_same_context y k))) contribs in
494
+
if has_outside_contrib then
495
+
(* If there is a contribution from outside the fundec, we cannot eliminate it *)
0 commit comments