comparison src/share/vm/opto/ifnode.cpp @ 18041:52b4284cb496

Merge with jdk8u20-b26
author Gilles Duboscq <duboscq@ssw.jku.at>
date Wed, 15 Oct 2014 16:02:50 +0200
parents 89152779163c 968a17f18337
children 7848fc12602b
comparison
equal deleted inserted replaced
17606:45d7b2c7029d 18041:52b4284cb496
74 // Look for a compare of a constant and a merged value 74 // Look for a compare of a constant and a merged value
75 Node *i1 = iff->in(1); 75 Node *i1 = iff->in(1);
76 if( !i1->is_Bool() ) return NULL; 76 if( !i1->is_Bool() ) return NULL;
77 BoolNode *b = i1->as_Bool(); 77 BoolNode *b = i1->as_Bool();
78 Node *cmp = b->in(1); 78 Node *cmp = b->in(1);
79 if( cmp->is_FlagsProj() ) return NULL;
80 if( !cmp->is_Cmp() ) return NULL; 79 if( !cmp->is_Cmp() ) return NULL;
81 i1 = cmp->in(1); 80 i1 = cmp->in(1);
82 if( i1 == NULL || !i1->is_Phi() ) return NULL; 81 if( i1 == NULL || !i1->is_Phi() ) return NULL;
83 PhiNode *phi = i1->as_Phi(); 82 PhiNode *phi = i1->as_Phi();
84 if( phi->is_copy() ) return NULL; 83 if( phi->is_copy() ) return NULL;
672 // / \ | 671 // / \ |
673 // / \ | 672 // / \ |
674 // / Region 673 // / Region
675 // 674 //
676 Node* IfNode::fold_compares(PhaseGVN* phase) { 675 Node* IfNode::fold_compares(PhaseGVN* phase) {
677 if (!phase->C->eliminate_boxing() || Opcode() != Op_If) return NULL; 676 if (Opcode() != Op_If) return NULL;
678 677
679 Node* this_cmp = in(1)->in(1); 678 Node* this_cmp = in(1)->in(1);
680 if (this_cmp != NULL && this_cmp->Opcode() == Op_CmpI && 679 if (this_cmp != NULL && this_cmp->Opcode() == Op_CmpI &&
681 this_cmp->in(2)->is_Con() && this_cmp->in(2) != phase->C->top()) { 680 this_cmp->in(2)->is_Con() && this_cmp->in(2) != phase->C->top()) {
682 Node* ctrl = in(0); 681 Node* ctrl = in(0);