comparison src/share/vm/opto/parse.hpp @ 12956:3213ba4d3dff

8024069: replace_in_map() should operate on parent maps Summary: type information gets lost because replace_in_map() doesn't update parent maps Reviewed-by: kvn, twisti
author roland
date Sat, 19 Oct 2013 12:16:43 +0200
parents 0c4c40f5c399
children b2ee5dc63353
comparison
equal deleted inserted replaced
12955:252d541466ea 12956:3213ba4d3dff
347 #ifndef PRODUCT 347 #ifndef PRODUCT
348 int _max_switch_depth; // Debugging SwitchRanges. 348 int _max_switch_depth; // Debugging SwitchRanges.
349 int _est_switch_depth; // Debugging SwitchRanges. 349 int _est_switch_depth; // Debugging SwitchRanges.
350 #endif 350 #endif
351 351
352 // parser for the caller of the method of this object
353 Parse* const _parent;
354
352 public: 355 public:
353 // Constructor 356 // Constructor
354 Parse(JVMState* caller, ciMethod* parse_method, float expected_uses); 357 Parse(JVMState* caller, ciMethod* parse_method, float expected_uses, Parse* parent);
355 358
356 virtual Parse* is_Parse() const { return (Parse*)this; } 359 virtual Parse* is_Parse() const { return (Parse*)this; }
357 360
358 public:
359 // Accessors. 361 // Accessors.
360 JVMState* caller() const { return _caller; } 362 JVMState* caller() const { return _caller; }
361 float expected_uses() const { return _expected_uses; } 363 float expected_uses() const { return _expected_uses; }
362 float prof_factor() const { return _prof_factor; } 364 float prof_factor() const { return _prof_factor; }
363 int depth() const { return _depth; } 365 int depth() const { return _depth; }
404 } 406 }
405 // Can return NULL if the flow pass did not complete a block. 407 // Can return NULL if the flow pass did not complete a block.
406 Block* successor_for_bci(int bci) { 408 Block* successor_for_bci(int bci) {
407 return block()->successor_for_bci(bci); 409 return block()->successor_for_bci(bci);
408 } 410 }
411
412 Parse* parent_parser() const { return _parent; }
409 413
410 private: 414 private:
411 // Create a JVMS & map for the initial state of this method. 415 // Create a JVMS & map for the initial state of this method.
412 SafePointNode* create_entry_map(); 416 SafePointNode* create_entry_map();
413 417