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,481 ****
--- 472,503 ----
#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;