src/share/vm/c1/c1_CodeStubs.hpp

Print this page
rev 2893 : 7121756: Improve C1 inlining policy by using profiling at call sites
Summary: profile based recompilation of methods with C1 with more inlining.
Reviewed-by:

@@ -472,10 +472,32 @@
 #ifndef PRODUCT
   virtual void print_name(outputStream* out) const { out->print("SimpleExceptionStub"); }
 #endif // PRODUCT
 };
 
+class InvalidateProfileInliningStub: public CodeStub {
+ private:
+  CodeEmitInfo*    _info;
+  LIR_Opr          _obj;
+  ciKlass*         _klass;
+
+ public:
+  InvalidateProfileInliningStub(LIR_Opr obj, ciKlass* k, CodeEmitInfo* info):
+    _obj(obj), _klass(k), _info(info)
+  {
+  }
+
+  virtual void emit_code(LIR_Assembler* e);
+  virtual CodeEmitInfo* info() const             { return _info; }
+  virtual void visit(LIR_OpVisitState* visitor) {
+    visitor->do_input(_obj);
+    visitor->do_slow_case(_info);
+  }
+#ifndef PRODUCT
+  virtual void print_name(outputStream* out) const { out->print("InvalidateProfileInliningStub"); }
+#endif // PRODUCT
+};
 
 
 class ArrayStoreExceptionStub: public SimpleExceptionStub {
  private:
   CodeEmitInfo* _info;