src/share/vm/opto/compile.hpp

Print this page




 614     _last_tf_m = m;
 615     _last_tf = tf;
 616   }
 617 
 618   AliasType*        alias_type(int                idx)  { assert(idx < num_alias_types(), "oob"); return _alias_types[idx]; }
 619   AliasType*        alias_type(const TypePtr* adr_type, ciField* field = NULL) { return find_alias_type(adr_type, false, field); }
 620   bool         have_alias_type(const TypePtr* adr_type);
 621   AliasType*        alias_type(ciField*         field);
 622 
 623   int               get_alias_index(const TypePtr* at)  { return alias_type(at)->index(); }
 624   const TypePtr*    get_adr_type(uint aidx)             { return alias_type(aidx)->adr_type(); }
 625   int               get_general_index(uint aidx)        { return alias_type(aidx)->general_index(); }
 626 
 627   // Building nodes
 628   void              rethrow_exceptions(JVMState* jvms);
 629   void              return_values(JVMState* jvms);
 630   JVMState*         build_start_state(StartNode* start, const TypeFunc* tf);
 631 
 632   // Decide how to build a call.
 633   // The profile factor is a discount to apply to this site's interp. profile.
 634   CallGenerator*    call_generator(ciMethod* call_method, int vtable_index, bool call_is_virtual, JVMState* jvms, bool allow_inline, float profile_factor);
 635   bool should_delay_inlining(ciMethod* call_method, JVMState* jvms);
 636 
 637   // Report if there were too many traps at a current method and bci.
 638   // Report if a trap was recorded, and/or PerMethodTrapLimit was exceeded.
 639   // If there is no MDO at all, report no trap unless told to assume it.
 640   bool too_many_traps(ciMethod* method, int bci, Deoptimization::DeoptReason reason);
 641   // This version, unspecific to a particular bci, asks if
 642   // PerMethodTrapLimit was exceeded for all inlined methods seen so far.
 643   bool too_many_traps(Deoptimization::DeoptReason reason,
 644                       // Privately used parameter for logging:
 645                       ciMethodData* logmd = NULL);
 646   // Report if there were too many recompiles at a method and bci.
 647   bool too_many_recompiles(ciMethod* method, int bci, Deoptimization::DeoptReason reason);
 648 
 649   // Parsing, optimization
 650   PhaseGVN*         initial_gvn()               { return _initial_gvn; }
 651   Unique_Node_List* for_igvn()                  { return _for_igvn; }
 652   inline void       record_for_igvn(Node* n);   // Body is after class Unique_Node_List.
 653   void          set_initial_gvn(PhaseGVN *gvn)           { _initial_gvn = gvn; }
 654   void          set_for_igvn(Unique_Node_List *for_igvn) { _for_igvn = for_igvn; }




 614     _last_tf_m = m;
 615     _last_tf = tf;
 616   }
 617 
 618   AliasType*        alias_type(int                idx)  { assert(idx < num_alias_types(), "oob"); return _alias_types[idx]; }
 619   AliasType*        alias_type(const TypePtr* adr_type, ciField* field = NULL) { return find_alias_type(adr_type, false, field); }
 620   bool         have_alias_type(const TypePtr* adr_type);
 621   AliasType*        alias_type(ciField*         field);
 622 
 623   int               get_alias_index(const TypePtr* at)  { return alias_type(at)->index(); }
 624   const TypePtr*    get_adr_type(uint aidx)             { return alias_type(aidx)->adr_type(); }
 625   int               get_general_index(uint aidx)        { return alias_type(aidx)->general_index(); }
 626 
 627   // Building nodes
 628   void              rethrow_exceptions(JVMState* jvms);
 629   void              return_values(JVMState* jvms);
 630   JVMState*         build_start_state(StartNode* start, const TypeFunc* tf);
 631 
 632   // Decide how to build a call.
 633   // The profile factor is a discount to apply to this site's interp. profile.
 634   CallGenerator*    call_generator(ciMethod* call_method, int vtable_index, bool call_is_virtual, JVMState* jvms, bool allow_inline, float profile_factor, bool allow_intrinsics = true);
 635   bool should_delay_inlining(ciMethod* call_method, JVMState* jvms);
 636 
 637   // Report if there were too many traps at a current method and bci.
 638   // Report if a trap was recorded, and/or PerMethodTrapLimit was exceeded.
 639   // If there is no MDO at all, report no trap unless told to assume it.
 640   bool too_many_traps(ciMethod* method, int bci, Deoptimization::DeoptReason reason);
 641   // This version, unspecific to a particular bci, asks if
 642   // PerMethodTrapLimit was exceeded for all inlined methods seen so far.
 643   bool too_many_traps(Deoptimization::DeoptReason reason,
 644                       // Privately used parameter for logging:
 645                       ciMethodData* logmd = NULL);
 646   // Report if there were too many recompiles at a method and bci.
 647   bool too_many_recompiles(ciMethod* method, int bci, Deoptimization::DeoptReason reason);
 648 
 649   // Parsing, optimization
 650   PhaseGVN*         initial_gvn()               { return _initial_gvn; }
 651   Unique_Node_List* for_igvn()                  { return _for_igvn; }
 652   inline void       record_for_igvn(Node* n);   // Body is after class Unique_Node_List.
 653   void          set_initial_gvn(PhaseGVN *gvn)           { _initial_gvn = gvn; }
 654   void          set_for_igvn(Unique_Node_List *for_igvn) { _for_igvn = for_igvn; }