183 void do_InstanceOf (InstanceOf* x) { /* nothing to do */ }
184 void do_BlockBegin (BlockBegin* x) { /* nothing to do */ }
185 void do_Goto (Goto* x) { /* nothing to do */ }
186 void do_If (If* x) { /* nothing to do */ }
187 void do_IfInstanceOf (IfInstanceOf* x) { /* nothing to do */ }
188 void do_TableSwitch (TableSwitch* x) { /* nothing to do */ }
189 void do_LookupSwitch (LookupSwitch* x) { /* nothing to do */ }
190 void do_Return (Return* x) { /* nothing to do */ }
191 void do_Throw (Throw* x) { /* nothing to do */ }
192 void do_Base (Base* x) { /* nothing to do */ }
193 void do_OsrEntry (OsrEntry* x) { /* nothing to do */ }
194 void do_ExceptionObject(ExceptionObject* x) { /* nothing to do */ }
195 void do_RoundFP (RoundFP* x) { /* nothing to do */ }
196 void do_UnsafeGetRaw (UnsafeGetRaw* x) { /* nothing to do */ }
197 void do_UnsafeGetObject(UnsafeGetObject* x) { /* nothing to do */ }
198 void do_UnsafePrefetchRead (UnsafePrefetchRead* x) { /* nothing to do */ }
199 void do_UnsafePrefetchWrite(UnsafePrefetchWrite* x) { /* nothing to do */ }
200 void do_ProfileCall (ProfileCall* x) { /* nothing to do */ }
201 void do_ProfileInvoke (ProfileInvoke* x) { /* nothing to do */ };
202 void do_RuntimeCall (RuntimeCall* x) { /* nothing to do */ };
203 };
204
205
206 class ValueNumberingEffects: public ValueNumberingVisitor {
207 private:
208 ValueMap* _map;
209
210 public:
211 // implementation for abstract methods of ValueNumberingVisitor
212 void kill_memory() { _map->kill_memory(); }
213 void kill_field(ciField* field) { _map->kill_field(field); }
214 void kill_array(ValueType* type) { _map->kill_array(type); }
215
216 ValueNumberingEffects(ValueMap* map): _map(map) {}
217 };
218
219
220 class GlobalValueNumbering: public ValueNumberingVisitor {
221 private:
222 ValueMap* _current_map; // value map of current block
|
183 void do_InstanceOf (InstanceOf* x) { /* nothing to do */ }
184 void do_BlockBegin (BlockBegin* x) { /* nothing to do */ }
185 void do_Goto (Goto* x) { /* nothing to do */ }
186 void do_If (If* x) { /* nothing to do */ }
187 void do_IfInstanceOf (IfInstanceOf* x) { /* nothing to do */ }
188 void do_TableSwitch (TableSwitch* x) { /* nothing to do */ }
189 void do_LookupSwitch (LookupSwitch* x) { /* nothing to do */ }
190 void do_Return (Return* x) { /* nothing to do */ }
191 void do_Throw (Throw* x) { /* nothing to do */ }
192 void do_Base (Base* x) { /* nothing to do */ }
193 void do_OsrEntry (OsrEntry* x) { /* nothing to do */ }
194 void do_ExceptionObject(ExceptionObject* x) { /* nothing to do */ }
195 void do_RoundFP (RoundFP* x) { /* nothing to do */ }
196 void do_UnsafeGetRaw (UnsafeGetRaw* x) { /* nothing to do */ }
197 void do_UnsafeGetObject(UnsafeGetObject* x) { /* nothing to do */ }
198 void do_UnsafePrefetchRead (UnsafePrefetchRead* x) { /* nothing to do */ }
199 void do_UnsafePrefetchWrite(UnsafePrefetchWrite* x) { /* nothing to do */ }
200 void do_ProfileCall (ProfileCall* x) { /* nothing to do */ }
201 void do_ProfileInvoke (ProfileInvoke* x) { /* nothing to do */ };
202 void do_RuntimeCall (RuntimeCall* x) { /* nothing to do */ };
203 void do_MemBar (MemBar* x) { /* nothing to do */ };
204 };
205
206
207 class ValueNumberingEffects: public ValueNumberingVisitor {
208 private:
209 ValueMap* _map;
210
211 public:
212 // implementation for abstract methods of ValueNumberingVisitor
213 void kill_memory() { _map->kill_memory(); }
214 void kill_field(ciField* field) { _map->kill_field(field); }
215 void kill_array(ValueType* type) { _map->kill_array(type); }
216
217 ValueNumberingEffects(ValueMap* map): _map(map) {}
218 };
219
220
221 class GlobalValueNumbering: public ValueNumberingVisitor {
222 private:
223 ValueMap* _current_map; // value map of current block
|