This patch fixes two bugs that were discovered during development. The first fix avoids hoisting of 2nd if-region (which contains an early return) above the intervening code 'loop' to be if-merged with the 1st if-region. The second fix corrects a wrong usage of loop index.
if (a) { ... } loop; // no dependency on both if-regions. ... if (a) { if (b) return; } -Mei Index: be/opt/opt_proactive.cxx =================================================================== --- be/opt/opt_proactive.cxx (revision 1419) +++ be/opt/opt_proactive.cxx (working copy) @@ -3357,6 +3357,9 @@ return FALSE; else if (_action == DO_IFFLIP) return FALSE; + // Make sure sc1 and sc2 are control equivalent if they are not adjacent to each other. + else if ((count > 0) && !sc1->Is_ctrl_equiv(sc2)) + return FALSE; else return TRUE; } Index: be/com/cxx_template.h =================================================================== --- be/com/cxx_template.h (revision 1418) +++ be/com/cxx_template.h (working copy) @@ -227,7 +227,7 @@ { if (idx < _lastidx) { for (int iter = idx; iter < _lastidx; iter++) { - _array[idx] = _array[idx+1]; + _array[iter] = _array[iter+1]; } _array[_lastidx] = NULL; Decidx();
------------------------------------------------------------------------------ uberSVN's rich system and user administration capabilities and model configuration take the hassle out of deploying and managing Subversion and the tools developers use with it. Learn more about uberSVN and get a free download at: http://p.sf.net/sfu/wandisco-dev2dev
_______________________________________________ Open64-devel mailing list Open64-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/open64-devel