1073 // ConvI2LNode may become TOP if the input Value() does not |
1073 // ConvI2LNode may become TOP if the input Value() does not |
1074 // overlap the ConvI2L range, leaving a node which may not dominate its |
1074 // overlap the ConvI2L range, leaving a node which may not dominate its |
1075 // uses. |
1075 // uses. |
1076 // A better fix for this problem can be found in the BugTraq entry, but |
1076 // A better fix for this problem can be found in the BugTraq entry, but |
1077 // expediency for Mantis demands this hack. |
1077 // expediency for Mantis demands this hack. |
1078 // 6855164: If the merge point has a FastLockNode with a PhiNode input, we stop |
1078 #ifdef _LP64 |
1079 // split_if_with_blocks from splitting a block because we could not move around |
|
1080 // the FastLockNode. |
|
1081 for (DUIterator_Fast imax, i = region->fast_outs(imax); i < imax; i++) { |
1079 for (DUIterator_Fast imax, i = region->fast_outs(imax); i < imax; i++) { |
1082 Node* n = region->fast_out(i); |
1080 Node* n = region->fast_out(i); |
1083 if (n->is_Phi()) { |
1081 if (n->is_Phi()) { |
1084 for (DUIterator_Fast jmax, j = n->fast_outs(jmax); j < jmax; j++) { |
1082 for (DUIterator_Fast jmax, j = n->fast_outs(jmax); j < jmax; j++) { |
1085 Node* m = n->fast_out(j); |
1083 Node* m = n->fast_out(j); |
1086 if (m->is_FastLock()) |
|
1087 return false; |
|
1088 #ifdef _LP64 |
|
1089 if (m->Opcode() == Op_ConvI2L) |
1084 if (m->Opcode() == Op_ConvI2L) |
1090 return false; |
1085 return false; |
1091 if (m->is_CastII() && m->isa_CastII()->has_range_check()) { |
1086 if (m->is_CastII() && m->isa_CastII()->has_range_check()) { |
1092 return false; |
1087 return false; |
1093 } |
1088 } |
|
1089 } |
|
1090 } |
|
1091 } |
1094 #endif |
1092 #endif |
1095 } |
|
1096 } |
|
1097 } |
|
1098 return true; |
1093 return true; |
1099 } |
1094 } |
1100 |
1095 |
1101 |
1096 |
1102 //------------------------------place_near_use--------------------------------- |
1097 //------------------------------place_near_use--------------------------------- |