< prev index next >
src/hotspot/share/code/scopeDesc.hpp
Print this page
rev 56101 : 8227745: Enable Escape Analysis for better performance when debugging
Reviewed-by: ???
*** 58,83 ****
// nmethods possible; each scopeDesc describes a method activation
class ScopeDesc : public ResourceObj {
public:
// Constructor
! ScopeDesc(const CompiledMethod* code, int decode_offset, int obj_decode_offset, bool reexecute, bool rethrow_exception, bool return_oop);
!
! // Calls above, giving default value of "serialized_null" to the
! // "obj_decode_offset" argument. (We don't use a default argument to
! // avoid a .hpp-.hpp dependency.)
! ScopeDesc(const CompiledMethod* code, int decode_offset, bool reexecute, bool rethrow_exception, bool return_oop);
// Direct access to scope
ScopeDesc* at_offset(int decode_offset) { return new ScopeDesc(this, decode_offset); }
// JVM state
Method* method() const { return _method; }
int bci() const { return _bci; }
bool should_reexecute() const { return _reexecute; }
bool rethrow_exception() const { return _rethrow_exception; }
bool return_oop() const { return _return_oop; }
GrowableArray<ScopeValue*>* locals();
GrowableArray<ScopeValue*>* expressions();
GrowableArray<MonitorValue*>* monitors();
GrowableArray<ScopeValue*>* objects();
--- 58,80 ----
// nmethods possible; each scopeDesc describes a method activation
class ScopeDesc : public ResourceObj {
public:
// Constructor
! ScopeDesc(const CompiledMethod* code, PcDesc* pd, bool ignore_objects = false);
// Direct access to scope
ScopeDesc* at_offset(int decode_offset) { return new ScopeDesc(this, decode_offset); }
// JVM state
Method* method() const { return _method; }
int bci() const { return _bci; }
bool should_reexecute() const { return _reexecute; }
bool rethrow_exception() const { return _rethrow_exception; }
bool return_oop() const { return _return_oop; }
+ bool not_global_escape_in_scope() const { return _not_global_escape_in_scope; }
+ bool arg_escape() const { return _arg_escape; }
GrowableArray<ScopeValue*>* locals();
GrowableArray<ScopeValue*>* expressions();
GrowableArray<MonitorValue*>* monitors();
GrowableArray<ScopeValue*>* objects();
*** 103,112 ****
--- 100,111 ----
Method* _method;
int _bci;
bool _reexecute;
bool _rethrow_exception;
bool _return_oop;
+ bool _not_global_escape_in_scope; // NoEscape or ArgEscape in any of the scopes at compiled pc
+ bool _arg_escape; // Compiled Java call in youngest scope passes ArgEscape
// Decoding offsets
int _decode_offset;
int _sender_decode_offset;
int _locals_decode_offset;
< prev index next >