Skip to content

Commit 88599b7

Browse files
committed
Removed unused jump table; we might use switch/case once Visual Studio fully supports constexpr
1 parent 77ffa24 commit 88599b7

File tree

2 files changed

+0
-109
lines changed

2 files changed

+0
-109
lines changed

src/util/simplify_expr.cpp

Lines changed: 0 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -67,95 +67,6 @@ simplify_expr_cachet simplify_expr_cache;
6767

6868
/*******************************************************************\
6969
70-
Function: simplify_exprt::setup_jump_table
71-
72-
Inputs:
73-
74-
Outputs:
75-
76-
Purpose:
77-
78-
\*******************************************************************/
79-
80-
// ugly global object
81-
82-
std::vector<simplify_exprt::jump_table_entryt> simplify_jump_table;
83-
84-
#define ENTRY(id, member) \
85-
if(simplify_jump_table.size()<=(id).get_no()) \
86-
simplify_jump_table.resize((id).get_no()+1, 0); \
87-
simplify_jump_table[(id).get_no()]=&simplify_exprt::member;
88-
89-
void simplify_exprt::setup_jump_table()
90-
{
91-
// done already?
92-
if(!simplify_jump_table.empty()) return;
93-
94-
ENTRY(ID_typecast, simplify_typecast);
95-
ENTRY(ID_extractbit, simplify_extractbit);
96-
ENTRY(ID_extractbits, simplify_extractbits);
97-
ENTRY(ID_concatenation, simplify_concatenation);
98-
ENTRY(ID_mult, simplify_mult);
99-
ENTRY(ID_div, simplify_div);
100-
ENTRY(ID_mod, simplify_mod);
101-
ENTRY(ID_plus, simplify_plus);
102-
ENTRY(ID_minus, simplify_minus);
103-
ENTRY(ID_floatbv_plus, simplify_floatbv_op);
104-
ENTRY(ID_floatbv_minus, simplify_floatbv_op);
105-
ENTRY(ID_floatbv_mult, simplify_floatbv_op);
106-
ENTRY(ID_floatbv_div, simplify_floatbv_op);
107-
ENTRY(ID_floatbv_typecast, simplify_floatbv_typecast);
108-
ENTRY(ID_ashr, simplify_shifts);
109-
ENTRY(ID_lshr, simplify_shifts);
110-
ENTRY(ID_shl, simplify_shifts);
111-
ENTRY(ID_bitnot, simplify_bitwise);
112-
ENTRY(ID_bitand, simplify_bitwise);
113-
ENTRY(ID_bitor, simplify_bitwise);
114-
ENTRY(ID_bitxor, simplify_bitwise);
115-
ENTRY(ID_if, simplify_if);
116-
ENTRY(ID_bitnot, simplify_bitnot);
117-
ENTRY(ID_not, simplify_not);
118-
ENTRY(ID_implies, simplify_boolean);
119-
ENTRY(ID_iff, simplify_boolean);
120-
ENTRY(ID_or, simplify_boolean);
121-
ENTRY(ID_xor, simplify_boolean);
122-
ENTRY(ID_and, simplify_boolean);
123-
ENTRY(ID_equal, simplify_inequality);
124-
ENTRY(ID_notequal, simplify_inequality);
125-
ENTRY(ID_gt, simplify_inequality);
126-
ENTRY(ID_lt, simplify_inequality);
127-
ENTRY(ID_ge, simplify_inequality);
128-
ENTRY(ID_le, simplify_inequality);
129-
ENTRY(ID_ieee_float_equal, simplify_ieee_float_relation);
130-
ENTRY(ID_ieee_float_notequal, simplify_ieee_float_relation);
131-
ENTRY(ID_lambda, simplify_lambda);
132-
ENTRY(ID_with, simplify_with);
133-
ENTRY(ID_update, simplify_update);
134-
ENTRY(ID_index, simplify_index);
135-
ENTRY(ID_member, simplify_member);
136-
ENTRY(ID_byte_update_little_endian, simplify_byte_update);
137-
ENTRY(ID_byte_update_big_endian, simplify_byte_update);
138-
ENTRY(ID_byte_extract_little_endian, simplify_byte_extract);
139-
ENTRY(ID_byte_extract_big_endian, simplify_byte_extract);
140-
ENTRY(ID_pointer_object, simplify_pointer_object);
141-
ENTRY(ID_object_size, simplify_object_size);
142-
ENTRY(ID_dynamic_object, simplify_dynamic_object);
143-
ENTRY(ID_invalid_pointer, simplify_invalid_pointer);
144-
ENTRY(ID_good_pointer, simplify_good_pointer);
145-
ENTRY(ID_unary_minus, simplify_unary_minus);
146-
ENTRY(ID_unary_plus, simplify_unary_plus);
147-
ENTRY(ID_dereference, simplify_dereference);
148-
ENTRY(ID_address_of, simplify_address_of);
149-
ENTRY(ID_pointer_offset, simplify_pointer_offset);
150-
ENTRY(ID_isinf, simplify_isinf);
151-
ENTRY(ID_isnan, simplify_isnan);
152-
ENTRY(ID_isnormal, simplify_isnormal);
153-
ENTRY(ID_abs, simplify_abs);
154-
ENTRY(ID_sign, simplify_sign);
155-
}
156-
157-
/*******************************************************************\
158-
15970
Function: simplify_exprt::simplify_abs
16071
16172
Inputs:
@@ -2389,7 +2300,6 @@ bool simplify_exprt::simplify_node(exprt &expr)
23892300

23902301
result=sort_and_join(expr) && result;
23912302

2392-
#if 1 // use jump table?
23932303
if(expr.id()==ID_typecast)
23942304
result=simplify_typecast(expr) && result;
23952305
else if(expr.id()==ID_equal || expr.id()==ID_notequal ||
@@ -2487,18 +2397,6 @@ bool simplify_exprt::simplify_node(exprt &expr)
24872397
result=simplify_sign(expr) && result;
24882398
else if(expr.id()==ID_popcount)
24892399
result=simplify_popcount(expr) && result;
2490-
#else
2491-
2492-
unsigned no=expr.id().get_no();
2493-
2494-
if(no<simplify_jump_table.size())
2495-
{
2496-
jump_table_entryt entry=simplify_jump_table[no];
2497-
if(entry!=NULL)
2498-
result=(this->*entry)(expr) && result;
2499-
}
2500-
2501-
#endif
25022400

25032401
#ifdef DEBUGX
25042402
if(!result

src/util/simplify_expr_class.h

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ class simplify_exprt
4040
,debug_on(false)
4141
#endif
4242
{
43-
setup_jump_table();
4443
#ifdef DEBUG_ON_DEMAND
4544
struct stat f;
4645
debug_on=stat("SIMP_DEBUG", &f)==0;
@@ -56,8 +55,6 @@ class simplify_exprt
5655
// These below all return 'true' if the simplification wasn't applicable.
5756
// If false is returned, the expression has changed.
5857

59-
// jump table entries
60-
6158
bool simplify_typecast(exprt &expr);
6259
bool simplify_extractbit(exprt &expr);
6360
bool simplify_extractbits(exprt &expr);
@@ -137,8 +134,6 @@ class simplify_exprt
137134
type.id()==ID_bv;
138135
}
139136

140-
typedef bool (simplify_exprt::*jump_table_entryt)(exprt &);
141-
142137
// bit-level conversions
143138
exprt bits2expr(const std::string &bits, const typet &type, bool little_endian);
144139
std::string expr2bits(const exprt &expr, bool little_endian);
@@ -148,8 +143,6 @@ class simplify_exprt
148143
#ifdef DEBUG_ON_DEMAND
149144
bool debug_on;
150145
#endif
151-
152-
void setup_jump_table();
153146
};
154147

155148
#endif

0 commit comments

Comments
 (0)