--- old/src/share/vm/opto/phase.hpp 2014-06-13 09:30:26.011258592 +0200 +++ new/src/share/vm/opto/phase.hpp 2014-06-13 09:30:25.758357608 +0200 @@ -27,7 +27,9 @@ #include "runtime/timer.hpp" -class Compile; +class MergeMemNode; +class IfNode; +class PhaseGVN; //------------------------------Phase------------------------------------------ // Most optimizations are done in Phases. Creating a phase does any long @@ -114,9 +116,20 @@ static elapsedTimer _t_instrSched; static elapsedTimer _t_buildOopMaps; #endif + + // Generate a subtyping check. Takes as input the subtype and supertype. + // Returns 2 values: sets the default control() to the true path and + // returns the false path. Only reads from constant memory taken from the + // default memory; does not write anything. It also doesn't take in an + // Object; if you wish to check an Object you need to load the Object's + // class prior to coming here. + // Used in GraphKit and PhaseMacroExpand + static Node* gen_subtype_check(Node* subklass, Node* superklass, Node** ctrl, MergeMemNode* mem, PhaseGVN* gvn); + public: Compile * C; Phase( PhaseNumber pnum ); + #ifndef PRODUCT static void print_timers(); #endif