Mercurial > hg > truffle
comparison src/share/vm/opto/callnode.hpp @ 460:424f9bfe6b96
6775880: EA +DeoptimizeALot: assert(mon_info->owner()->is_locked(),"object must be locked now")
Summary: Create new "eliminated" BoxLock node for monitor debug info when corresponding locks are eliminated.
Reviewed-by: never
author | kvn |
---|---|
date | Wed, 03 Dec 2008 13:41:37 -0800 |
parents | a1980da045cc |
children | 523ded093c31 |
comparison
equal
deleted
inserted
replaced
459:3a86a8dcf27c | 460:424f9bfe6b96 |
---|---|
778 }; | 778 }; |
779 | 779 |
780 //------------------------------AbstractLockNode----------------------------------- | 780 //------------------------------AbstractLockNode----------------------------------- |
781 class AbstractLockNode: public CallNode { | 781 class AbstractLockNode: public CallNode { |
782 private: | 782 private: |
783 bool _eliminate; // indicates this lock can be safely eliminated | 783 bool _eliminate; // indicates this lock can be safely eliminated |
784 bool _coarsened; // indicates this lock was coarsened | |
784 #ifndef PRODUCT | 785 #ifndef PRODUCT |
785 NamedCounter* _counter; | 786 NamedCounter* _counter; |
786 #endif | 787 #endif |
787 | 788 |
788 protected: | 789 protected: |
799 | 800 |
800 | 801 |
801 public: | 802 public: |
802 AbstractLockNode(const TypeFunc *tf) | 803 AbstractLockNode(const TypeFunc *tf) |
803 : CallNode(tf, NULL, TypeRawPtr::BOTTOM), | 804 : CallNode(tf, NULL, TypeRawPtr::BOTTOM), |
805 _coarsened(false), | |
804 _eliminate(false) | 806 _eliminate(false) |
805 { | 807 { |
806 #ifndef PRODUCT | 808 #ifndef PRODUCT |
807 _counter = NULL; | 809 _counter = NULL; |
808 #endif | 810 #endif |
816 virtual uint size_of() const { return sizeof(*this); } | 818 virtual uint size_of() const { return sizeof(*this); } |
817 | 819 |
818 bool is_eliminated() {return _eliminate; } | 820 bool is_eliminated() {return _eliminate; } |
819 // mark node as eliminated and update the counter if there is one | 821 // mark node as eliminated and update the counter if there is one |
820 void set_eliminated(); | 822 void set_eliminated(); |
823 | |
824 bool is_coarsened() { return _coarsened; } | |
825 void set_coarsened() { _coarsened = true; } | |
821 | 826 |
822 // locking does not modify its arguments | 827 // locking does not modify its arguments |
823 virtual bool may_modify(const TypePtr *addr_t, PhaseTransform *phase){ return false;} | 828 virtual bool may_modify(const TypePtr *addr_t, PhaseTransform *phase){ return false;} |
824 | 829 |
825 #ifndef PRODUCT | 830 #ifndef PRODUCT |