comparison src/share/vm/opto/chaitin.cpp @ 14513:16c705d792be

Merge
author morris
date Fri, 28 Feb 2014 08:02:20 -0800
parents 1077c8270209
children 4ca6dc0799b6
comparison
equal deleted inserted replaced
14493:7d30d4f37d31 14513:16c705d792be
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
1797 Node *phi = n->in(1); 1797 Node *phi = n->in(1);
1798 if( phi->is_Phi() && phi->as_Phi()->region()->is_Loop() ) { 1798 if( phi->is_Phi() && phi->as_Phi()->region()->is_Loop() ) {
1799 Block *phi_block = _cfg.get_block_for_node(phi); 1799 Block *phi_block = _cfg.get_block_for_node(phi);
1800 if (_cfg.get_block_for_node(phi_block->pred(2)) == block) { 1800 if (_cfg.get_block_for_node(phi_block->pred(2)) == block) {
1801 const RegMask *mask = C->matcher()->idealreg2spillmask[Op_RegI]; 1801 const RegMask *mask = C->matcher()->idealreg2spillmask[Op_RegI];
1802 Node *spill = new (C) MachSpillCopyNode( phi, *mask, *mask ); 1802 Node *spill = new (C) MachSpillCopyNode(MachSpillCopyNode::LoopPhiInput, phi, *mask, *mask);
1803 insert_proj( phi_block, 1, spill, maxlrg++ ); 1803 insert_proj( phi_block, 1, spill, maxlrg++ );
1804 n->set_req(1,spill); 1804 n->set_req(1,spill);
1805 must_recompute_live = true; 1805 must_recompute_live = true;
1806 } 1806 }
1807 } 1807 }