From patchwork Thu Jan 31 09:06:15 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [RFC] Add -fno-aggressive-loop-optimizations Date: Wed, 30 Jan 2013 23:06:15 -0000 From: Richard Guenther X-Patchwork-Id: 217130 Message-Id: To: Pat Haugen Cc: gcc-patches@gcc.gnu.org, Jakub Jelinek , hjl.tools@gmail.com On Thu, 31 Jan 2013, Richard Biener wrote: > On Wed, 30 Jan 2013, Pat Haugen wrote: > > > On 01/29/2013 04:53 AM, Richard Biener wrote: > > > I'm curious about the affect of -fno-aggressive-loop-optimizations > > > on SPEC CPU 2006 numbers (not curious enough to try for myself > > > though). Both on extra PASSes for official latest sources > > > (I have no access to those) and on performance. > > The patch/option result in both 464.h264ref and 416.gamess passing (as opposed > > to infinite loop). As for performance, I didn't see any difference outside of > > noise range for both 32-bit and 64-bit runs on PowerPC. > > Ok, I'll go ahead and apply the patch then. Done. I propose the following addition to changes.html. Ok? Thanks, Richard. 2013-01-31 Richard Biener * changes.html: Mention -fno-aggressive-loop-optimizations. Index: changes.html =================================================================== RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-4.8/changes.html,v retrieving revision 1.89 diff -u -r1.89 changes.html --- changes.html 27 Jan 2013 13:44:12 -0000 1.89 +++ changes.html 31 Jan 2013 09:05:20 -0000 @@ -30,6 +30,13 @@

The G++ namespace association extension, __attribute ((strong)), has been deprecated. Inline namespaces should be used instead.

+

GCC now uses more a aggressive analysis to derive an upper bound for +the number of iterations of loops using constraints imposed by language +standards. This may cause non-conforming programs to no longer work as +expected, such as SPEC CPU 2006 464.h264ref and 416.gamess. A new +option, -fno-aggressive-loop-optimizations, was added +to disable this aggressive analysis.

+

On ARM, a bug has been fixed in GCC's implementation of the AAPCS rules for the layout of vectors that could lead to wrong code being generated. Vectors larger than 8 bytes in size are now by default