From patchwork Fri Nov 3 16:54:50 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wilco Dijkstra X-Patchwork-Id: 834003 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=gcc-patches-return-465894-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="k3nTJWHw"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3yT7PF6GMCz9sPt for ; Sat, 4 Nov 2017 03:55:15 +1100 (AEDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:cc:subject:date:message-id:content-type :content-transfer-encoding:mime-version; q=dns; s=default; b=vU2 XhMacCxPsh160xTU+7gM19V78izMxK3PcF6xBpeaq0mfHXsU8cfic3FUopgwMBo+ TSWJVGBln4a5MIUBpO7KKanl7//pMSVNywogNuN5mxiDYP4gEpFoXM+02Udm29IG YBl65sXy48KPYTahGHGlksZEek4g0qmKiNQzNfEc= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:cc:subject:date:message-id:content-type :content-transfer-encoding:mime-version; s=default; bh=Vo8Nhg2qi 1R/b5IIRJ665emBjhM=; b=k3nTJWHwvyoJhMPP7RlknnjH3IwY79U33fOApcP1Y IuyJdh50ZTEuetAuTTFR+hyUwc0kEVGz5jU5PFxy2JXVM8GD60rTfrKLGLLIu0mj JVopmxDbl3TOreZlkT6PG1Brf5Wag71RMQtGj4wTi57nKJQ/bKLlX93guuABHko+ BA= Received: (qmail 89414 invoked by alias); 3 Nov 2017 16:55:02 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 89398 invoked by uid 89); 3 Nov 2017 16:55:02 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.0 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_LOTSOFHASH, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: EUR01-HE1-obe.outbound.protection.outlook.com Received: from mail-he1eur01on0044.outbound.protection.outlook.com (HELO EUR01-HE1-obe.outbound.protection.outlook.com) (104.47.0.44) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 03 Nov 2017 16:54:58 +0000 Received: from DB6PR0801MB2053.eurprd08.prod.outlook.com (10.168.86.22) by DB6PR0801MB2055.eurprd08.prod.outlook.com (10.168.86.136) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.197.13; Fri, 3 Nov 2017 16:54:50 +0000 Received: from DB6PR0801MB2053.eurprd08.prod.outlook.com ([fe80::d9d5:2017:ca12:1d9d]) by DB6PR0801MB2053.eurprd08.prod.outlook.com ([fe80::d9d5:2017:ca12:1d9d%18]) with mapi id 15.20.0156.009; Fri, 3 Nov 2017 16:54:50 +0000 From: Wilco Dijkstra To: GCC Patches CC: nd Subject: [PATCH] Set default to -fomit-frame-pointer Date: Fri, 3 Nov 2017 16:54:50 +0000 Message-ID: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Wilco.Dijkstra@arm.com; x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; DB6PR0801MB2055; 6:KoLGG/bh9eBFcXnziIPslfc3qMIdiHlb2m2fAp7szdQfaetflnF2RMu4HMjqUpN7Z2rzLU2xl9GrpILeeH8xG8uh9+KgrhoDslFtOpV0eVZKf5DdodyZXdJvJjpRXnkJwOxYuteSvUt2TjnWghAsT64dySP5nT9iwgrtnNPOvCf8EspdnChGOPX4rXFw2i553XnNMosslHZFdHPzrQ2zC2XXWDSjbjJdHk9D+d1RZ58+GiCIIiFvLDBbSgSD4YOYN8by33XB5q99Glr3GzTlcN+AGMIYpNmMlo/Lw2cjYilbOL73e1zC+sHRfVcfNWlYnlCgc14EFSNU6GhZX0wdUvs7yblgPIff5YaQ/+suyTQ=; 5:zJmCWvNlQm10jKF1jXtQoTgbMY7j/T+srn2+ik0DSWA+k7q9DjN+dsFCgGs53+vk4VAvVKP+cA0M+OO3PttTztDGRULOHC2pIp0zuNCr+QNKSj3Cie1j9F5tYDTqUJjcEKY5I3RKE4tLXcvWF+sktCFOCRsYh2/+H0+MBJIULkI=; 24:GJpFnHUUtsCKGwmtLrEJICuRpGA6BTxNIQn9reGzohiIePSONleUZ+n/DRvKHjHDZg3ngIVicp6IpfkyAKWirjMniyS2Wgq5R+J8DlZiiI0=; 7:M45zguTDoyXkz0hdo/D9rrLKtqYrXdaekvzPispb8cvohkhYUck3M6tq1LO63JE/ngqMxxsZaTnADAn2Isfx6u7cvijQ1Lunc0prTtof20q+2AlwJeYUuim7hAUcwqzV3oAGUeZ4lcsDoYEdZyszEUlj82ZRVXghVSUyCl2Ho2MtN2ZAPLaCuFb/4cx8ACXLr2aKUDtfnzK0QfDzD/oemiAj83q+/VJyeq0NOv2/AeX4Eic2lBSS5B2V6aqWNjWi x-ms-exchange-antispam-srfa-diagnostics: SSOS; x-ms-office365-filtering-correlation-id: 75cca178-d270-4413-368e-08d522db995f x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(48565401081)(2017052603199); SRVR:DB6PR0801MB2055; x-ms-traffictypediagnostic: DB6PR0801MB2055: nodisclaimer: True x-exchange-antispam-report-test: UriScan:(180628864354917); x-microsoft-antispam-prvs: x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(3002001)(10201501046)(93006095)(93001095)(100000703101)(100105400095)(3231021)(6055026)(6041248)(20161123562025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123558100)(20161123555025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DB6PR0801MB2055; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DB6PR0801MB2055; x-forefront-prvs: 0480A51D4A x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(6009001)(376002)(39860400002)(346002)(377424004)(199003)(189002)(54534003)(81156014)(50986999)(54356999)(189998001)(3280700002)(7736002)(25786009)(4326008)(5660300001)(101416001)(8676002)(3660700001)(2906002)(97736004)(102836003)(68736007)(3846002)(81166006)(6116002)(106356001)(316002)(7696004)(105586002)(478600001)(5250100002)(8936002)(14454004)(74316002)(55016002)(33656002)(53936002)(305945005)(6916009)(66066001)(16200700003)(72206003)(230783001)(2900100001)(86362001)(575784001)(9686003)(6506006)(99286004)(53946003)(6436002)(579004)(569006); DIR:OUT; SFP:1101; SCL:1; SRVR:DB6PR0801MB2055; H:DB6PR0801MB2053.eurprd08.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: 75cca178-d270-4413-368e-08d522db995f X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Nov 2017 16:54:50.8504 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB2055 Almost all targets add an explict -fomit-frame-pointer in the target specific options. Rather than doing this in a target-specific way, do this in the generic options so it works identically across all targets. In many cases the target no longer needs to define TARGET_OPTION_OPTIMIZATION_TABLE, reducing the amount of target code. Verified all targets built by buildmanyglibcs script do still build. OK for commit? ChangeLog: 2017-11-03 Wilco Dijkstra * opts.c (default_options_table): Add OPT_fomit_frame_pointer entry. * common/config/alpha/alpha-common.c (TARGET_OPTION_OPTIMIZATION_TABLE): Remove OPT_fomit_frame_pointer entry. * common/config/arc/arc-common.c: Likewise. * common/config/arm/arm-common.c: Likewise. * common/config/avr/avr-common.c: Likewise. * common/config/c6x/c6x-common.c: Likewise. * common/config/cr16/cr16-common.c: Likewise. * common/config/cris/cris-common.c: Likewise. * common/config/epiphany/epiphany-common.c: Likewise. * common/config/fr30/fr30-common.c: Likewise. * common/config/frv/frv-common.c: Likewise. * common/config/ia64/ia64-common.c: Likewise. * common/config/iq2000/iq2000-common.c: Likewise. * common/config/lm32/lm32-common.c: Likewise. * common/config/m32r/m32r-common.c: Likewise. * common/config/mcore/mcore-common.c: Likewise. * common/config/microblaze/microblaze-common.c: Likewise. * common/config/mips/mips-common.c: Likewise. * common/config/mmix/mmix-common.c: Likewise. * common/config/mn10300/mn10300-common.c: Likewise. * common/config/nios2/nios2-common.c: Likewise. * common/config/pa/pa-common.c: Likewise. * common/config/pdp11/pdp11-common.c: Likewise. * common/config/powerpcspe/powerpcspe-common.c: Likewise. * common/config/riscv/riscv-common.c: Likewise. * common/config/rs6000/rs6000-common.c: Likewise. * common/config/rx/rx-common.c: Likewise. * common/config/s390/s390-common.c: Likewise. * common/config/sh/sh-common.c: Likewise. * common/config/sparc/sparc-common.c: Likewise. * common/config/tilegx/tilegx-common.c: Likewise. * common/config/tilepro/tilepro-common.c: Likewise. * common/config/v850/v850-common.c: Likewise. * common/config/visium/visium-common.c: Likewise. * common/config/xstormy16/xstormy16-common.c: Likewise. * common/config/xtensa/xtensa-common.c: Likewise. doc/ * invoke.texi (-fomit-frame-pointer): Update documentation. diff --git a/gcc/common/config/alpha/alpha-common.c b/gcc/common/config/alpha/alpha-common.c index be42282270bbc22e31e39bfb5307d7b4d82a84b9..3a7d28d16225478e2fdae42c5610e55dc0b68c6f 100644 --- a/gcc/common/config/alpha/alpha-common.c +++ b/gcc/common/config/alpha/alpha-common.c @@ -30,7 +30,6 @@ along with GCC; see the file COPYING3. If not see /* Implement TARGET_OPTION_OPTIMIZATION_TABLE. */ static const struct default_options alpha_option_optimization_table[] = { - { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, /* Enable redundant extension instructions removal at -O2 and higher. */ { OPT_LEVELS_2_PLUS, OPT_free, NULL, 1 }, { OPT_LEVELS_NONE, 0, NULL, 0 } diff --git a/gcc/common/config/arc/arc-common.c b/gcc/common/config/arc/arc-common.c index 82e0dd383c9d627d39cc8cf904ef3c17a80f3da9..c437313ba4192b1d6c79b047b40b02e5b7a4facb 100644 --- a/gcc/common/config/arc/arc-common.c +++ b/gcc/common/config/arc/arc-common.c @@ -47,7 +47,6 @@ arc_option_init_struct (struct gcc_options *opts) static const struct default_options arc_option_optimization_table[] = { { OPT_LEVELS_SIZE, OPT_fsection_anchors, NULL, 1 }, - { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, { OPT_LEVELS_ALL, OPT_mRcq, NULL, 1 }, { OPT_LEVELS_ALL, OPT_mRcw, NULL, 1 }, { OPT_LEVELS_ALL, OPT_msize_level_, NULL, 1 }, diff --git a/gcc/common/config/arm/arm-common.c b/gcc/common/config/arm/arm-common.c index 1588ca86e9b06282ed4358e072bc2b0224a11483..5ae20fea916a636d078b9e1aa2b4e866b9da1259 100644 --- a/gcc/common/config/arm/arm-common.c +++ b/gcc/common/config/arm/arm-common.c @@ -36,7 +36,6 @@ static const struct default_options arm_option_optimization_table[] = { /* Enable section anchors by default at -O1 or higher. */ { OPT_LEVELS_1_PLUS, OPT_fsection_anchors, NULL, 1 }, - { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, { OPT_LEVELS_1_PLUS, OPT_fsched_pressure, NULL, 1 }, { OPT_LEVELS_NONE, 0, NULL, 0 } }; diff --git a/gcc/common/config/avr/avr-common.c b/gcc/common/config/avr/avr-common.c index 4bee9d670d9565f58da527c8604191e480df667a..9bf0e0d0932b1da4ec2a91a980f87d9654f6072b 100644 --- a/gcc/common/config/avr/avr-common.c +++ b/gcc/common/config/avr/avr-common.c @@ -27,7 +27,6 @@ /* Implement TARGET_OPTION_OPTIMIZATION_TABLE. */ static const struct default_options avr_option_optimization_table[] = { - { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, // The only effect of -fcaller-saves might be that it triggers // a frame without need when it tries to be smart around calls. { OPT_LEVELS_ALL, OPT_fcaller_saves, NULL, 0 }, diff --git a/gcc/common/config/c6x/c6x-common.c b/gcc/common/config/c6x/c6x-common.c index 3de96a034f099de6af935392d0a829c21bd63fcc..ec698a82e18e67785539da5c4359c60f1621d90e 100644 --- a/gcc/common/config/c6x/c6x-common.c +++ b/gcc/common/config/c6x/c6x-common.c @@ -32,7 +32,6 @@ along with GCC; see the file COPYING3. If not see /* Implement overriding of the optimization options. */ static const struct default_options c6x_option_optimization_table[] = { - { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, { OPT_LEVELS_1_PLUS, OPT_frename_registers, NULL, 1 }, { OPT_LEVELS_2_PLUS, OPT_fmodulo_sched, NULL, 1 }, { OPT_LEVELS_ALL, OPT_freciprocal_math, NULL, 1 }, diff --git a/gcc/common/config/cr16/cr16-common.c b/gcc/common/config/cr16/cr16-common.c index 620a812eacf3369c7b0766db4f8176c45baced66..a106fcbfde0c02497450e659bc8afb14109b2b21 100644 --- a/gcc/common/config/cr16/cr16-common.c +++ b/gcc/common/config/cr16/cr16-common.c @@ -24,14 +24,4 @@ #include "common/common-target.h" #include "common/common-target-def.h" -/* Implement TARGET_OPTION_OPTIMIZATION_TABLE. */ -static const struct default_options cr16_option_optimization_table[] = - { - { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, - { OPT_LEVELS_NONE, 0, NULL, 0 } - }; - -#undef TARGET_OPTION_OPTIMIZATION_TABLE -#define TARGET_OPTION_OPTIMIZATION_TABLE cr16_option_optimization_table - struct gcc_targetm_common targetm_common = TARGETM_COMMON_INITIALIZER; diff --git a/gcc/common/config/cris/cris-common.c b/gcc/common/config/cris/cris-common.c index 94a3fcf87928b7caf841a23d622d7f23d934e58e..79f976d07210cb719d7e0f998b1a08ba5e39a9e6 100644 --- a/gcc/common/config/cris/cris-common.c +++ b/gcc/common/config/cris/cris-common.c @@ -26,14 +26,6 @@ along with GCC; see the file COPYING3. If not see #include "opts.h" #include "flags.h" -/* Implement TARGET_OPTION_OPTIMIZATION_TABLE. */ - -static const struct default_options cris_option_optimization_table[] = - { - { OPT_LEVELS_2_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, - { OPT_LEVELS_NONE, 0, NULL, 0 } - }; - /* TARGET_HANDLE_OPTION worker. We just store the values into local variables here. Checks for correct semantics are in cris_option_override. */ @@ -98,7 +90,5 @@ cris_handle_option (struct gcc_options *opts, #define TARGET_DEFAULT_TARGET_FLAGS (TARGET_DEFAULT | CRIS_SUBTARGET_DEFAULT) #undef TARGET_HANDLE_OPTION #define TARGET_HANDLE_OPTION cris_handle_option -#undef TARGET_OPTION_OPTIMIZATION_TABLE -#define TARGET_OPTION_OPTIMIZATION_TABLE cris_option_optimization_table struct gcc_targetm_common targetm_common = TARGETM_COMMON_INITIALIZER; diff --git a/gcc/common/config/epiphany/epiphany-common.c b/gcc/common/config/epiphany/epiphany-common.c index ced64cd4e5ad2e17b737eb7b382be78ffa5c077e..f837a6293b3dcea2b7b45b5c79c0a12f5d1c7ccd 100644 --- a/gcc/common/config/epiphany/epiphany-common.c +++ b/gcc/common/config/epiphany/epiphany-common.c @@ -38,7 +38,6 @@ along with GCC; see the file COPYING3. If not see /* Implement TARGET_OPTION_OPTIMIZATION_TABLE. */ static const struct default_options epiphany_option_optimization_table[] = { - { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, /* Enable section anchors by default at -O1 or higher. */ { OPT_LEVELS_1_PLUS, OPT_fsection_anchors, NULL, 1 }, { OPT_LEVELS_NONE, 0, NULL, 0 } diff --git a/gcc/common/config/fr30/fr30-common.c b/gcc/common/config/fr30/fr30-common.c index 9388cca1a7c57ca89318ab86576f2405d27838ba..1dd001ecf7e410d9939960355bde40bada739db6 100644 --- a/gcc/common/config/fr30/fr30-common.c +++ b/gcc/common/config/fr30/fr30-common.c @@ -24,17 +24,7 @@ #include "common/common-target.h" #include "common/common-target-def.h" -/* Implement TARGET_OPTION_OPTIMIZATION_TABLE. */ -static const struct default_options fr30_option_optimization_table[] = - { - { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, - { OPT_LEVELS_NONE, 0, NULL, 0 } - }; - #undef TARGET_EXCEPT_UNWIND_INFO #define TARGET_EXCEPT_UNWIND_INFO sjlj_except_unwind_info -#undef TARGET_OPTION_OPTIMIZATION_TABLE -#define TARGET_OPTION_OPTIMIZATION_TABLE fr30_option_optimization_table - struct gcc_targetm_common targetm_common = TARGETM_COMMON_INITIALIZER; diff --git a/gcc/common/config/frv/frv-common.c b/gcc/common/config/frv/frv-common.c index 9c2399ba6834b22d74f43856b8178ca04acb3588..77062bbf2f4b6d3463181303fc2643c804add98c 100644 --- a/gcc/common/config/frv/frv-common.c +++ b/gcc/common/config/frv/frv-common.c @@ -32,13 +32,6 @@ along with GCC; see the file COPYING3. If not see #define MASK_DEFAULT_ALLOC_CC 0 #endif -/* Implement TARGET_OPTION_OPTIMIZATION_TABLE. */ -static const struct default_options frv_option_optimization_table[] = - { - { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, - { OPT_LEVELS_NONE, 0, NULL, 0 } - }; - #undef TARGET_DEFAULT_TARGET_FLAGS #define TARGET_DEFAULT_TARGET_FLAGS \ (MASK_DEFAULT_ALLOC_CC \ @@ -48,7 +41,5 @@ static const struct default_options frv_option_optimization_table[] = | MASK_VLIW_BRANCH \ | MASK_MULTI_CE \ | MASK_NESTED_CE) -#undef TARGET_OPTION_OPTIMIZATION_TABLE -#define TARGET_OPTION_OPTIMIZATION_TABLE frv_option_optimization_table struct gcc_targetm_common targetm_common = TARGETM_COMMON_INITIALIZER; diff --git a/gcc/common/config/ia64/ia64-common.c b/gcc/common/config/ia64/ia64-common.c index 86e54e392ba8f9a313b2b1cd72294bf00baefd47..ab8c33b577ff83ae82cb847929baedd6aa92ecc4 100644 --- a/gcc/common/config/ia64/ia64-common.c +++ b/gcc/common/config/ia64/ia64-common.c @@ -33,7 +33,6 @@ along with GCC; see the file COPYING3. If not see /* Implement overriding of the optimization options. */ static const struct default_options ia64_option_optimization_table[] = { - { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, #ifdef SUBTARGET_OPTIMIZATION_OPTIONS SUBTARGET_OPTIMIZATION_OPTIONS, #endif diff --git a/gcc/common/config/iq2000/iq2000-common.c b/gcc/common/config/iq2000/iq2000-common.c index 9f36ddcbbb52482ef5ee6262f3bfcc6863fc2bcc..04f9f670133cd10c7a0e9353e98cc0839c0b189a 100644 --- a/gcc/common/config/iq2000/iq2000-common.c +++ b/gcc/common/config/iq2000/iq2000-common.c @@ -24,14 +24,4 @@ along with GCC; see the file COPYING3. If not see #include "common/common-target.h" #include "common/common-target-def.h" -/* Implement TARGET_OPTION_OPTIMIZATION_TABLE. */ -static const struct default_options iq2000_option_optimization_table[] = - { - { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, - { OPT_LEVELS_NONE, 0, NULL, 0 } - }; - -#undef TARGET_OPTION_OPTIMIZATION_TABLE -#define TARGET_OPTION_OPTIMIZATION_TABLE iq2000_option_optimization_table - struct gcc_targetm_common targetm_common = TARGETM_COMMON_INITIALIZER; diff --git a/gcc/common/config/lm32/lm32-common.c b/gcc/common/config/lm32/lm32-common.c index 969fce25841edfc5eda06cf0a43667b24246911b..7bd0ab072ddbb25b70e4993cb483503f0ee29926 100644 --- a/gcc/common/config/lm32/lm32-common.c +++ b/gcc/common/config/lm32/lm32-common.c @@ -25,16 +25,6 @@ #include "common/common-target.h" #include "common/common-target-def.h" -/* Implement TARGET_OPTION_OPTIMIZATION_TABLE. */ -static const struct default_options lm32_option_optimization_table[] = - { - { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, - { OPT_LEVELS_NONE, 0, NULL, 0 } - }; - -#undef TARGET_OPTION_OPTIMIZATION_TABLE -#define TARGET_OPTION_OPTIMIZATION_TABLE lm32_option_optimization_table - #undef TARGET_EXCEPT_UNWIND_INFO #define TARGET_EXCEPT_UNWIND_INFO sjlj_except_unwind_info diff --git a/gcc/common/config/m32r/m32r-common.c b/gcc/common/config/m32r/m32r-common.c index d2add8dd5e56bd6c736f9220ea0578ac23c79f77..b56dbb8311c6c6fdd3e44b1bff110937ac66422f 100644 --- a/gcc/common/config/m32r/m32r-common.c +++ b/gcc/common/config/m32r/m32r-common.c @@ -26,12 +26,6 @@ #include "opts.h" #include "flags.h" -static const struct default_options m32r_option_optimization_table[] = - { - { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, - { OPT_LEVELS_NONE, 0, NULL, 0 } - }; - /* Implement TARGET_HANDLE_OPTION. */ static bool @@ -65,8 +59,6 @@ m32r_handle_option (struct gcc_options *opts, #define TARGET_DEFAULT_TARGET_FLAGS TARGET_CPU_DEFAULT #undef TARGET_HANDLE_OPTION #define TARGET_HANDLE_OPTION m32r_handle_option -#undef TARGET_OPTION_OPTIMIZATION_TABLE -#define TARGET_OPTION_OPTIMIZATION_TABLE m32r_option_optimization_table #undef TARGET_EXCEPT_UNWIND_INFO #define TARGET_EXCEPT_UNWIND_INFO sjlj_except_unwind_info diff --git a/gcc/common/config/mcore/mcore-common.c b/gcc/common/config/mcore/mcore-common.c index 03f70a95d31b0e609e93492dc4c16b16e12c16ee..77958bb88ed643c757e4285c47c71bef81ed9870 100644 --- a/gcc/common/config/mcore/mcore-common.c +++ b/gcc/common/config/mcore/mcore-common.c @@ -33,7 +33,6 @@ static const struct default_options mcore_option_optimization_table[] = { { OPT_LEVELS_1_PLUS, OPT_ffunction_cse, NULL, 0 }, - { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, { OPT_LEVELS_ALL, OPT_fcaller_saves, NULL, 0 }, { OPT_LEVELS_ALL, OPT_fschedule_insns, NULL, 0 }, { OPT_LEVELS_ALL, OPT_fschedule_insns2, NULL, 0 }, diff --git a/gcc/common/config/microblaze/microblaze-common.c b/gcc/common/config/microblaze/microblaze-common.c index 49756633056f0d6080b32d4621a48426a841b09f..448a7acd539a73986c0541ef3e915fe457f37401 100644 --- a/gcc/common/config/microblaze/microblaze-common.c +++ b/gcc/common/config/microblaze/microblaze-common.c @@ -24,17 +24,7 @@ #include "common/common-target.h" #include "common/common-target-def.h" -/* Implement TARGET_OPTION_OPTIMIZATION_TABLE. */ -static const struct default_options microblaze_option_optimization_table[] = - { - { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, - { OPT_LEVELS_NONE, 0, NULL, 0 } - }; - #undef TARGET_DEFAULT_TARGET_FLAGS #define TARGET_DEFAULT_TARGET_FLAGS TARGET_DEFAULT -#undef TARGET_OPTION_OPTIMIZATION_TABLE -#define TARGET_OPTION_OPTIMIZATION_TABLE microblaze_option_optimization_table - struct gcc_targetm_common targetm_common = TARGETM_COMMON_INITIALIZER; diff --git a/gcc/common/config/mips/mips-common.c b/gcc/common/config/mips/mips-common.c index 525af741d58c7b46de93cce0e5e8d4447a7a55dd..07ba06049cb43c0167363f4e371d0f5e7769b264 100644 --- a/gcc/common/config/mips/mips-common.c +++ b/gcc/common/config/mips/mips-common.c @@ -56,16 +56,6 @@ mips_handle_option (struct gcc_options *opts, } } -/* Implement TARGET_OPTION_OPTIMIZATION_TABLE. */ -static const struct default_options mips_option_optimization_table[] = - { - { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, - { OPT_LEVELS_NONE, 0, NULL, 0 } - }; - -#undef TARGET_OPTION_OPTIMIZATION_TABLE -#define TARGET_OPTION_OPTIMIZATION_TABLE mips_option_optimization_table - #undef TARGET_DEFAULT_TARGET_FLAGS #define TARGET_DEFAULT_TARGET_FLAGS \ (TARGET_DEFAULT \ diff --git a/gcc/common/config/mmix/mmix-common.c b/gcc/common/config/mmix/mmix-common.c index dd281394c0b4221f8c1f630a43c00127588d1508..f73ad980cd36718d9689f42dbd11f0afb4096244 100644 --- a/gcc/common/config/mmix/mmix-common.c +++ b/gcc/common/config/mmix/mmix-common.c @@ -24,18 +24,7 @@ along with GCC; see the file COPYING3. If not see #include "common/common-target.h" #include "common/common-target-def.h" -/* TARGET_OPTION_OPTIMIZATION_TABLE. */ - -static const struct default_options mmix_option_optimization_table[] = - { - { OPT_LEVELS_2_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, - { OPT_LEVELS_NONE, 0, NULL, 0 } - }; - #undef TARGET_DEFAULT_TARGET_FLAGS #define TARGET_DEFAULT_TARGET_FLAGS TARGET_DEFAULT -#undef TARGET_OPTION_OPTIMIZATION_TABLE -#define TARGET_OPTION_OPTIMIZATION_TABLE mmix_option_optimization_table - struct gcc_targetm_common targetm_common = TARGETM_COMMON_INITIALIZER; diff --git a/gcc/common/config/mn10300/mn10300-common.c b/gcc/common/config/mn10300/mn10300-common.c index e2df672ef665541653d694918020fdad0a995d17..74fa463d8d01844201aa8d832e32c6b4b1c1ea47 100644 --- a/gcc/common/config/mn10300/mn10300-common.c +++ b/gcc/common/config/mn10300/mn10300-common.c @@ -29,7 +29,6 @@ /* Implement TARGET_OPTION_OPTIMIZATION_TABLE. */ static const struct default_options mn10300_option_optimization_table[] = { - { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, /* The STC algorithm produces the smallest code at -Os. */ { OPT_LEVELS_2_PLUS, OPT_freorder_blocks_algorithm_, NULL, REORDER_BLOCKS_ALGORITHM_STC }, diff --git a/gcc/common/config/nios2/nios2-common.c b/gcc/common/config/nios2/nios2-common.c index 1366b1fffeaf2c7e0fe355c6d270ca31044b476d..36750ad1d3b91e64f4af519d7796caae6d146d76 100644 --- a/gcc/common/config/nios2/nios2-common.c +++ b/gcc/common/config/nios2/nios2-common.c @@ -30,7 +30,6 @@ along with GCC; see the file COPYING3. If not see /* Implement TARGET_OPTION_OPTIMIZATION_TABLE. */ static const struct default_options nios2_option_optimization_table[] = { - { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, { OPT_LEVELS_3_PLUS, OPT_mfast_sw_div, NULL, 1 }, { OPT_LEVELS_NONE, 0, NULL, 0 } }; diff --git a/gcc/common/config/pa/pa-common.c b/gcc/common/config/pa/pa-common.c index 13cc32b20c519c94a9fc01a9e9406226dff6a3af..ea943b9e04786ff31172f9533a7f157273f9602c 100644 --- a/gcc/common/config/pa/pa-common.c +++ b/gcc/common/config/pa/pa-common.c @@ -26,13 +26,6 @@ along with GCC; see the file COPYING3. If not see #include "opts.h" #include "flags.h" -/* Implement TARGET_OPTION_OPTIMIZATION_TABLE. */ -static const struct default_options pa_option_optimization_table[] = - { - { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, - { OPT_LEVELS_NONE, 0, NULL, 0 } - }; - /* Implement TARGET_HANDLE_OPTION. */ static bool @@ -68,8 +61,6 @@ pa_handle_option (struct gcc_options *opts, } } -#undef TARGET_OPTION_OPTIMIZATION_TABLE -#define TARGET_OPTION_OPTIMIZATION_TABLE pa_option_optimization_table #undef TARGET_DEFAULT_TARGET_FLAGS #define TARGET_DEFAULT_TARGET_FLAGS (TARGET_DEFAULT | TARGET_CPU_DEFAULT) #undef TARGET_HANDLE_OPTION diff --git a/gcc/common/config/pdp11/pdp11-common.c b/gcc/common/config/pdp11/pdp11-common.c index 47512ef0071d18b5d7b177688ebb31849635b163..6c3044f042c5cd24cfee6b4f11088c0735d7360c 100644 --- a/gcc/common/config/pdp11/pdp11-common.c +++ b/gcc/common/config/pdp11/pdp11-common.c @@ -26,14 +26,6 @@ along with GCC; see the file COPYING3. If not see #include "opts.h" #include "flags.h" -/* Implement TARGET_OPTION_OPTIMIZATION_TABLE. */ - -static const struct default_options pdp11_option_optimization_table[] = - { - { OPT_LEVELS_3_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, - { OPT_LEVELS_NONE, 0, NULL, 0 } - }; - /* Implement TARGET_HANDLE_OPTION. */ static bool @@ -70,8 +62,6 @@ pdp11_option_init_struct (struct gcc_options *opts) (MASK_FPU | MASK_45 | TARGET_UNIX_ASM_DEFAULT) #undef TARGET_HANDLE_OPTION #define TARGET_HANDLE_OPTION pdp11_handle_option -#undef TARGET_OPTION_OPTIMIZATION_TABLE -#define TARGET_OPTION_OPTIMIZATION_TABLE pdp11_option_optimization_table #undef TARGET_OPTION_INIT_STRUCT #define TARGET_OPTION_INIT_STRUCT pdp11_option_init_struct diff --git a/gcc/common/config/powerpcspe/powerpcspe-common.c b/gcc/common/config/powerpcspe/powerpcspe-common.c index 3c0106ae555d80ded696a735d7213ef1e8588f4b..0458c4070861e4cd761bdd2fd6b13b2721933e11 100644 --- a/gcc/common/config/powerpcspe/powerpcspe-common.c +++ b/gcc/common/config/powerpcspe/powerpcspe-common.c @@ -31,7 +31,6 @@ /* Implement TARGET_OPTION_OPTIMIZATION_TABLE. */ static const struct default_options rs6000_option_optimization_table[] = { - { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, /* Enable -fsched-pressure for first pass instruction scheduling. */ { OPT_LEVELS_1_PLUS, OPT_fsched_pressure, NULL, 1 }, { OPT_LEVELS_NONE, 0, NULL, 0 } diff --git a/gcc/common/config/riscv/riscv-common.c b/gcc/common/config/riscv/riscv-common.c index 50f1485f87a406dcf4ecf5571145980e965ce309..0408cb384cd8875419d9c287d52b1b8d9f3548d7 100644 --- a/gcc/common/config/riscv/riscv-common.c +++ b/gcc/common/config/riscv/riscv-common.c @@ -117,7 +117,6 @@ riscv_handle_option (struct gcc_options *opts, static const struct default_options riscv_option_optimization_table[] = { { OPT_LEVELS_1_PLUS, OPT_fsection_anchors, NULL, 1 }, - { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, { OPT_LEVELS_2_PLUS, OPT_free, NULL, 1 }, { OPT_LEVELS_NONE, 0, NULL, 0 } }; diff --git a/gcc/common/config/rs6000/rs6000-common.c b/gcc/common/config/rs6000/rs6000-common.c index 07537543ddcc40d1ab820ccd9671224129d83241..915c4694fe5108f1dfc154cfb44f3d51caf2a340 100644 --- a/gcc/common/config/rs6000/rs6000-common.c +++ b/gcc/common/config/rs6000/rs6000-common.c @@ -31,7 +31,6 @@ /* Implement TARGET_OPTION_OPTIMIZATION_TABLE. */ static const struct default_options rs6000_option_optimization_table[] = { - { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, /* Enable -fsched-pressure for first pass instruction scheduling. */ { OPT_LEVELS_1_PLUS, OPT_fsched_pressure, NULL, 1 }, { OPT_LEVELS_NONE, 0, NULL, 0 } diff --git a/gcc/common/config/rx/rx-common.c b/gcc/common/config/rx/rx-common.c index 961d05af1e3b4a3b3918037297b129575916e5eb..ef6f82302a3c0101fff91ca14d5062e465b3a5b6 100644 --- a/gcc/common/config/rx/rx-common.c +++ b/gcc/common/config/rx/rx-common.c @@ -70,19 +70,9 @@ rx_handle_option (struct gcc_options *opts, return true; } -/* Implement TARGET_OPTION_OPTIMIZATION_TABLE. */ -static const struct default_options rx_option_optimization_table[] = - { - { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, - { OPT_LEVELS_NONE, 0, NULL, 0 } - }; - #undef TARGET_HANDLE_OPTION #define TARGET_HANDLE_OPTION rx_handle_option -#undef TARGET_OPTION_OPTIMIZATION_TABLE -#define TARGET_OPTION_OPTIMIZATION_TABLE rx_option_optimization_table - #undef TARGET_EXCEPT_UNWIND_INFO #define TARGET_EXCEPT_UNWIND_INFO sjlj_except_unwind_info diff --git a/gcc/common/config/s390/s390-common.c b/gcc/common/config/s390/s390-common.c index 10418a36c20b8f2b8301e71c18b9d660676e1f0e..b53ea6e30a969e7b32d1f15c01c5ec62717b1d95 100644 --- a/gcc/common/config/s390/s390-common.c +++ b/gcc/common/config/s390/s390-common.c @@ -56,8 +56,6 @@ EXPORTED_CONST int processor_flags_table[] = static const struct default_options s390_option_optimization_table[] = { - { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, - /* Enable -fsched-pressure by default when optimizing. */ { OPT_LEVELS_1_PLUS, OPT_fsched_pressure, NULL, 1 }, diff --git a/gcc/common/config/sh/sh-common.c b/gcc/common/config/sh/sh-common.c index e9903cc9c4e92a237f0ac2c2a3c2e33480a3d9e8..395da07bd7d301037e18c6d8530f75d916c9fbac 100644 --- a/gcc/common/config/sh/sh-common.c +++ b/gcc/common/config/sh/sh-common.c @@ -30,7 +30,6 @@ along with GCC; see the file COPYING3. If not see /* Set default optimization options. */ static const struct default_options sh_option_optimization_table[] = { - { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, { OPT_LEVELS_SIZE, OPT_mdiv_, SH_DIV_STR_FOR_SIZE, 1 }, { OPT_LEVELS_0_ONLY, OPT_mdiv_, "", 1 }, { OPT_LEVELS_NONE, 0, NULL, 0 } diff --git a/gcc/common/config/sparc/sparc-common.c b/gcc/common/config/sparc/sparc-common.c index 0d196697cc288cf082d93ae080c49e6e74929c2e..87fcac49486d947f2c32d4416475acb3df81c172 100644 --- a/gcc/common/config/sparc/sparc-common.c +++ b/gcc/common/config/sparc/sparc-common.c @@ -27,7 +27,6 @@ along with GCC; see the file COPYING3. If not see /* Implement TARGET_OPTION_OPTIMIZATION_TABLE. */ static const struct default_options sparc_option_optimization_table[] = { - { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, /* Enable redundant extension instructions removal at -O2 and higher. */ { OPT_LEVELS_2_PLUS, OPT_free, NULL, 1 }, { OPT_LEVELS_NONE, 0, NULL, 0 } diff --git a/gcc/common/config/tilegx/tilegx-common.c b/gcc/common/config/tilegx/tilegx-common.c index 96d5b25464f640ae50564ce0d42f063122993e63..7fca8bb08f1258080db8ce51f8f84b74d2796d8d 100644 --- a/gcc/common/config/tilegx/tilegx-common.c +++ b/gcc/common/config/tilegx/tilegx-common.c @@ -29,7 +29,6 @@ #include "flags.h" static const struct default_options tilegx_option_optimization_table[] = { - {OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1}, /* Scheduling and bundling are super important for our architecture, so enable them at -O1. */ {OPT_LEVELS_1_PLUS, OPT_fschedule_insns, NULL, 1}, diff --git a/gcc/common/config/tilepro/tilepro-common.c b/gcc/common/config/tilepro/tilepro-common.c index 50ac7a9404b00cedde94b649e8f10d739a005d14..9dddf6528e56894a3e86a67e7c42a9a1f68d6f0c 100644 --- a/gcc/common/config/tilepro/tilepro-common.c +++ b/gcc/common/config/tilepro/tilepro-common.c @@ -29,7 +29,6 @@ #include "flags.h" static const struct default_options tilepro_option_optimization_table[] = { - {OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1}, /* Scheduling and bundling are super important for our architecture, so enable them at -O1. */ {OPT_LEVELS_1_PLUS, OPT_fschedule_insns, NULL, 1}, diff --git a/gcc/common/config/v850/v850-common.c b/gcc/common/config/v850/v850-common.c index 032ef888966e5319460cde07bf0a6caabbd8cb14..b30f9cb0b673ef1621d2538b1ac82bece1547042 100644 --- a/gcc/common/config/v850/v850-common.c +++ b/gcc/common/config/v850/v850-common.c @@ -111,7 +111,6 @@ v850_handle_option (struct gcc_options *opts, static const struct default_options v850_option_optimization_table[] = { - { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, /* Note - we no longer enable MASK_EP when optimizing. This is because of a hardware bug which stops the SLD and SST instructions from correctly detecting some hazards. If the user is sure that diff --git a/gcc/common/config/visium/visium-common.c b/gcc/common/config/visium/visium-common.c index 6a29a243b325da1e66c963a773be3cbd2dfe66df..7d7c647c03b0c1d74515df999c5b6cff939aaa7d 100644 --- a/gcc/common/config/visium/visium-common.c +++ b/gcc/common/config/visium/visium-common.c @@ -25,14 +25,4 @@ along with GCC; see the file COPYING3. If not see #include "common/common-target.h" #include "common/common-target-def.h" -/* Set default optimization options. */ -static const struct default_options visium_option_optimization_table[] = - { - { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, - { OPT_LEVELS_NONE, 0, NULL, 0 } - }; - -#undef TARGET_OPTION_OPTIMIZATION_TABLE -#define TARGET_OPTION_OPTIMIZATION_TABLE visium_option_optimization_table - struct gcc_targetm_common targetm_common = TARGETM_COMMON_INITIALIZER; diff --git a/gcc/common/config/xstormy16/xstormy16-common.c b/gcc/common/config/xstormy16/xstormy16-common.c index 6e70d94cf735a7943670e24d6769a2b30463b68a..eb24c6fbdd57d208b5a96bc7ab78279eaad6a8bd 100644 --- a/gcc/common/config/xstormy16/xstormy16-common.c +++ b/gcc/common/config/xstormy16/xstormy16-common.c @@ -24,14 +24,4 @@ #include "common/common-target.h" #include "common/common-target-def.h" -/* Implement TARGET_OPTION_OPTIMIZATION_TABLE. */ -static const struct default_options xstorym16_option_optimization_table[] = - { - { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, - { OPT_LEVELS_NONE, 0, NULL, 0 } - }; - -#undef TARGET_OPTION_OPTIMIZATION_TABLE -#define TARGET_OPTION_OPTIMIZATION_TABLE xstorym16_option_optimization_table - struct gcc_targetm_common targetm_common = TARGETM_COMMON_INITIALIZER; diff --git a/gcc/common/config/xtensa/xtensa-common.c b/gcc/common/config/xtensa/xtensa-common.c index 24521ec9787a43e115c021ff9b39a6a1ac142e42..53ad976b5000dd23e33a0b7682fb7b08984f4d36 100644 --- a/gcc/common/config/xtensa/xtensa-common.c +++ b/gcc/common/config/xtensa/xtensa-common.c @@ -28,7 +28,6 @@ along with GCC; see the file COPYING3. If not see static const struct default_options xtensa_option_optimization_table[] = { - { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, /* Reordering blocks for Xtensa is not a good idea unless the compiler understands the range of conditional branches. Currently all branch relaxation for Xtensa is handled in the diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 71b2445f70fd5b832c68c08e69e71d8ecad37a4a..1c56f4b12495fe97c604200ef245c9fa02684b0f 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -7436,16 +7436,17 @@ machine-description macro @code{FRAME_POINTER_REQUIRED} controls whether a target machine supports this flag. @xref{Registers,,Register Usage, gccint, GNU Compiler Collection (GCC) Internals}. -The default setting (when not optimizing for -size) for 32-bit GNU/Linux x86 and 32-bit Darwin x86 targets is -@option{-fomit-frame-pointer}. You can configure GCC with the -@option{--enable-frame-pointer} configure option to change the default. +The default setting is @option{-fomit-frame-pointer}. You can configure GCC +with the @option{--enable-frame-pointer} configure option to change the default. Note that @option{-fno-omit-frame-pointer} doesn't force a new stack frame for all functions if it isn't otherwise needed, and hence doesn't -guarantee a new frame pointer for all functions. +guarantee a new frame pointer for all functions. Several targets always omit +the frame pointer in leaf functions. + +Enabled at levels @option{-O}, @option{-O1}, @option{-O2}, @option{-O3}, +@option{-Os} and @option{-Og}. -Enabled at levels @option{-O}, @option{-O2}, @option{-O3}, @option{-Os}. @item -foptimize-sibling-calls @opindex foptimize-sibling-calls diff --git a/gcc/opts.c b/gcc/opts.c index ee95c84cdef93b568aee0c0ee185332cc89870f6..6600a5afd488e89262e6327f7370057c7ae234ba 100644 --- a/gcc/opts.c +++ b/gcc/opts.c @@ -476,6 +476,7 @@ static const struct default_options default_options_table[] = { OPT_LEVELS_1_PLUS_NOT_DEBUG, OPT_ftree_pta, NULL, 1 }, { OPT_LEVELS_1_PLUS_NOT_DEBUG, OPT_fssa_phiopt, NULL, 1 }, { OPT_LEVELS_1_PLUS, OPT_ftree_builtin_call_dce, NULL, 1 }, + { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, /* -O2 optimizations. */ { OPT_LEVELS_2_PLUS, OPT_finline_small_functions, NULL, 1 },