equal
deleted
inserted
replaced
25 #ifndef SHARE_VM_OPTO_PHASE_HPP |
25 #ifndef SHARE_VM_OPTO_PHASE_HPP |
26 #define SHARE_VM_OPTO_PHASE_HPP |
26 #define SHARE_VM_OPTO_PHASE_HPP |
27 |
27 |
28 #include "runtime/timer.hpp" |
28 #include "runtime/timer.hpp" |
29 |
29 |
30 class Compile; |
30 class IfNode; |
|
31 class MergeMemNode; |
|
32 class Node; |
|
33 class PhaseGVN; |
31 |
34 |
32 //------------------------------Phase------------------------------------------ |
35 //------------------------------Phase------------------------------------------ |
33 // Most optimizations are done in Phases. Creating a phase does any long |
36 // Most optimizations are done in Phases. Creating a phase does any long |
34 // running analysis required, and caches the analysis in internal data |
37 // running analysis required, and caches the analysis in internal data |
35 // structures. Later the analysis is queried using transform() calls to |
38 // structures. Later the analysis is queried using transform() calls to |
112 |
115 |
113 // Subtimers for _t_output |
116 // Subtimers for _t_output |
114 static elapsedTimer _t_instrSched; |
117 static elapsedTimer _t_instrSched; |
115 static elapsedTimer _t_buildOopMaps; |
118 static elapsedTimer _t_buildOopMaps; |
116 #endif |
119 #endif |
|
120 |
|
121 // Generate a subtyping check. Takes as input the subtype and supertype. |
|
122 // Returns 2 values: sets the default control() to the true path and |
|
123 // returns the false path. Only reads from constant memory taken from the |
|
124 // default memory; does not write anything. It also doesn't take in an |
|
125 // Object; if you wish to check an Object you need to load the Object's |
|
126 // class prior to coming here. |
|
127 // Used in GraphKit and PhaseMacroExpand |
|
128 static Node* gen_subtype_check(Node* subklass, Node* superklass, Node** ctrl, MergeMemNode* mem, PhaseGVN* gvn); |
|
129 |
117 public: |
130 public: |
118 Compile * C; |
131 Compile * C; |
119 Phase( PhaseNumber pnum ); |
132 Phase( PhaseNumber pnum ); |
|
133 |
120 #ifndef PRODUCT |
134 #ifndef PRODUCT |
121 static void print_timers(); |
135 static void print_timers(); |
122 #endif |
136 #endif |
123 }; |
137 }; |
124 |
138 |