826 StartNode* start() const; // (Derived from root.)
827 void init_start(StartNode* s);
828 Node* immutable_memory();
829
830 Node* recent_alloc_ctl() const { return _recent_alloc_ctl; }
831 Node* recent_alloc_obj() const { return _recent_alloc_obj; }
832 void set_recent_alloc(Node* ctl, Node* obj) {
833 _recent_alloc_ctl = ctl;
834 _recent_alloc_obj = obj;
835 }
836 void record_dead_node(uint idx) { if (_dead_node_list.test_set(idx)) return;
837 _dead_node_count++;
838 }
839 bool is_dead_node(uint idx) { return _dead_node_list.test(idx) != 0; }
840 uint dead_node_count() { return _dead_node_count; }
841 void reset_dead_node_list() { _dead_node_list.Reset();
842 _dead_node_count = 0;
843 }
844 uint live_nodes() const {
845 int val = _unique - _dead_node_count;
846 assert (val >= 0, err_msg_res("number of tracked dead nodes %d more than created nodes %d", _unique, _dead_node_count));
847 return (uint) val;
848 }
849 #ifdef ASSERT
850 uint count_live_nodes_by_graph_walk();
851 void print_missing_nodes();
852 #endif
853
854 // Record modified nodes to check that they are put on IGVN worklist
855 void record_modified_node(Node* n) NOT_DEBUG_RETURN;
856 void remove_modified_node(Node* n) NOT_DEBUG_RETURN;
857 DEBUG_ONLY( Unique_Node_List* modified_nodes() const { return _modified_nodes; } )
858
859 // Constant table
860 ConstantTable& constant_table() { return _constant_table; }
861
862 MachConstantBaseNode* mach_constant_base_node();
863 bool has_mach_constant_base_node() const { return _mach_constant_base_node != NULL; }
864 // Generated by adlc, true if CallNode requires MachConstantBase.
865 bool needs_clone_jvms();
866
|
826 StartNode* start() const; // (Derived from root.)
827 void init_start(StartNode* s);
828 Node* immutable_memory();
829
830 Node* recent_alloc_ctl() const { return _recent_alloc_ctl; }
831 Node* recent_alloc_obj() const { return _recent_alloc_obj; }
832 void set_recent_alloc(Node* ctl, Node* obj) {
833 _recent_alloc_ctl = ctl;
834 _recent_alloc_obj = obj;
835 }
836 void record_dead_node(uint idx) { if (_dead_node_list.test_set(idx)) return;
837 _dead_node_count++;
838 }
839 bool is_dead_node(uint idx) { return _dead_node_list.test(idx) != 0; }
840 uint dead_node_count() { return _dead_node_count; }
841 void reset_dead_node_list() { _dead_node_list.Reset();
842 _dead_node_count = 0;
843 }
844 uint live_nodes() const {
845 int val = _unique - _dead_node_count;
846 assert (val >= 0, "number of tracked dead nodes %d more than created nodes %d", _unique, _dead_node_count);
847 return (uint) val;
848 }
849 #ifdef ASSERT
850 uint count_live_nodes_by_graph_walk();
851 void print_missing_nodes();
852 #endif
853
854 // Record modified nodes to check that they are put on IGVN worklist
855 void record_modified_node(Node* n) NOT_DEBUG_RETURN;
856 void remove_modified_node(Node* n) NOT_DEBUG_RETURN;
857 DEBUG_ONLY( Unique_Node_List* modified_nodes() const { return _modified_nodes; } )
858
859 // Constant table
860 ConstantTable& constant_table() { return _constant_table; }
861
862 MachConstantBaseNode* mach_constant_base_node();
863 bool has_mach_constant_base_node() const { return _mach_constant_base_node != NULL; }
864 // Generated by adlc, true if CallNode requires MachConstantBase.
865 bool needs_clone_jvms();
866
|