src/share/vm/c1/c1_IR.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Sdiff src/share/vm/c1

src/share/vm/c1/c1_IR.hpp

Print this page
rev 6132 : 8032410: compiler/uncommontrap/TestStackBangRbp.java times out on Solaris-Sparc V9
Summary: make compiled code bang the stack by the worst case size of the interpreter frame at deoptimization points.
Reviewed-by:


 267 
 268   // use scope from ValueStack
 269   CodeEmitInfo(ValueStack* stack, XHandlers* exception_handlers, bool deoptimize_on_exception = false);
 270 
 271   // make a copy
 272   CodeEmitInfo(CodeEmitInfo* info, ValueStack* stack = NULL);
 273 
 274   // accessors
 275   OopMap* oop_map()                              { return _oop_map; }
 276   ciMethod* method() const                       { return _scope->method(); }
 277   IRScope* scope() const                         { return _scope; }
 278   XHandlers* exception_handlers() const          { return _exception_handlers; }
 279   ValueStack* stack() const                      { return _stack; }
 280   bool deoptimize_on_exception() const           { return _deoptimize_on_exception; }
 281 
 282   void add_register_oop(LIR_Opr opr);
 283   void record_debug_info(DebugInformationRecorder* recorder, int pc_offset);
 284 
 285   bool     is_method_handle_invoke() const { return _is_method_handle_invoke;     }
 286   void set_is_method_handle_invoke(bool x) {        _is_method_handle_invoke = x; }


 287 };
 288 
 289 
 290 class IR: public CompilationResourceObj {
 291  private:
 292   Compilation*     _compilation;                 // the current compilation
 293   IRScope*         _top_scope;                   // the root of the scope hierarchy
 294   WordSize         _locals_size;                 // the space required for all locals
 295   int              _num_loops;                   // Total number of loops
 296   BlockList*       _code;                        // the blocks in code generation order w/ use counts
 297 
 298  public:
 299   // creation
 300   IR(Compilation* compilation, ciMethod* method, int osr_bci);
 301 
 302   // accessors
 303   bool             is_valid() const              { return top_scope()->is_valid(); }
 304   Compilation*     compilation() const           { return _compilation; }
 305   IRScope*         top_scope() const             { return _top_scope; }
 306   int              number_of_locks() const       { return top_scope()->number_of_locks(); }




 267 
 268   // use scope from ValueStack
 269   CodeEmitInfo(ValueStack* stack, XHandlers* exception_handlers, bool deoptimize_on_exception = false);
 270 
 271   // make a copy
 272   CodeEmitInfo(CodeEmitInfo* info, ValueStack* stack = NULL);
 273 
 274   // accessors
 275   OopMap* oop_map()                              { return _oop_map; }
 276   ciMethod* method() const                       { return _scope->method(); }
 277   IRScope* scope() const                         { return _scope; }
 278   XHandlers* exception_handlers() const          { return _exception_handlers; }
 279   ValueStack* stack() const                      { return _stack; }
 280   bool deoptimize_on_exception() const           { return _deoptimize_on_exception; }
 281 
 282   void add_register_oop(LIR_Opr opr);
 283   void record_debug_info(DebugInformationRecorder* recorder, int pc_offset);
 284 
 285   bool     is_method_handle_invoke() const { return _is_method_handle_invoke;     }
 286   void set_is_method_handle_invoke(bool x) {        _is_method_handle_invoke = x; }
 287 
 288   int interpreter_frame_size() const;
 289 };
 290 
 291 
 292 class IR: public CompilationResourceObj {
 293  private:
 294   Compilation*     _compilation;                 // the current compilation
 295   IRScope*         _top_scope;                   // the root of the scope hierarchy
 296   WordSize         _locals_size;                 // the space required for all locals
 297   int              _num_loops;                   // Total number of loops
 298   BlockList*       _code;                        // the blocks in code generation order w/ use counts
 299 
 300  public:
 301   // creation
 302   IR(Compilation* compilation, ciMethod* method, int osr_bci);
 303 
 304   // accessors
 305   bool             is_valid() const              { return top_scope()->is_valid(); }
 306   Compilation*     compilation() const           { return _compilation; }
 307   IRScope*         top_scope() const             { return _top_scope; }
 308   int              number_of_locks() const       { return top_scope()->number_of_locks(); }


src/share/vm/c1/c1_IR.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File