734 #ifdef ASSERT 735 int _block; // PO of current block, if a Parse 736 int _bci; 737 #endif 738 SafePointNode* _map; 739 uint _sp; 740 741 public: 742 PreserveJVMState(GraphKit* kit, bool clone_map = true); 743 ~PreserveJVMState(); 744 }; 745 746 // Helper class to build cutouts of the form if (p) ; else {x...}. 747 // The code {x...} must not fall through. 748 // The kit's main flow of control is set to the "then" continuation of if(p). 749 class BuildCutout: public PreserveJVMState { 750 public: 751 BuildCutout(GraphKit* kit, Node* p, float prob, float cnt = COUNT_UNKNOWN); 752 ~BuildCutout(); 753 }; | 734 #ifdef ASSERT 735 int _block; // PO of current block, if a Parse 736 int _bci; 737 #endif 738 SafePointNode* _map; 739 uint _sp; 740 741 public: 742 PreserveJVMState(GraphKit* kit, bool clone_map = true); 743 ~PreserveJVMState(); 744 }; 745 746 // Helper class to build cutouts of the form if (p) ; else {x...}. 747 // The code {x...} must not fall through. 748 // The kit's main flow of control is set to the "then" continuation of if(p). 749 class BuildCutout: public PreserveJVMState { 750 public: 751 BuildCutout(GraphKit* kit, Node* p, float prob, float cnt = COUNT_UNKNOWN); 752 ~BuildCutout(); 753 }; 754 755 // Helper class to preserve the original _reexecute bit and _sp and restore 756 // them back 757 class PreserveReexecuteAndSP: public StackObj { 758 protected: 759 GraphKit* _kit; 760 uint _sp; 761 bool _reexecute; 762 763 public: 764 PreserveReexecuteAndSP(GraphKit* kit); 765 ~PreserveReexecuteAndSP(); 766 }; |