Skip to content

Commit 16cc469

Browse files
committed
Clarify comments in symex_dead
Try to make clearer what we can(not) remove from renaming maps. Also do small cleanups of the code.
1 parent 22d87d5 commit 16cc469

File tree

1 file changed

+6
-8
lines changed

1 file changed

+6
-8
lines changed

src/goto-symex/symex_dead.cpp

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ Author: Daniel Kroening, [email protected]
1111

1212
#include "goto_symex.h"
1313

14-
#include <cassert>
15-
1614
#include <util/std_expr.h>
1715

1816
#include <pointer-analysis/add_failed_symbols.h>
@@ -23,9 +21,6 @@ void goto_symext::symex_dead(statet &state)
2321

2422
const code_deadt &code = instruction.get_dead();
2523

26-
// We increase the L2 renaming to make these non-deterministic.
27-
// We also prevent propagation of old values.
28-
2924
ssa_exprt ssa = state.rename_ssa<L1>(ssa_exprt{code.symbol()}, ns);
3025

3126
// in case of pointers, put something into the value set
@@ -43,10 +38,13 @@ void goto_symext::symex_dead(statet &state)
4338

4439
const irep_idt &l1_identifier = ssa.get_identifier();
4540

46-
// prevent propagation
41+
// we cannot remove the object from the L1 renaming map, because L1 renaming
42+
// information is not local to a path, but removing it from the propagation
43+
// map is safe as 1) it is local to a path and 2) this instance can no longer
44+
// appear
4745
state.propagation.erase(l1_identifier);
48-
49-
// L2 renaming
46+
// increment the L2 index to ensure a merge on join points will propagate the
47+
// value for branches that are still live
5048
auto level2_it = state.level2.current_names.find(l1_identifier);
5149
if(level2_it != state.level2.current_names.end())
5250
symex_renaming_levelt::increase_counter(level2_it);

0 commit comments

Comments
 (0)