hotspot/src/share/vm/opto/phase.hpp
changeset 26166 4b49fd58bbd9
parent 24425 53764d2358f9
child 26913 9ad70cd32368
equal deleted inserted replaced
25938:d1161ea75e14 26166:4b49fd58bbd9
    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