From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2094 invoked by alias); 10 Dec 2012 20:42:29 -0000 Received: (qmail 2074 invoked by uid 22791); 10 Dec 2012 20:42:27 -0000 X-SWARE-Spam-Status: No, hits=-5.8 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,KHOP_RCVD_TRUST,KHOP_THREADED,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE,RP_MATCHES_RCVD,TW_ZJ X-Spam-Check-By: sourceware.org Received: from mail-ob0-f175.google.com (HELO mail-ob0-f175.google.com) (209.85.214.175) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 10 Dec 2012 20:42:23 +0000 Received: by mail-ob0-f175.google.com with SMTP id vb8so2834994obc.20 for ; Mon, 10 Dec 2012 12:42:23 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:x-gm-message-state; bh=Ny1rTu4zewexLEBYbJPnT5FtE7CuT1uPizT728w9hF4=; b=D3WKkFc9IQlyYvu92Xdr2fkdXZZkiNzVoXH2UJCDOMtM+YZFx0vqfXu1yYcg+XlX4l X4zRYzFE812p7ygjKf2oNrPHOgb+pzVRcGcjGAsxZql8/qQGpIMB+psbGx6i9n9DBB/W u5vvx0HJopo3dJzTT5lrsemO0RYzX8RG9TpSm/nK0Yi1IZxGNbvHGTXutcJpAo0bFUUz kj4Yr+aLZzXpo9Vzdpa+7FfG0z1Np058fU8Hd0qOVO2qYWbDoKTTbdyEvc/0a9fYnGFl sXL17rBXGcA2aTQB9ysXb4ZRc5neqraeoQekL+otWc3CVkp6pfuu+qdtgT+Fw1EGjkKH JSpg== MIME-Version: 1.0 Received: by 10.60.31.68 with SMTP id y4mr8320582oeh.121.1355172143008; Mon, 10 Dec 2012 12:42:23 -0800 (PST) Received: by 10.76.153.41 with HTTP; Mon, 10 Dec 2012 12:42:22 -0800 (PST) In-Reply-To: References: Date: Mon, 10 Dec 2012 20:42:00 -0000 Message-ID: Subject: Re: [PATCH i386]: Enable push/pop in pro/epilogue for modern CPUs From: Xinliang David Li To: Richard Biener Cc: Uros Bizjak , GCC Patches Content-Type: text/plain; charset=ISO-8859-1 X-Gm-Message-State: ALoCoQksINYCfw+K33BI5BqQgA+JDFRkvRmoWch1PGzUTlrWXJs1RxFUJf65F0eG9kHySotQm2jXzcYMUMVn/elq85bEOu1+8QCX7Xb/04DNv7J2NLzZkHzVBH/+T9E/7DplXnEN+XE+raz8qcG0IE+u67RSr1Uf8G83VLwrKS6euyXRR9prvtB7B0EIER85TRMN1Kd+wvJi X-IsSubscribed: yes Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2012-12/txt/msg00655.txt.bz2 I have not measured the CFI size impact -- but conceivably it should be larger -- which is unfortunate. David On Mon, Dec 10, 2012 at 1:23 AM, Richard Biener wrote: > On Sun, Dec 9, 2012 at 2:50 PM, Uros Bizjak wrote: >> Hello! >> >>> I noticed in prologue/epilogue, GCC prefers to use MOVs followed by a >>> SP adjustment instead of a sequence of pushes/pops. The preference to >>> the MOVs are good for old CPU micro-architectures (before pentium-4, >>> K10), because it breaks the data dependency. In modern >>> micro-architecture, push/pop is implemented using a mechanism called >>> stack engine. The data dependency is removed by the hardware, and >>> push/pop becomes very cheap (1 uOp, 1 cycle latency), and they are >>> smaller. There is no longer the need to avoid using them. This is >>> also what ICC does. >> >>> 2012-12-08 Xinliang David Li >>> * config/i386/i386.c: Eanble push/pop in pro/epilogue for moderen CPUs. >> >> s/moderen/modern >> >> OK for mainline SVN. > > It's also more costly for unwind info in the prologue/epilogue. Thus, did you > measure the effect on CFI size? > > Thanks, > Richard. > >> Thanks, >> Uros.