Mercurial > hg > truffle
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(); |