Mercurial > hg > graal-jvmci-8
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 { |