comparison src/share/vm/opto/chaitin.cpp @ 14499:1077c8270209

8033260: assert(lrg._area >= 0.0) failed: negative spill area Summary: Change type from float to double on block frequency, and add check for +Inf - +Inf operation Reviewed-by: kvn, roland
author adlertz
date Tue, 25 Feb 2014 17:51:27 +0100
parents 04e7587c97dc
children 4ca6dc0799b6
comparison
equal deleted inserted replaced
14498:04e7587c97dc 14499:1077c8270209
208 , _trace_spilling(TraceSpilling || C->method_has_option("TraceSpilling")) 208 , _trace_spilling(TraceSpilling || C->method_has_option("TraceSpilling"))
209 #endif 209 #endif
210 { 210 {
211 NOT_PRODUCT( Compile::TracePhase t3("ctorChaitin", &_t_ctorChaitin, TimeCompiler); ) 211 NOT_PRODUCT( Compile::TracePhase t3("ctorChaitin", &_t_ctorChaitin, TimeCompiler); )
212 212
213 _high_frequency_lrg = MIN2(float(OPTO_LRG_HIGH_FREQ), _cfg.get_outer_loop_frequency()); 213 _high_frequency_lrg = MIN2(double(OPTO_LRG_HIGH_FREQ), _cfg.get_outer_loop_frequency());
214 214
215 // Build a list of basic blocks, sorted by frequency 215 // Build a list of basic blocks, sorted by frequency
216 _blks = NEW_RESOURCE_ARRAY(Block *, _cfg.number_of_blocks()); 216 _blks = NEW_RESOURCE_ARRAY(Block *, _cfg.number_of_blocks());
217 // Experiment with sorting strategies to speed compilation 217 // Experiment with sorting strategies to speed compilation
218 double cutoff = BLOCK_FREQUENCY(1.0); // Cutoff for high frequency bucket 218 double cutoff = BLOCK_FREQUENCY(1.0); // Cutoff for high frequency bucket