< prev index next >

src/share/vm/c1/c1_IR.hpp

Print this page




 227   GrowableArray<ScopeValue*>*   locals()      { return _locals;      }
 228   GrowableArray<ScopeValue*>*   expressions() { return _expressions; }
 229   GrowableArray<MonitorValue*>* monitors()    { return _monitors;    }
 230   IRScopeDebugInfo*             caller()      { return _caller;      }
 231 
 232   //Whether we should reexecute this bytecode for deopt
 233   bool should_reexecute();
 234 
 235   void record_debug_info(DebugInformationRecorder* recorder, int pc_offset, bool topmost, bool is_method_handle_invoke = false) {
 236     if (caller() != NULL) {
 237       // Order is significant:  Must record caller first.
 238       caller()->record_debug_info(recorder, pc_offset, false/*topmost*/);
 239     }
 240     DebugToken* locvals = recorder->create_scope_values(locals());
 241     DebugToken* expvals = recorder->create_scope_values(expressions());
 242     DebugToken* monvals = recorder->create_monitor_values(monitors());
 243     // reexecute allowed only for the topmost frame
 244     bool reexecute = topmost ? should_reexecute() : false;
 245     bool return_oop = false; // This flag will be ignored since it used only for C2 with escape analysis.
 246     bool rethrow_exception = false;
 247     recorder->describe_scope(pc_offset, methodHandle(), scope()->method(), bci(), reexecute, rethrow_exception, is_method_handle_invoke, return_oop, locvals, expvals, monvals);
 248   }
 249 };
 250 
 251 
 252 class CodeEmitInfo: public CompilationResourceObj {
 253   friend class LinearScan;
 254  private:
 255   IRScopeDebugInfo* _scope_debug_info;
 256   IRScope*          _scope;
 257   XHandlers*        _exception_handlers;
 258   OopMap*           _oop_map;
 259   ValueStack*       _stack;                      // used by deoptimization (contains also monitors
 260   bool              _is_method_handle_invoke;    // true if the associated call site is a MethodHandle call site.
 261   bool              _deoptimize_on_exception;
 262 
 263   FrameMap*     frame_map() const                { return scope()->compilation()->frame_map(); }
 264   Compilation*  compilation() const              { return scope()->compilation(); }
 265 
 266  public:
 267 




 227   GrowableArray<ScopeValue*>*   locals()      { return _locals;      }
 228   GrowableArray<ScopeValue*>*   expressions() { return _expressions; }
 229   GrowableArray<MonitorValue*>* monitors()    { return _monitors;    }
 230   IRScopeDebugInfo*             caller()      { return _caller;      }
 231 
 232   //Whether we should reexecute this bytecode for deopt
 233   bool should_reexecute();
 234 
 235   void record_debug_info(DebugInformationRecorder* recorder, int pc_offset, bool topmost, bool is_method_handle_invoke = false) {
 236     if (caller() != NULL) {
 237       // Order is significant:  Must record caller first.
 238       caller()->record_debug_info(recorder, pc_offset, false/*topmost*/);
 239     }
 240     DebugToken* locvals = recorder->create_scope_values(locals());
 241     DebugToken* expvals = recorder->create_scope_values(expressions());
 242     DebugToken* monvals = recorder->create_monitor_values(monitors());
 243     // reexecute allowed only for the topmost frame
 244     bool reexecute = topmost ? should_reexecute() : false;
 245     bool return_oop = false; // This flag will be ignored since it used only for C2 with escape analysis.
 246     bool rethrow_exception = false;
 247     recorder->describe_scope(pc_offset, methodHandle(), scope()->method(), bci(), reexecute, rethrow_exception, is_method_handle_invoke, return_oop, false, locvals, expvals, monvals);
 248   }
 249 };
 250 
 251 
 252 class CodeEmitInfo: public CompilationResourceObj {
 253   friend class LinearScan;
 254  private:
 255   IRScopeDebugInfo* _scope_debug_info;
 256   IRScope*          _scope;
 257   XHandlers*        _exception_handlers;
 258   OopMap*           _oop_map;
 259   ValueStack*       _stack;                      // used by deoptimization (contains also monitors
 260   bool              _is_method_handle_invoke;    // true if the associated call site is a MethodHandle call site.
 261   bool              _deoptimize_on_exception;
 262 
 263   FrameMap*     frame_map() const                { return scope()->compilation()->frame_map(); }
 264   Compilation*  compilation() const              { return scope()->compilation(); }
 265 
 266  public:
 267 


< prev index next >