hotspot/src/share/vm/opto/loopPredicate.cpp
changeset 34180 f0ec91019db2
parent 34164 a9e6034d7707
child 35558 9b3b2740c3ec
equal deleted inserted replaced
34176:c1b52e665b47 34180:f0ec91019db2
   567   const CmpNode *cmp = bol->in(1)->as_Cmp();
   567   const CmpNode *cmp = bol->in(1)->as_Cmp();
   568   if (cmp->Opcode() != Op_CmpU) {
   568   if (cmp->Opcode() != Op_CmpU) {
   569     return false;
   569     return false;
   570   }
   570   }
   571   Node* range = cmp->in(2);
   571   Node* range = cmp->in(2);
   572   if (range->Opcode() != Op_LoadRange) {
   572   if (range->Opcode() != Op_LoadRange && !iff->is_RangeCheck()) {
   573     const TypeInt* tint = phase->_igvn.type(range)->isa_int();
   573     const TypeInt* tint = phase->_igvn.type(range)->isa_int();
   574     if (tint == NULL || tint->empty() || tint->_lo < 0) {
   574     if (tint == NULL || tint->empty() || tint->_lo < 0) {
   575       // Allow predication on positive values that aren't LoadRanges.
   575       // Allow predication on positive values that aren't LoadRanges.
   576       // This allows optimization of loops where the length of the
   576       // This allows optimization of loops where the length of the
   577       // array is a known value and doesn't need to be loaded back
   577       // array is a known value and doesn't need to be loaded back