From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18500 invoked by alias); 20 Nov 2009 12:06:18 -0000 Received: (qmail 18489 invoked by uid 22791); 20 Nov 2009 12:06:17 -0000 X-SWARE-Spam-Status: No, hits=-2.5 required=5.0 tests=AWL,BAYES_00,SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 20 Nov 2009 12:05:13 +0000 Received: from int-mx08.intmail.prod.int.phx2.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id nAKC4DfZ006652 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Fri, 20 Nov 2009 07:04:13 -0500 Received: from zebedee.pink (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx08.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id nAKC483L030792; Fri, 20 Nov 2009 07:04:09 -0500 Message-ID: <4B0685B7.4060601@redhat.com> Date: Fri, 20 Nov 2009 12:06:00 -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> In-Reply-To: Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org X-SW-Source: 2009-11/txt/msg00566.txt.bz2 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. Andrew.