src/share/vm/opto/callGenerator.hpp

Print this page
rev 3898 : 8005031: Some cleanup in c2 to prepare for incremental inlining support
Summary: collection of small changes to prepare for incremental inlining.
Reviewed-by:


 130                                            float hit_prob);
 131 
 132   // How to make a call that optimistically assumes a MethodHandle target:
 133   static CallGenerator* for_predicted_dynamic_call(ciMethodHandle* predicted_method_handle,
 134                                                    CallGenerator* if_missed,
 135                                                    CallGenerator* if_hit,
 136                                                    float hit_prob);
 137 
 138   // How to make a call that gives up and goes back to the interpreter:
 139   static CallGenerator* for_uncommon_trap(ciMethod* m,
 140                                           Deoptimization::DeoptReason reason,
 141                                           Deoptimization::DeoptAction action);
 142 
 143   // Registry for intrinsics:
 144   static CallGenerator* for_intrinsic(ciMethod* m);
 145   static void register_intrinsic(ciMethod* m, CallGenerator* cg);
 146   static CallGenerator* for_predicted_intrinsic(CallGenerator* intrinsic,
 147                                                 CallGenerator* cg);
 148   virtual Node* generate_predicate(JVMState* jvms) { return NULL; };
 149 
 150   static void print_inlining(ciMethod* callee, int inline_level, int bci, const char* msg) {
 151     if (PrintInlining)
 152       CompileTask::print_inlining(callee, inline_level, bci, msg);
 153   }
 154 };
 155 
 156 
 157 //------------------------InlineCallGenerator----------------------------------
 158 class InlineCallGenerator : public CallGenerator {
 159  protected:
 160   InlineCallGenerator(ciMethod* method) : CallGenerator(method) {}
 161 
 162  public:
 163   virtual bool      is_inline() const           { return true; }
 164 };
 165 
 166 
 167 //---------------------------WarmCallInfo--------------------------------------
 168 // A struct to collect information about a given call site.
 169 // Helps sort call sites into "hot", "medium", and "cold".
 170 // Participates in the queueing of "medium" call sites for possible inlining.
 171 class WarmCallInfo : public ResourceObj {
 172  private:




 130                                            float hit_prob);
 131 
 132   // How to make a call that optimistically assumes a MethodHandle target:
 133   static CallGenerator* for_predicted_dynamic_call(ciMethodHandle* predicted_method_handle,
 134                                                    CallGenerator* if_missed,
 135                                                    CallGenerator* if_hit,
 136                                                    float hit_prob);
 137 
 138   // How to make a call that gives up and goes back to the interpreter:
 139   static CallGenerator* for_uncommon_trap(ciMethod* m,
 140                                           Deoptimization::DeoptReason reason,
 141                                           Deoptimization::DeoptAction action);
 142 
 143   // Registry for intrinsics:
 144   static CallGenerator* for_intrinsic(ciMethod* m);
 145   static void register_intrinsic(ciMethod* m, CallGenerator* cg);
 146   static CallGenerator* for_predicted_intrinsic(CallGenerator* intrinsic,
 147                                                 CallGenerator* cg);
 148   virtual Node* generate_predicate(JVMState* jvms) { return NULL; };
 149 
 150   static void print_inlining(Compile* C, ciMethod* callee, int inline_level, int bci, const char* msg) {
 151     if (PrintInlining)
 152       C->print_inlining(callee, inline_level, bci, msg);
 153   }
 154 };
 155 
 156 
 157 //------------------------InlineCallGenerator----------------------------------
 158 class InlineCallGenerator : public CallGenerator {
 159  protected:
 160   InlineCallGenerator(ciMethod* method) : CallGenerator(method) {}
 161 
 162  public:
 163   virtual bool      is_inline() const           { return true; }
 164 };
 165 
 166 
 167 //---------------------------WarmCallInfo--------------------------------------
 168 // A struct to collect information about a given call site.
 169 // Helps sort call sites into "hot", "medium", and "cold".
 170 // Participates in the queueing of "medium" call sites for possible inlining.
 171 class WarmCallInfo : public ResourceObj {
 172  private: