src/share/vm/c1/c1_LIRAssembler.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:


 121   ~LIR_Assembler();
 122   C1_MacroAssembler* masm() const                { return _masm; }
 123   Compilation* compilation() const               { return _compilation; }
 124   ciMethod* method() const                       { return compilation()->method(); }
 125 
 126   CodeOffsets* offsets() const                   { return _compilation->offsets(); }
 127   int code_offset() const;
 128   address pc() const;
 129 
 130   int  initial_frame_size_in_bytes();
 131 
 132   // test for constants which can be encoded directly in instructions
 133   static bool is_small_constant(LIR_Opr opr);
 134 
 135   static LIR_Opr receiverOpr();
 136   static LIR_Opr osrBufferPointer();
 137 
 138   // stubs
 139   void emit_slow_case_stubs();
 140   void emit_static_call_stub();

 141   void emit_code_stub(CodeStub* op);
 142   void add_call_info_here(CodeEmitInfo* info)                              { add_call_info(code_offset(), info); }
 143 
 144   // code patterns
 145   int  emit_exception_handler();
 146   int  emit_unwind_handler();
 147   void emit_exception_entries(ExceptionInfoList* info_list);
 148   int  emit_deopt_handler();
 149 
 150   void emit_code(BlockList* hir);
 151   void emit_block(BlockBegin* block);
 152   void emit_lir_list(LIR_List* list);
 153 
 154   // any last minute peephole optimizations are performed here.  In
 155   // particular sparc uses this for delay slot filling.
 156   void peephole(LIR_List* list);
 157 
 158   void emit_string_compare(LIR_Opr left, LIR_Opr right, LIR_Opr dst, CodeEmitInfo* info);
 159 
 160   void return_op(LIR_Opr result);




 121   ~LIR_Assembler();
 122   C1_MacroAssembler* masm() const                { return _masm; }
 123   Compilation* compilation() const               { return _compilation; }
 124   ciMethod* method() const                       { return compilation()->method(); }
 125 
 126   CodeOffsets* offsets() const                   { return _compilation->offsets(); }
 127   int code_offset() const;
 128   address pc() const;
 129 
 130   int  initial_frame_size_in_bytes();
 131 
 132   // test for constants which can be encoded directly in instructions
 133   static bool is_small_constant(LIR_Opr opr);
 134 
 135   static LIR_Opr receiverOpr();
 136   static LIR_Opr osrBufferPointer();
 137 
 138   // stubs
 139   void emit_slow_case_stubs();
 140   void emit_static_call_stub();
 141   void emit_profile_call_stub(ciMethod* method, int bci, address dest);
 142   void emit_code_stub(CodeStub* op);
 143   void add_call_info_here(CodeEmitInfo* info)                              { add_call_info(code_offset(), info); }
 144 
 145   // code patterns
 146   int  emit_exception_handler();
 147   int  emit_unwind_handler();
 148   void emit_exception_entries(ExceptionInfoList* info_list);
 149   int  emit_deopt_handler();
 150 
 151   void emit_code(BlockList* hir);
 152   void emit_block(BlockBegin* block);
 153   void emit_lir_list(LIR_List* list);
 154 
 155   // any last minute peephole optimizations are performed here.  In
 156   // particular sparc uses this for delay slot filling.
 157   void peephole(LIR_List* list);
 158 
 159   void emit_string_compare(LIR_Opr left, LIR_Opr right, LIR_Opr dst, CodeEmitInfo* info);
 160 
 161   void return_op(LIR_Opr result);