Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8251271

C2: Compile::_for_igvn list is corrupted after RenumberLiveNodes

XMLWordPrintable

    • b21

      RenumberLiveNodes pass sets on-stack allocated list (new_worklist) as Compile::_for_igvn, but doesn't reset it after IGVN. It makes Compile::_for_igvn unusable after RenumberLiveNodes is over.

      2098 if (!failing() && RenumberLiveNodes && live_nodes() + NodeLimitFudgeFactor < unique()) {
      2099 Compile::TracePhase tp("", &timers[_t_renumberLive]);
      2100 initial_gvn()->replace_with(&igvn);
      2101 for_igvn()->clear();
      2102 Unique_Node_List new_worklist(C->comp_arena());
      2103 {
      2104 ResourceMark rm;
      2105 PhaseRenumberLive prl = PhaseRenumberLive(initial_gvn(), for_igvn(), &new_worklist);
      2106 }
      2107 set_for_igvn(&new_worklist);
      2108 igvn = PhaseIterGVN(initial_gvn());
      2109 igvn.optimize();
      2110 }

            ngrcevski Nikola Grcevski
            vlivanov Vladimir Ivanov
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: