< prev index next >
src/hotspot/share/runtime/vframe_hp.hpp
Print this page
rev 56101 : 8227745: Enable Escape Analysis for better performance when debugging
Reviewed-by: ???
*** 35,44 ****
--- 35,46 ----
bool should_reexecute() const;
StackValueCollection* locals() const;
StackValueCollection* expressions() const;
GrowableArray<MonitorInfo*>* monitors() const;
int vframe_id() const { return _vframe_id; }
+ bool not_global_escape_in_scope() const;
+ bool arg_escape() const; // at call with arg escape in parameter list
void set_locals(StackValueCollection* values) const;
// Virtuals defined in vframe
bool is_compiled_frame() const { return true; }
*** 109,118 ****
--- 111,121 ----
Method* _method;
int _bci;
intptr_t* _id;
int _vframe_id;
GrowableArray<jvmtiDeferredLocalVariable*>* _locals;
+ bool _objects_are_deoptimized;
void update_value(StackValueCollection* locals, BasicType type, int index, jvalue value);
void set_value_at(int idx, BasicType typ, jvalue val);
*** 120,136 ****
--- 123,143 ----
// JVM state
Method* method() const { return _method; }
int bci() const { return _bci; }
intptr_t* id() const { return _id; }
int vframe_id() const { return _vframe_id; }
+ bool objects_are_deoptimized() const { return _objects_are_deoptimized; }
void update_locals(StackValueCollection* locals);
void update_stack(StackValueCollection* locals);
void update_monitors(GrowableArray<MonitorInfo*>* monitors);
+ void set_objs_are_deoptimized() { _objects_are_deoptimized = true; }
// Does the vframe match this jvmtiDeferredLocalVariableSet
bool matches(const vframe* vf);
+ // Does the underlying physical frame match this jvmtiDeferredLocalVariableSet
+ bool matches(intptr_t* fr_id) { return id() == fr_id; }
// GC
void oops_do(OopClosure* f);
// constructor
jvmtiDeferredLocalVariableSet(Method* method, int bci, intptr_t* id, int vframe_id);
< prev index next >