@@ -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-
15970Function: 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
0 commit comments