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

C2: Compile::_for_igvn list is corrupted after RenumberLiveNodes

    XMLWordPrintable

Details

    • b21

    Description

      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 }

      Attachments

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved: