comparison src/share/vm/opto/parse.hpp @ 20327:411e30e5fbb8

8026796: Make replace_in_map() on parent maps generic Summary: propagate node replacements along control flow edges to callers Reviewed-by: kvn, vlivanov
author roland
date Wed, 13 Aug 2014 11:00:22 +0200
parents 62c54fcc0a35
children 42460b71ba70
comparison
equal deleted inserted replaced
20326:da00a41842a5 20327:411e30e5fbb8
355 #ifndef PRODUCT 355 #ifndef PRODUCT
356 int _max_switch_depth; // Debugging SwitchRanges. 356 int _max_switch_depth; // Debugging SwitchRanges.
357 int _est_switch_depth; // Debugging SwitchRanges. 357 int _est_switch_depth; // Debugging SwitchRanges.
358 #endif 358 #endif
359 359
360 // parser for the caller of the method of this object 360 bool _first_return; // true if return is the first to be parsed
361 Parse* const _parent; 361 bool _replaced_nodes_for_exceptions; // needs processing of replaced nodes in exception paths?
362 uint _new_idx; // any node with _idx above were new during this parsing. Used to trim the replaced nodes list.
362 363
363 public: 364 public:
364 // Constructor 365 // Constructor
365 Parse(JVMState* caller, ciMethod* parse_method, float expected_uses, Parse* parent); 366 Parse(JVMState* caller, ciMethod* parse_method, float expected_uses);
366 367
367 virtual Parse* is_Parse() const { return (Parse*)this; } 368 virtual Parse* is_Parse() const { return (Parse*)this; }
368 369
369 // Accessors. 370 // Accessors.
370 JVMState* caller() const { return _caller; } 371 JVMState* caller() const { return _caller; }
416 } 417 }
417 // Can return NULL if the flow pass did not complete a block. 418 // Can return NULL if the flow pass did not complete a block.
418 Block* successor_for_bci(int bci) { 419 Block* successor_for_bci(int bci) {
419 return block()->successor_for_bci(bci); 420 return block()->successor_for_bci(bci);
420 } 421 }
421
422 Parse* parent_parser() const { return _parent; }
423 422
424 private: 423 private:
425 // Create a JVMS & map for the initial state of this method. 424 // Create a JVMS & map for the initial state of this method.
426 SafePointNode* create_entry_map(); 425 SafePointNode* create_entry_map();
427 426