RFR: ShenandoahWBMemProjNode doesn't need to subclass ProjNode

Roland Westrelin rwestrel at redhat.com
Mon Oct 22 12:49:26 UTC 2018


> *) This looks weird: it checks that n->in(0) is NULL, and then dereferences through it?
>
> 1091     } else if (n->Opcode() == Op_ShenandoahWBMemProj) {
> 1092       assert(n->in(0) == NULL && n->in(ShenandoahWBMemProjNode::WriteBarrier)->Opcode() ==
> Op_ShenandoahWriteBarrier, "strange ShenandoahWBMemProj");
>
> Or maybe I am misreading it, and input 0 is actually ShenandoahWBMemProjNode::Control (implied to be
> at zero always?) and ShenandoahWBMemProjNode::WriteBarrier is 1?

Yes, 0 is control which should remains null. 1 is the write barrier.

Roland.


More information about the shenandoah-dev mailing list