Mercurial > hg > graal-compiler
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 |