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