From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23051 invoked by alias); 24 Nov 2009 15:48:41 -0000 Received: (qmail 23041 invoked by uid 22791); 24 Nov 2009 15:48:40 -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; Tue, 24 Nov 2009 15:48:37 +0000 Received: from int-mx05.intmail.prod.int.phx2.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.18]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id nAOFkTgm011882 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Tue, 24 Nov 2009 10:46:29 -0500 Received: from zebedee.pink (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx05.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id nAOFkPtn024407; Tue, 24 Nov 2009 10:46:25 -0500 Message-ID: <4B0BFFD0.2080203@redhat.com> Date: Tue, 24 Nov 2009 15:48:00 -0000 From: Andrew Haley User-Agent: Thunderbird 2.0.0.23 (X11/20090825) MIME-Version: 1.0 To: Jakub Jelinek CC: Thomas Gleixner , "H.J. Lu" , rostedt@goodmis.org, Ingo Molnar , "H. Peter Anvin" , LKML , Andrew Morton , Heiko Carstens , feng.tang@intel.com, Peter Zijlstra , Frederic Weisbecker , David Daney , Richard Guenther , gcc , Linus Torvalds Subject: Re: [PATCH][GIT PULL][v2.6.32] tracing/x86: Add check to detect GCC messing with mcount prologue References: <1258694593.22249.1012.camel@gandalf.stny.rr.com> <1258736456.22249.1032.camel@gandalf.stny.rr.com> <4B06EF6F.2050507@redhat.com> <6dc9ffc80911220138y15bfa91agccf5c29f1c30e09a@mail.gmail.com> <4B0972C9.302@redhat.com> <6dc9ffc80911221530t38d83cf6je739743c8d756667@mail.gmail.com> <4B0BF119.4070704@redhat.com> <20091124150604.GJ22813@hs20-bc2-1.build.redhat.com> <4B0BFC84.7070806@redhat.com> <20091124153634.GK22813@hs20-bc2-1.build.redhat.com> In-Reply-To: <20091124153634.GK22813@hs20-bc2-1.build.redhat.com> Content-Type: text/plain; charset=ISO-8859-1 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/msg00642.txt.bz2 Jakub Jelinek wrote: > On Tue, Nov 24, 2009 at 03:32:20PM +0000, Andrew Haley wrote: >> Jakub Jelinek wrote: >>> On Tue, Nov 24, 2009 at 03:55:49PM +0100, Thomas Gleixner wrote: >>>>> you should compile your code with -maccumulate-outgoing-args, and there's >>>>> no need to use -mtune=generic. Is that right? >>>> Seems to work. What other side effects has that ? >>> Faster code, significant increase in code size though. >> Does it affect code size when we don't have to realign the stack pointer? > > Yes, a lot. The difference is that -maccumulate-outgoing-args allocates > space for arguments of the callee with most arguments in the prologue, using > subtraction from sp, then to pass arguments uses movl XXX, 4(%esp) etc. > and the stack pointer doesn't usually change within the function (except for > alloca/VLAs). > With -mno-accumulate-outgoing-args args are pushed using push instructions > and stack pointer is constantly changing. Alright. So, it is possible in theory for gcc to generate code that only uses -maccumulate-outgoing-args when it needs to realign SP. And, therefore, we could have a nice option for the kernel: one with (mostly) good code density and never generates the bizarre code sequence in the prologue. Andrew.