From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30857 invoked by alias); 9 May 2002 16:49:49 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 30836 invoked from network); 9 May 2002 16:49:47 -0000 Received: from unknown (HELO fencepost.gnu.org) (199.232.76.164) by sources.redhat.com with SMTP; 9 May 2002 16:49:47 -0000 Received: from ahmler1.mail.eds.com ([192.85.154.71]) by fencepost.gnu.org with esmtp (Exim 3.34 #1 (Debian)) id 175r6w-0002iT-00 for ; Thu, 09 May 2002 12:49:47 -0400 Received: from ahmlir1.mail.eds.com (ahmlir1-2.mail.eds.com [192.85.154.25]) by ahmler1.mail.eds.com (8.11.6/8.11.6) with ESMTP id g49GniB16803; Thu, 9 May 2002 12:49:44 -0400 Received: from ahmlir1.mail.eds.com (localhost [127.0.0.1]) by ahmlir1.mail.eds.com (8.11.6/8.11.3) with ESMTP id g49Gng418868; Thu, 9 May 2002 12:49:42 -0400 (EDT) Received: from usabhmg02.mail.gm.com (USABHMG02.mail.gm.com [164.56.166.171]) by ahmlir1.mail.eds.com (8.11.6/8.11.3) with ESMTP id g49Gnf818840; Thu, 9 May 2002 12:49:41 -0400 (EDT) Sensitivity: Subject: Re: Benchmarks gcc 3.0.4 (soon 3.1) vs. Intel C++ 6.0 To: "Scott Robert Ladd" Cc: gcc@gnu.org From: kelley.r.cook@gm.com Date: Thu, 09 May 2002 09:54:00 -0000 Message-ID: MIME-Version: 1.0 Content-type: text/plain; charset=us-ascii X-SW-Source: 2002-05/txt/msg00675.txt.bz2 >I've posted a set of benchmarks comparing the performance of code generated >by gcc 3.0.4 against that generated by Intel C++ 6.0 for Linux: > >http://www.coyotegulch.com/reviews/intel_comp/intel_gcc_bench2.html >From your web site: >I've updated the benchmark tables, showing the performance gain by using >these options: -O3 -funroll-all-loops -fomit-frame-pointer -ffast-math >-march=i686. I also tried several other options suggested by various e-mail >and mailing list correspondents, including -malign-double, >-fprefetch-loop-arrays, and -fstrict-aliasing; none of those improved >performance on the benchmark code. -malign-double used to matter in the old egcs, but it breaks ABI and isn't really all that useful anymore anyway. Jeff Law once called it evil: http://gcc.gnu.org/ml/gcc-bugs/2000-08/msg00586.html -fstrict-aliasing *does* matter, but since it is enabled by default since the 3.0 release, it obviously wouldn't change your benchmark times. -fprefetch-loop-arrays also matters on code that can take advantage of it. However, it is a new 3.1 option and only will come into play on architectures that support prefetch, in the x86 world, this requires chips with SSE or 3DNow support. Once you get the 3.1 try it along with -march=pentium3 (since that is actually what you have). For grins also add in a -fpmath=sse which is also a new for 3.1 command. Their is no auto-vectorization support yet, but even scalar FP code performs much (10-25%) better than the x87 default. Kelley Cook