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

src/share/vm/c1/c1_IR.hpp

Print this page




 222                    int                           bci,
 223                    GrowableArray<ScopeValue*>*   locals,
 224                    GrowableArray<ScopeValue*>*   expressions,
 225                    GrowableArray<MonitorValue*>* monitors,
 226                    IRScopeDebugInfo*             caller):
 227       _scope(scope)
 228     , _locals(locals)
 229     , _bci(bci)
 230     , _expressions(expressions)
 231     , _monitors(monitors)
 232     , _caller(caller) {}
 233 
 234 
 235   IRScope*                      scope()       { return _scope;       }
 236   int                           bci()         { return _bci;         }
 237   GrowableArray<ScopeValue*>*   locals()      { return _locals;      }
 238   GrowableArray<ScopeValue*>*   expressions() { return _expressions; }
 239   GrowableArray<MonitorValue*>* monitors()    { return _monitors;    }
 240   IRScopeDebugInfo*             caller()      { return _caller;      }
 241 
 242   void record_debug_info(DebugInformationRecorder* recorder, int pc_offset) {



 243     if (caller() != NULL) {
 244       // Order is significant:  Must record caller first.
 245       caller()->record_debug_info(recorder, pc_offset);
 246     }
 247     DebugToken* locvals = recorder->create_scope_values(locals());
 248     DebugToken* expvals = recorder->create_scope_values(expressions());
 249     DebugToken* monvals = recorder->create_monitor_values(monitors());
 250     recorder->describe_scope(pc_offset, scope()->method(), bci(), locvals, expvals, monvals);


 251   }
 252 };
 253 
 254 
 255 class CodeEmitInfo: public CompilationResourceObj {
 256   friend class LinearScan;
 257  private:
 258   IRScopeDebugInfo* _scope_debug_info;
 259   IRScope*          _scope;
 260   XHandlers*        _exception_handlers;
 261   OopMap*           _oop_map;
 262   ValueStack*       _stack;                      // used by deoptimization (contains also monitors
 263   int               _bci;
 264   CodeEmitInfo*     _next;
 265   int               _id;
 266 
 267   FrameMap*     frame_map() const                { return scope()->compilation()->frame_map(); }
 268   Compilation*  compilation() const              { return scope()->compilation(); }
 269 
 270  public:




 222                    int                           bci,
 223                    GrowableArray<ScopeValue*>*   locals,
 224                    GrowableArray<ScopeValue*>*   expressions,
 225                    GrowableArray<MonitorValue*>* monitors,
 226                    IRScopeDebugInfo*             caller):
 227       _scope(scope)
 228     , _locals(locals)
 229     , _bci(bci)
 230     , _expressions(expressions)
 231     , _monitors(monitors)
 232     , _caller(caller) {}
 233 
 234 
 235   IRScope*                      scope()       { return _scope;       }
 236   int                           bci()         { return _bci;         }
 237   GrowableArray<ScopeValue*>*   locals()      { return _locals;      }
 238   GrowableArray<ScopeValue*>*   expressions() { return _expressions; }
 239   GrowableArray<MonitorValue*>* monitors()    { return _monitors;    }
 240   IRScopeDebugInfo*             caller()      { return _caller;      }
 241 
 242   //Whether we should reexecute this bytecode for deopt
 243   bool should_reexecute();
 244 
 245   void record_debug_info(DebugInformationRecorder* recorder, int pc_offset, bool topmost) {
 246     if (caller() != NULL) {
 247       // Order is significant:  Must record caller first.
 248       caller()->record_debug_info(recorder, pc_offset, false/*topmost*/);
 249     }
 250     DebugToken* locvals = recorder->create_scope_values(locals());
 251     DebugToken* expvals = recorder->create_scope_values(expressions());
 252     DebugToken* monvals = recorder->create_monitor_values(monitors());
 253     // reexecute allowed only for the topmost frame
 254     bool      reexecute = topmost ? should_reexecute() : false;
 255     recorder->describe_scope(pc_offset, scope()->method(), bci(), reexecute, locvals, expvals, monvals);
 256   }
 257 };
 258 
 259 
 260 class CodeEmitInfo: public CompilationResourceObj {
 261   friend class LinearScan;
 262  private:
 263   IRScopeDebugInfo* _scope_debug_info;
 264   IRScope*          _scope;
 265   XHandlers*        _exception_handlers;
 266   OopMap*           _oop_map;
 267   ValueStack*       _stack;                      // used by deoptimization (contains also monitors
 268   int               _bci;
 269   CodeEmitInfo*     _next;
 270   int               _id;
 271 
 272   FrameMap*     frame_map() const                { return scope()->compilation()->frame_map(); }
 273   Compilation*  compilation() const              { return scope()->compilation(); }
 274 
 275  public:


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