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;