diff --git a/src/hotspot/share/opto/block.cpp b/src/hotspot/share/opto/block.cpp index 8e49226c262..5d4ac471303 100644 --- a/src/hotspot/share/opto/block.cpp +++ b/src/hotspot/share/opto/block.cpp @@ -1613,7 +1613,8 @@ void PhaseBlockLayout::find_edges() { Block *target = b->non_connector_successor(j); float freq = b->_freq * b->succ_prob(j); int from_pct = (int) ((100 * freq) / b->_freq); - int to_pct = (int) ((100 * freq) / target->_freq); + float f_to_pct = (100 * freq) / target->_freq; + int to_pct = (f_to_pct < 100.0) ? (int)f_to_pct : 100; edges->append(new CFGEdge(b, target, freq, from_pct, to_pct)); } }