Skip to content

Commit c2eda2f

Browse files
Move levelt to renaming_level.h
This seems a more appropriate to find it, and we could use the levelt type for templates we will define in this file.
1 parent 012b2e0 commit c2eda2f

11 files changed

+30
-28
lines changed

src/goto-instrument/accelerate/scratch_program.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ bool scratch_programt::check_sat(bool do_slice)
6969

7070
exprt scratch_programt::eval(const exprt &e)
7171
{
72-
return checker->get(symex_state->rename<goto_symex_statet::L2>(e, ns));
72+
return checker->get(symex_state->rename<L2>(e, ns));
7373
}
7474

7575
void scratch_programt::append(goto_programt::instructionst &new_instructions)

src/goto-symex/goto_symex_state.cpp

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ void goto_symex_statet::set_l2_indices(
263263
ssa_expr = level2(std::move(l1));
264264
}
265265

266-
template <goto_symex_statet::levelt level>
266+
template <levelt level>
267267
ssa_exprt goto_symex_statet::rename_ssa(ssa_exprt ssa, const namespacet &ns)
268268
{
269269
static_assert(
@@ -282,11 +282,10 @@ ssa_exprt goto_symex_statet::rename_ssa(ssa_exprt ssa, const namespacet &ns)
282282
}
283283

284284
/// Ensure `rename_ssa` gets compiled for L0
285-
template ssa_exprt goto_symex_statet::rename_ssa<goto_symex_statet::L0>(
286-
ssa_exprt ssa,
287-
const namespacet &ns);
285+
template ssa_exprt
286+
goto_symex_statet::rename_ssa<L0>(ssa_exprt ssa, const namespacet &ns);
288287

289-
template <goto_symex_statet::levelt level>
288+
template <levelt level>
290289
exprt goto_symex_statet::rename(exprt expr, const namespacet &ns)
291290
{
292291
// rename all the symbols with their last known value
@@ -544,7 +543,7 @@ bool goto_symex_statet::l2_thread_write_encoding(
544543
return threads.size()>1;
545544
}
546545

547-
template <goto_symex_statet::levelt level>
546+
template <levelt level>
548547
void goto_symex_statet::rename_address(exprt &expr, const namespacet &ns)
549548
{
550549
if(expr.id()==ID_symbol &&
@@ -669,7 +668,7 @@ static bool requires_renaming(const typet &type, const namespacet &ns)
669668
return false;
670669
}
671670

672-
template <goto_symex_statet::levelt level>
671+
template <levelt level>
673672
void goto_symex_statet::rename(
674673
typet &type,
675674
const irep_idt &l1_identifier,

src/goto-symex/goto_symex_state.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -150,9 +150,6 @@ class goto_symex_statet final : public goto_statet
150150
symex_level0t level0;
151151
symex_level1t level1;
152152

153-
// Symex renaming levels.
154-
enum levelt { L0=0, L1=1, L2=2 };
155-
156153
/// Rewrites symbol expressions in \ref exprt, applying a suffix to each
157154
/// symbol reflecting its most recent version, which differs depending on
158155
/// which level you requested. Each level also updates its predecessors, so

src/goto-symex/renaming_level.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,14 @@ Author: Romain Brenguier, [email protected]
1818
#include <util/irep.h>
1919
#include <util/ssa_expr.h>
2020

21+
/// Symex renaming level names.
22+
enum levelt
23+
{
24+
L0 = 0,
25+
L1 = 1,
26+
L2 = 2
27+
};
28+
2129
/// Wrapper for a \c current_names map, which maps each identifier to an SSA
2230
/// expression and a counter.
2331
/// This is extended by the different symex_level structures which are used

src/goto-symex/symex_dead.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ void goto_symext::symex_dead(statet &state)
2626
// We increase the L2 renaming to make these non-deterministic.
2727
// We also prevent propagation of old values.
2828

29-
ssa_exprt ssa = state.rename_ssa<statet::L1>(ssa_exprt{code.symbol()}, ns);
29+
ssa_exprt ssa = state.rename_ssa<L1>(ssa_exprt{code.symbol()}, ns);
3030

3131
// in case of pointers, put something into the value set
3232
if(code.symbol().type().id() == ID_pointer)
@@ -37,8 +37,7 @@ void goto_symext::symex_dead(statet &state)
3737
else
3838
rhs=exprt(ID_invalid);
3939

40-
const exprt l1_rhs =
41-
state.rename<goto_symex_statet::L1>(std::move(rhs), ns);
40+
const exprt l1_rhs = state.rename<L1>(std::move(rhs), ns);
4241
state.value_set.assign(ssa, l1_rhs, ns, true, false);
4342
}
4443

src/goto-symex/symex_decl.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ void goto_symext::symex_decl(statet &state, const symbol_exprt &expr)
3737
// We increase the L2 renaming to make these non-deterministic.
3838
// We also prevent propagation of old values.
3939

40-
ssa_exprt ssa = state.rename_ssa<statet::L1>(ssa_exprt{expr}, ns);
40+
ssa_exprt ssa = state.rename_ssa<L1>(ssa_exprt{expr}, ns);
4141
const irep_idt &l1_identifier = ssa.get_identifier();
4242

4343
// rename type to L2
@@ -53,7 +53,7 @@ void goto_symext::symex_decl(statet &state, const symbol_exprt &expr)
5353
else
5454
rhs=exprt(ID_invalid);
5555

56-
exprt l1_rhs = state.rename<goto_symex_statet::L1>(std::move(rhs), ns);
56+
exprt l1_rhs = state.rename<L1>(std::move(rhs), ns);
5757
state.value_set.assign(ssa, l1_rhs, ns, true, false);
5858
}
5959

src/goto-symex/symex_dereference.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -356,11 +356,11 @@ void goto_symext::dereference(exprt &expr, statet &state)
356356
// from different frames. Would be enough to rename
357357
// symbols whose address is taken.
358358
PRECONDITION(!state.call_stack().empty());
359-
exprt l1_expr = state.rename<goto_symex_statet::L1>(expr, ns);
359+
exprt l1_expr = state.rename<L1>(expr, ns);
360360

361361
// start the recursion!
362362
dereference_rec(l1_expr, state);
363363
// dereferencing may introduce new symbol_exprt
364364
// (like __CPROVER_memory)
365-
expr = state.rename<goto_symex_statet::L1>(std::move(l1_expr), ns);
365+
expr = state.rename<L1>(std::move(l1_expr), ns);
366366
}

src/goto-symex/symex_dereference_state.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@ symex_dereference_statet::get_or_create_failed_symbol(const exprt &expr)
4848
{
4949
symbolt sym=*symbol;
5050
symbolt *sym_ptr=nullptr;
51-
const ssa_exprt sym_expr = state.rename_ssa<goto_symex_statet::L1>(
52-
ssa_exprt{sym.symbol_expr()}, ns);
51+
const ssa_exprt sym_expr =
52+
state.rename_ssa<L1>(ssa_exprt{sym.symbol_expr()}, ns);
5353
sym.name = sym_expr.get_identifier();
5454
state.symbol_table.move(sym, sym_ptr);
5555
return sym_ptr;
@@ -68,8 +68,8 @@ symex_dereference_statet::get_or_create_failed_symbol(const exprt &expr)
6868
{
6969
symbolt sym=*symbol;
7070
symbolt *sym_ptr=nullptr;
71-
const ssa_exprt sym_expr = state.rename_ssa<goto_symex_statet::L1>(
72-
ssa_exprt{sym.symbol_expr()}, ns);
71+
const ssa_exprt sym_expr =
72+
state.rename_ssa<L1>(ssa_exprt{sym.symbol_expr()}, ns);
7373
sym.name = sym_expr.get_identifier();
7474
state.symbol_table.move(sym, sym_ptr);
7575
return sym_ptr;

src/goto-symex/symex_function_call.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -395,8 +395,8 @@ static void locality(
395395
it++)
396396
{
397397
// get L0 name
398-
ssa_exprt ssa = state.rename_ssa<goto_symex_statet::L0>(
399-
ssa_exprt{ns.lookup(*it).symbol_expr()}, ns);
398+
ssa_exprt ssa =
399+
state.rename_ssa<L0>(ssa_exprt{ns.lookup(*it).symbol_expr()}, ns);
400400
const irep_idt l0_name=ssa.get_identifier();
401401

402402
// save old L1 name for popping the frame
@@ -418,8 +418,7 @@ static void locality(
418418
// identifiers may be shared among functions
419419
// (e.g., due to inlining or other code restructuring)
420420

421-
ssa_exprt ssa_l1 =
422-
state.rename_ssa<goto_symex_statet::L1>(std::move(ssa), ns);
421+
ssa_exprt ssa_l1 = state.rename_ssa<L1>(std::move(ssa), ns);
423422

424423
irep_idt l1_name = ssa_l1.get_identifier();
425424
unsigned offset=0;

src/goto-symex/symex_goto.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ void goto_symext::symex_goto(statet &state)
246246
exprt new_rhs = boolean_negate(new_guard);
247247

248248
ssa_exprt new_lhs =
249-
state.rename_ssa<statet::L1>(ssa_exprt{guard_symbol_expr}, ns);
249+
state.rename_ssa<L1>(ssa_exprt{guard_symbol_expr}, ns);
250250
state.assignment(new_lhs, new_rhs, ns, true, false);
251251

252252
guardt guard{true_exprt{}};

src/goto-symex/symex_start_thread.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ void goto_symext::symex_start_thread(statet &state)
7373
std::forward_as_tuple(lhs.get_l1_object_identifier()),
7474
std::forward_as_tuple(lhs, 0));
7575
CHECK_RETURN(emplace_result.second);
76-
const ssa_exprt lhs_l1 = state.rename_ssa<statet::L1>(std::move(lhs), ns);
76+
const ssa_exprt lhs_l1 = state.rename_ssa<L1>(std::move(lhs), ns);
7777
const irep_idt l1_name = lhs_l1.get_l1_object_identifier();
7878
// store it
7979
state.l1_history.insert(l1_name);

0 commit comments

Comments
 (0)