Mercurial > hg > truffle
diff 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 |
line wrap: on
line diff
--- a/src/share/vm/opto/loopopts.cpp Tue Mar 18 23:44:46 2008 -0700 +++ b/src/share/vm/opto/loopopts.cpp Tue Mar 18 23:54:17 2008 -0700 @@ -29,6 +29,11 @@ //------------------------------split_thru_phi--------------------------------- // Split Node 'n' through merge point if there is enough win. Node *PhaseIdealLoop::split_thru_phi( Node *n, Node *region, int policy ) { + if (n->Opcode() == Op_ConvI2L && n->bottom_type() != TypeLong::LONG) { + // ConvI2L may have type information on it which is unsafe to push up + // so disable this for now + return NULL; + } int wins = 0; assert( !n->is_CFG(), "" ); assert( region->is_Region(), "" );