< prev index next >

src/hotspot/share/c1/c1_IR.cpp

Print this page
@@ -140,11 +140,11 @@
    _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;
  

@@ -169,10 +169,13 @@
    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);

@@ -210,15 +213,15 @@
      _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 >