Mercurial > hg > truffle
comparison src/share/vm/opto/reg_split.cpp @ 12075:4b2838704fd5
8021898: Broken JIT compiler optimization for loop unswitching
Summary: fix method clone_projs() to clone all related MachProj nodes.
Reviewed-by: roland, adlertz
author | kvn |
---|---|
date | Fri, 16 Aug 2013 14:11:40 -0700 |
parents | adb9a7d94cb5 |
children | 650868c062a9 |
comparison
equal
deleted
inserted
replaced
12074:d18b10b1fd09 | 12075:4b2838704fd5 |
---|---|
395 // Increment the counter for this lrg | 395 // Increment the counter for this lrg |
396 splits.at_put(slidx, splits.at(slidx)+1); | 396 splits.at_put(slidx, splits.at(slidx)+1); |
397 #endif | 397 #endif |
398 // See if the cloned def kills any flags, and copy those kills as well | 398 // See if the cloned def kills any flags, and copy those kills as well |
399 uint i = insidx+1; | 399 uint i = insidx+1; |
400 if( clone_projs( b, i, def, spill, maxlrg) ) { | 400 int found_projs = clone_projs( b, i, def, spill, maxlrg); |
401 if (found_projs > 0) { | |
401 // Adjust the point where we go hi-pressure | 402 // Adjust the point where we go hi-pressure |
402 if( i <= b->_ihrp_index ) b->_ihrp_index++; | 403 if (i <= b->_ihrp_index) { |
403 if( i <= b->_fhrp_index ) b->_fhrp_index++; | 404 b->_ihrp_index += found_projs; |
405 } | |
406 if (i <= b->_fhrp_index) { | |
407 b->_fhrp_index += found_projs; | |
408 } | |
404 } | 409 } |
405 | 410 |
406 return spill; | 411 return spill; |
407 } | 412 } |
408 | 413 |