RFR: Backport reshaped write barrier expansion to JDK11
Roman Kennke
rkennke at redhat.com
Thu Dec 13 10:31:45 UTC 2018
Ah right, thanks for pointing out. I'll 'backport' the ideal fluff later
in a separate patch.
I'll hold this back until we tagged the tree for RPMs.
Roman
>
>> http://cr.openjdk.java.net/~rkennke/shjdk11-wb-expansion/webrev.00/
>
> Code you remove from ifnode.cpp is now done in
> ShenandoahBarrierSetC2::ideal_node():
>
> } else if (can_reshape &&
> n->Opcode() == Op_If &&
> ShenandoahWriteBarrierNode::is_heap_stable_test(n) &&
> n->in(0) != NULL) {
> Node* dom = n->in(0);
> Node* prev_dom = n;
> int op = n->Opcode();
> int dist = 16;
> // Search up the dominator tree for another heap stable test
> while (dom->Opcode() != op || // Not same opcode?
> !ShenandoahWriteBarrierNode::is_heap_stable_test(dom) || // Not same input 1?
> prev_dom->in(0) != dom) { // One path of test does not dominate?
> if (dist < 0) return NULL;
>
> dist--;
> prev_dom = dom;
> dom = IfNode::up_one_dom(dom);
> if (!dom) return NULL;
> }
>
> // Check that we did not follow a loop back to ourselves
> if (n == dom) {
> return NULL;
> }
>
> return n->as_If()->dominated_by(prev_dom, phase->is_IterGVN());
> }
>
> The rest looks ok AFAICT.
>
> Roland.
>
More information about the shenandoah-dev
mailing list