src/share/vm/opto/phaseX.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/share/vm/opto/phaseX.hpp	Fri Nov 27 10:24:19 2015
--- new/src/share/vm/opto/phaseX.hpp	Fri Nov 27 10:24:19 2015

*** 146,170 **** --- 146,180 ---- class PhaseRemoveUseless : public Phase { protected: Unique_Node_List _useful; // Nodes reachable from root // list is allocated from current resource area public: ! PhaseRemoveUseless( PhaseGVN *gvn, Unique_Node_List *worklist ); ! PhaseRemoveUseless(PhaseGVN *gvn, Unique_Node_List *worklist, PhaseNumber phase_num = Remove_Useless); Unique_Node_List *get_useful() { return &_useful; } }; + //------------------------------PhaseRenumber---------------------------------- + // Phase that first performs a PhaseRemoveUseless, then it renumbers compiler + // structures accordingly. + class PhaseRenumberLive : public PhaseRemoveUseless { + public: + PhaseRenumberLive(PhaseGVN* gvn, + Unique_Node_List* worklist, Unique_Node_List* new_worklist, + PhaseNumber phase_num = Remove_Useless_And_Renumber_Live); + }; + //------------------------------PhaseTransform--------------------------------- // Phases that analyze, then transform. Constructing the Phase object does any // global or slow analysis. The results are cached later for a fast // transformation pass. When the Phase object is deleted the cached analysis // results are deleted. class PhaseTransform : public Phase { protected: Arena* _arena; ! Node_Array _nodes; // Map old node indices to new nodes. ! Node_List _nodes; // Map old node indices to new nodes. Type_Array _types; // Map old node indices to Types. // ConNode caches: enum { _icon_min = -1 * HeapWordSize, _icon_max = 16 * HeapWordSize,
*** 185,195 **** --- 195,211 ---- PhaseTransform( Arena *arena, PhaseNumber pnum ); PhaseTransform( PhaseTransform *phase, PhaseNumber pnum ); Arena* arena() { return _arena; } Type_Array& types() { return _types; } + void replace_types(Type_Array new_types) { + _types = new_types; + } // _nodes is used in varying ways by subclasses, which define local accessors + uint nodes_size() { + return _nodes.size(); + } public: // Get a previously recorded type for the node n. // This type must already have been recorded. // If you want the type of a very new (untransformed) node,

src/share/vm/opto/phaseX.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File