comparison src/share/vm/opto/addnode.cpp @ 7421:ad5dd04754ee

8005031: Some cleanup in c2 to prepare for incremental inlining support Summary: collection of small changes to prepare for incremental inlining. Reviewed-by: twisti, kvn
author roland
date Tue, 18 Dec 2012 14:55:25 +0100
parents b9a9ed0f8eeb
children
comparison
equal deleted inserted replaced
7420:18d56ca3e901 7421:ad5dd04754ee
187 addx->set_req(2, add2->in(1)); 187 addx->set_req(2, add2->in(1));
188 addx = phase->transform(addx); 188 addx = phase->transform(addx);
189 set_req(1, addx); 189 set_req(1, addx);
190 set_req(2, a22); 190 set_req(2, a22);
191 progress = this; 191 progress = this;
192 PhaseIterGVN *igvn = phase->is_IterGVN();
193 if (add2->outcnt() == 0 && igvn) {
194 // add disconnected.
195 igvn->_worklist.push(add2);
196 }
192 } 197 }
193 } 198 }
194 199
195 return progress; 200 return progress;
196 } 201 }
622 if( add->Opcode() == Op_AddX && add->in(1) != add ) { 627 if( add->Opcode() == Op_AddX && add->in(1) != add ) {
623 const Type *t22 = phase->type( add->in(2) ); 628 const Type *t22 = phase->type( add->in(2) );
624 if( t22->singleton() && (t22 != Type::TOP) ) { // Right input is an add of a constant? 629 if( t22->singleton() && (t22 != Type::TOP) ) { // Right input is an add of a constant?
625 set_req(Address, phase->transform(new (phase->C) AddPNode(in(Base),in(Address),add->in(1)))); 630 set_req(Address, phase->transform(new (phase->C) AddPNode(in(Base),in(Address),add->in(1))));
626 set_req(Offset, add->in(2)); 631 set_req(Offset, add->in(2));
632 PhaseIterGVN *igvn = phase->is_IterGVN();
633 if (add->outcnt() == 0 && igvn) {
634 // add disconnected.
635 igvn->_worklist.push((Node*)add);
636 }
627 return this; // Made progress 637 return this; // Made progress
628 } 638 }
629 } 639 }
630 640
631 return NULL; // No progress 641 return NULL; // No progress