comparison src/share/vm/opto/loopopts.cpp @ 69:8bb88f9877e5

6659207: access violation in CompilerThread0 Summary: split_thru_phi produces top on a non-dead path Reviewed-by: kvn, rasbold, sgoldman
author never
date Tue, 18 Mar 2008 23:54:17 -0700
parents b8f5ba577b02
children a761c2d3b76a
comparison
equal deleted inserted replaced
68:daf38130e60d 69:8bb88f9877e5
27 27
28 //============================================================================= 28 //=============================================================================
29 //------------------------------split_thru_phi--------------------------------- 29 //------------------------------split_thru_phi---------------------------------
30 // Split Node 'n' through merge point if there is enough win. 30 // Split Node 'n' through merge point if there is enough win.
31 Node *PhaseIdealLoop::split_thru_phi( Node *n, Node *region, int policy ) { 31 Node *PhaseIdealLoop::split_thru_phi( Node *n, Node *region, int policy ) {
32 if (n->Opcode() == Op_ConvI2L && n->bottom_type() != TypeLong::LONG) {
33 // ConvI2L may have type information on it which is unsafe to push up
34 // so disable this for now
35 return NULL;
36 }
32 int wins = 0; 37 int wins = 0;
33 assert( !n->is_CFG(), "" ); 38 assert( !n->is_CFG(), "" );
34 assert( region->is_Region(), "" ); 39 assert( region->is_Region(), "" );
35 40
36 const Type* type = n->bottom_type(); 41 const Type* type = n->bottom_type();