src/share/vm/opto/addnode.cpp

changeset 4357
ad5dd04754ee
parent 4153
b9a9ed0f8eeb
child 6876
710a3c8b516e
child 9610
f43f77de876a
     1.1 --- a/src/share/vm/opto/addnode.cpp	Mon Dec 17 11:00:22 2012 -0800
     1.2 +++ b/src/share/vm/opto/addnode.cpp	Tue Dec 18 14:55:25 2012 +0100
     1.3 @@ -189,6 +189,11 @@
     1.4        set_req(1, addx);
     1.5        set_req(2, a22);
     1.6        progress = this;
     1.7 +      PhaseIterGVN *igvn = phase->is_IterGVN();
     1.8 +      if (add2->outcnt() == 0 && igvn) {
     1.9 +        // add disconnected.
    1.10 +        igvn->_worklist.push(add2);
    1.11 +      }
    1.12      }
    1.13    }
    1.14  
    1.15 @@ -624,6 +629,11 @@
    1.16      if( t22->singleton() && (t22 != Type::TOP) ) {  // Right input is an add of a constant?
    1.17        set_req(Address, phase->transform(new (phase->C) AddPNode(in(Base),in(Address),add->in(1))));
    1.18        set_req(Offset, add->in(2));
    1.19 +      PhaseIterGVN *igvn = phase->is_IterGVN();
    1.20 +      if (add->outcnt() == 0 && igvn) {
    1.21 +        // add disconnected.
    1.22 +        igvn->_worklist.push((Node*)add);
    1.23 +      }
    1.24        return this;              // Made progress
    1.25      }
    1.26    }

mercurial