src/share/vm/c1/c1_IR.hpp

changeset 2174
f02a8bbe6ed4
parent 1939
b812ff5abc73
child 2314
f95d63e2154a
     1.1 --- a/src/share/vm/c1/c1_IR.hpp	Wed Sep 22 23:51:03 2010 -0700
     1.2 +++ b/src/share/vm/c1/c1_IR.hpp	Tue Dec 29 19:08:54 2009 +0100
     1.3 @@ -132,8 +132,6 @@
     1.4    // hierarchy
     1.5    Compilation*  _compilation;                    // the current compilation
     1.6    IRScope*      _caller;                         // the caller scope, or NULL
     1.7 -  int           _caller_bci;                     // the caller bci of the corresponding (inlined) invoke, or < 0
     1.8 -  ValueStack*   _caller_state;                   // the caller state, or NULL
     1.9    int           _level;                          // the inlining level
    1.10    ciMethod*     _method;                         // the corresponding method
    1.11    IRScopeList   _callees;                        // the inlined method scopes
    1.12 @@ -144,15 +142,9 @@
    1.13    bool          _monitor_pairing_ok;             // the monitor pairing info
    1.14    BlockBegin*   _start;                          // the start block, successsors are method entries
    1.15  
    1.16 -  // lock stack management
    1.17 -  int           _lock_stack_size;                // number of expression stack elements which, if present,
    1.18 -                                                 // must be spilled to the stack because of exception
    1.19 -                                                 // handling inside inlined methods
    1.20 -
    1.21    BitMap        _requires_phi_function;          // bit is set if phi functions at loop headers are necessary for a local variable
    1.22  
    1.23    // helper functions
    1.24 -  BlockBegin* header_block(BlockBegin* entry, BlockBegin::Flag f, ValueStack* state);
    1.25    BlockBegin* build_graph(Compilation* compilation, int osr_bci);
    1.26  
    1.27   public:
    1.28 @@ -162,33 +154,16 @@
    1.29    // accessors
    1.30    Compilation*  compilation() const              { return _compilation; }
    1.31    IRScope*      caller() const                   { return _caller; }
    1.32 -  int           caller_bci() const               { return _caller_bci; }
    1.33 -  ValueStack*   caller_state() const             { return _caller_state; }
    1.34    int           level() const                    { return _level; }
    1.35    ciMethod*     method() const                   { return _method; }
    1.36    int           max_stack() const;               // NOTE: expensive
    1.37 -  int           lock_stack_size() const          {
    1.38 -    assert(_lock_stack_size != -1, "uninitialized");
    1.39 -    return _lock_stack_size;
    1.40 -  }
    1.41    BitMap&       requires_phi_function()          { return _requires_phi_function; }
    1.42  
    1.43 -  // mutators
    1.44 -  // Needed because caller state is not ready at time of IRScope construction
    1.45 -  void          set_caller_state(ValueStack* state) { _caller_state = state; }
    1.46 -  // Needed because caller state changes after IRScope construction.
    1.47 -  // Computes number of expression stack elements whose state must be
    1.48 -  // preserved in the case of an exception; these may be seen by
    1.49 -  // caller scopes. Zero when inlining of methods containing exception
    1.50 -  // handlers is disabled, otherwise a conservative approximation.
    1.51 -  void          compute_lock_stack_size();
    1.52 -
    1.53    // hierarchy
    1.54    bool          is_top_scope() const             { return _caller == NULL; }
    1.55    void          add_callee(IRScope* callee)      { _callees.append(callee); }
    1.56    int           number_of_callees() const        { return _callees.length(); }
    1.57    IRScope*      callee_no(int i) const           { return _callees.at(i); }
    1.58 -  int           top_scope_bci() const;
    1.59  
    1.60    // accessors, graph
    1.61    bool          is_valid() const                 { return start() != NULL; }
    1.62 @@ -266,9 +241,6 @@
    1.63    XHandlers*        _exception_handlers;
    1.64    OopMap*           _oop_map;
    1.65    ValueStack*       _stack;                      // used by deoptimization (contains also monitors
    1.66 -  int               _bci;
    1.67 -  CodeEmitInfo*     _next;
    1.68 -  int               _id;
    1.69    bool              _is_method_handle_invoke;    // true if the associated call site is a MethodHandle call site.
    1.70  
    1.71    FrameMap*     frame_map() const                { return scope()->compilation()->frame_map(); }
    1.72 @@ -277,23 +249,10 @@
    1.73   public:
    1.74  
    1.75    // use scope from ValueStack
    1.76 -  CodeEmitInfo(int bci, ValueStack* stack, XHandlers* exception_handlers);
    1.77 -
    1.78 -  // used by natives
    1.79 -  CodeEmitInfo(IRScope* scope, int bci)
    1.80 -    : _scope(scope)
    1.81 -    , _bci(bci)
    1.82 -    , _oop_map(NULL)
    1.83 -    , _scope_debug_info(NULL)
    1.84 -    , _stack(NULL)
    1.85 -    , _exception_handlers(NULL)
    1.86 -    , _next(NULL)
    1.87 -    , _id(-1)
    1.88 -    , _is_method_handle_invoke(false) {
    1.89 -  }
    1.90 +  CodeEmitInfo(ValueStack* stack, XHandlers* exception_handlers);
    1.91  
    1.92    // make a copy
    1.93 -  CodeEmitInfo(CodeEmitInfo* info, bool lock_stack_only = false);
    1.94 +  CodeEmitInfo(CodeEmitInfo* info, ValueStack* stack = NULL);
    1.95  
    1.96    // accessors
    1.97    OopMap* oop_map()                              { return _oop_map; }
    1.98 @@ -301,17 +260,10 @@
    1.99    IRScope* scope() const                         { return _scope; }
   1.100    XHandlers* exception_handlers() const          { return _exception_handlers; }
   1.101    ValueStack* stack() const                      { return _stack; }
   1.102 -  int bci() const                                { return _bci; }
   1.103  
   1.104    void add_register_oop(LIR_Opr opr);
   1.105    void record_debug_info(DebugInformationRecorder* recorder, int pc_offset);
   1.106  
   1.107 -  CodeEmitInfo* next() const        { return _next; }
   1.108 -  void set_next(CodeEmitInfo* next) { _next = next; }
   1.109 -
   1.110 -  int id() const      { return _id; }
   1.111 -  void set_id(int id) { _id = id; }
   1.112 -
   1.113    bool     is_method_handle_invoke() const { return _is_method_handle_invoke;     }
   1.114    void set_is_method_handle_invoke(bool x) {        _is_method_handle_invoke = x; }
   1.115  };

mercurial