comparison src/share/vm/ci/ciTypeFlow.hpp @ 4777:e9a5e0a812c8

7125896: Eliminate nested locks Summary: Nested locks elimination done before lock nodes expansion by looking for outer locks of the same object. Reviewed-by: never, twisti
author kvn
date Sat, 07 Jan 2012 13:26:43 -0800
parents e863062e521d
children b9a9ed0f8eeb
comparison
equal deleted inserted replaced
4776:5da7201222d5 4777:e9a5e0a812c8
542 int _post_order; // used to compute rpo 542 int _post_order; // used to compute rpo
543 543
544 // Has this block been cloned for a loop backedge? 544 // Has this block been cloned for a loop backedge?
545 bool _backedge_copy; 545 bool _backedge_copy;
546 546
547 // This block is entry to irreducible loop.
548 bool _irreducible_entry;
549
550 // This block has monitor entry point.
551 bool _has_monitorenter;
552
547 // A pointer used for our internal work list 553 // A pointer used for our internal work list
554 bool _on_work_list; // on the work list
548 Block* _next; 555 Block* _next;
549 bool _on_work_list; // on the work list
550 Block* _rpo_next; // Reverse post order list 556 Block* _rpo_next; // Reverse post order list
551 557
552 // Loop info 558 // Loop info
553 Loop* _loop; // nearest loop 559 Loop* _loop; // nearest loop
554 bool _irreducible_entry; // entry to irreducible loop
555 bool _exception_entry; // entry to exception handler
556 560
557 ciBlock* ciblock() const { return _ciblock; } 561 ciBlock* ciblock() const { return _ciblock; }
558 StateVector* state() const { return _state; } 562 StateVector* state() const { return _state; }
559 563
560 // Compute the exceptional successors and types for this Block. 564 // Compute the exceptional successors and types for this Block.
687 Loop* loop() const { return _loop; } 691 Loop* loop() const { return _loop; }
688 void set_loop(Loop* lp) { _loop = lp; } 692 void set_loop(Loop* lp) { _loop = lp; }
689 bool is_loop_head() const { return _loop && _loop->head() == this; } 693 bool is_loop_head() const { return _loop && _loop->head() == this; }
690 void set_irreducible_entry(bool c) { _irreducible_entry = c; } 694 void set_irreducible_entry(bool c) { _irreducible_entry = c; }
691 bool is_irreducible_entry() const { return _irreducible_entry; } 695 bool is_irreducible_entry() const { return _irreducible_entry; }
696 void set_has_monitorenter() { _has_monitorenter = true; }
697 bool has_monitorenter() const { return _has_monitorenter; }
692 bool is_visited() const { return has_pre_order(); } 698 bool is_visited() const { return has_pre_order(); }
693 bool is_post_visited() const { return has_post_order(); } 699 bool is_post_visited() const { return has_post_order(); }
694 bool is_clonable_exit(Loop* lp); 700 bool is_clonable_exit(Loop* lp);
695 Block* looping_succ(Loop* lp); // Successor inside of loop 701 Block* looping_succ(Loop* lp); // Successor inside of loop
696 bool is_single_entry_loop_head() const { 702 bool is_single_entry_loop_head() const {