Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753219AbZKTMYp (ORCPT ); Fri, 20 Nov 2009 07:24:45 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753061AbZKTMYo (ORCPT ); Fri, 20 Nov 2009 07:24:44 -0500 Received: from mx1.redhat.com ([209.132.183.28]:33962 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750907AbZKTMYo (ORCPT ); Fri, 20 Nov 2009 07:24:44 -0500 Message-ID: <4B068A10.2090608@redhat.com> Date: Fri, 20 Nov 2009 12:22:40 +0000 From: Andrew Haley User-Agent: Thunderbird 2.0.0.23 (X11/20090825) MIME-Version: 1.0 To: Thomas Gleixner CC: Jeff Law , rostedt@goodmis.org, "H. Peter Anvin" , David Daney , Linus Torvalds , Richard Guenther , Ingo Molnar , LKML , Andrew Morton , Heiko Carstens , feng.tang@intel.com, Fr??d??ric Weisbecker , Peter Zijlstra , jakub@redhat.com, gcc@gcc.gnu.org Subject: Re: BUG: GCC-4.4.x changes the function frame on some functions References: <4B05B7AD.20500@redhat.com> <1258670580.22249.1002.camel@gandalf.stny.rr.com> <4B05DBBF.5000804@redhat.com> <4B0685B7.4060601@redhat.com> In-Reply-To: <4B0685B7.4060601@redhat.com> Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2216 Lines: 42 Andrew Haley wrote: > Thomas Gleixner wrote: > >> While testing various kernel configs we found out that the problem >> comes and goes. Finally I started to compare the gcc command line >> options and after some fiddling it turned out that the following >> minimal deltas change the code generator behaviour: >> >> Bad: -march=pentium-mmx -Wa,-mtune=generic32 >> Good: -march=i686 -mtune=generic -Wa,-mtune=generic32 >> Good: -march=pentium-mmx -mtune-generic -Wa,-mtune=generic32 >> >> I'm not supposed to understand the logic behind that, right ? > > I don't either. I'm seeing: > > timer_stats_update_stats: timer_stats_update_stats: > pushl %edi < > leal 8(%esp), %edi < > andl $-16, %esp < > pushl -4(%edi) < > pushl %ebp pushl %ebp > movl %esp, %ebp movl %esp, %ebp > pushl %edi | andl $-16, %esp > pushl %esi | subl $112, %esp > pushl %ebx | movl %ebx, 100(%esp) > subl $108, %esp | movl %esi, 104(%esp) > > movl %edi, 108(%esp) > call mcount call mcount > > where the only difference is -mtune=generic. I'm investigating. Forget that, I see from the gcc-bugs list that hj has tracked it down to the use of DRAP, and for some reason the mtune options affect that. He's the best person to fix this. Andrew. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/