Mercurial > hg > graal-compiler
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); |