< prev index next >

src/hotspot/share/code/scopeDesc.hpp

Print this page
rev 60137 : 8227745: Enable Escape Analysis for Better Performance in the Presence of JVMTI Agents
Reviewed-by: mdoerr, goetz

*** 1,7 **** /* ! * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 1997, 2020, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 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 >