< prev index next > src/hotspot/share/c1/c1_IR.cpp
Print this page
_level = caller == nullptr ? 0 : caller->level() + 1;
_method = method;
_xhandlers = new XHandlers(method);
_number_of_locks = 0;
_monitor_pairing_ok = method->has_balanced_monitors();
- _wrote_final = false;
+ _wrote_non_strict_final = false;
_wrote_fields = false;
_wrote_volatile = false;
_wrote_stable = false;
_start = nullptr;
return my_max + callee_max;
}
bool IRScopeDebugInfo::should_reexecute() {
+ if (_should_reexecute) {
+ return true;
+ }
ciMethod* cur_method = scope()->method();
int cur_bci = bci();
if (cur_method != nullptr && cur_bci != SynchronizationEntryBCI) {
Bytecodes::Code code = cur_method->java_code_at_bci(cur_bci);
return Interpreter::bytecode_should_reexecute(code);
_exception_handlers = new XHandlers(info->_exception_handlers);
}
}
- void CodeEmitInfo::record_debug_info(DebugInformationRecorder* recorder, int pc_offset) {
+ void CodeEmitInfo::record_debug_info(DebugInformationRecorder* recorder, int pc_offset, bool maybe_return_as_fields) {
// record the safepoint before recording the debug info for enclosing scopes
recorder->add_safepoint(pc_offset, _oop_map->deep_copy());
bool reexecute = _force_reexecute || _scope_debug_info->should_reexecute();
- _scope_debug_info->record_debug_info(recorder, pc_offset, reexecute);
+ _scope_debug_info->record_debug_info(recorder, pc_offset, reexecute, maybe_return_as_fields);
recorder->end_safepoint(pc_offset);
}
void CodeEmitInfo::add_register_oop(LIR_Opr opr) {
< prev index next >