Mistake in PhaseCPP::analyze()?

Roman Kennke rkennke at redhat.com
Mon Nov 19 16:16:00 UTC 2018


I see this code in PhaseCCP::analyze() in phaseX.cpp:

              if (has_load_barriers) {
                // Search for load barriers behind the load
                for (DUIterator_Fast i3max, i3 = u->fast_outs(i3max); i3
< i3max; i3++) {
                  Node* b = u->fast_out(i3);
                  if (bs->is_gc_barrier_node(b)) {
                    _worklist.push(b);
                  }
                }
              }
              worklist.push(u);

It pushes to _worklist in the inner case (ZGC), but to worklist in the
outer (general). worklist is the one that's iterated. Is this
intentional or a mistake?

Roman



More information about the zgc-dev mailing list