From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by sourceware.org (Postfix) with ESMTPS id 42FF73858D35 for ; Mon, 21 Nov 2022 01:01:18 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 42FF73858D35 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1668992478; x=1700528478; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=fm2DKeNV20aL4Xu4YxYv/D7efc+Ym0nwPjLiJevlkjY=; b=EiQc8oZ67ZWPyT9t7bLeJsO4asMyiD4B4Mvxh2435LO07CUwVAh/oHPL HmuiH/gOTq0Ngu0dmRziCIeLsLX4JLzWzuyCqYxO9Xam4W3Y1VeyBxcF8 Ndn74LyL058pTM022jQ850e7as+DJic2iB7SBeRM8p5lwMVdZscb7Movw oRodApP2O0HFwypOGhow6PFRVQGQu3vdfJPvtK6/huMhg/UiwaA5LZxHJ bCeRJFwx+151MI/IcWWOl/0Y67R6zEc5aevHtaAakJD9/qmHnnpgmo2fM UaF6qewhAG1P7Zwh8GBACKofrzeOUEVIPMZFVeGeIdWEWTPCYa1RnwfYs A==; X-IronPort-AV: E=McAfee;i="6500,9779,10537"; a="312149121" X-IronPort-AV: E=Sophos;i="5.96,180,1665471600"; d="scan'208";a="312149121" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Nov 2022 17:01:16 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10537"; a="618649019" X-IronPort-AV: E=Sophos;i="5.96,180,1665471600"; d="scan'208";a="618649019" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by orsmga006.jf.intel.com with ESMTP; 20 Nov 2022 17:01:16 -0800 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Sun, 20 Nov 2022 17:01:16 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Sun, 20 Nov 2022 17:01:16 -0800 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.177) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Sun, 20 Nov 2022 17:01:15 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RgBAYX/rUB8+Q/3/mKgkMMLfO4QKV41Oh8YPxi8zcxT4dDWHkCa0yC277DBJyRYAGO4xtX0hpad7oJkNyWH1lMbseP34RKW8LeIZY+9wt+jtd3/Bha1ZC5hCs5aODe+S46lJ/XkdqnvcTuq+6zOZy4sh1Oy/PIsomMkmLW0hrGDi64O0zkG6fmHr65MzfXfm5q3z+7JkAbjuZt1XT+/MjZCKkBu2D8crM4xfhSC4Qi0xdWNucwuZeuZRXLQPHp6bklzR6vOa9vJd2cTDOJnLxvAVlgKyLpPQEP1VtXDlPkHJEEkqY16e0L81PUQpLyNrhKtFYjm+qre6b4m58W786Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=BMdftrmODGFbetngUNVt/kK2NEIVxLmZF5l6jFGZ99c=; b=dhUsA6aIlV1uLyKGtBjAoMs8B/KWKVK7iFpuiOeEueBqxi47RETsBcG4qFwUveVrBgdibU/v2t06FSv1gswMbpQM95b0/e1me1QMcMaronnuAq8pfsBX0KCoYhg6CVyNdwj+yUbWq6nTT88Bi8qQ47HT1x479URm2s4T5XlN1gEOkLZ1X6QRQ7Ep9xTf7JXVhG9FSEmG7SB2Nu7Cm8U8+xftLal4fWzw9WIFWt/bQ1abemsZyQypfJgZdlGK2iPVmF7N7vkUBf3zfAAmwWoif1uvZfGlrgZ7sNcitBuX4F/IbU2YCPVMlUIRry67mxGNpjoYCeoFAQM+CLb6B5ofug== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from CY4PR1101MB2150.namprd11.prod.outlook.com (2603:10b6:910:18::11) by PH0PR11MB5784.namprd11.prod.outlook.com (2603:10b6:510:129::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5834.9; Mon, 21 Nov 2022 01:01:12 +0000 Received: from CY4PR1101MB2150.namprd11.prod.outlook.com ([fe80::ac52:60f1:aeed:8651]) by CY4PR1101MB2150.namprd11.prod.outlook.com ([fe80::ac52:60f1:aeed:8651%5]) with mapi id 15.20.5834.015; Mon, 21 Nov 2022 01:01:12 +0000 From: "Liu, Hongtao" To: "Wang, Hongyu" , "gcc-patches@gcc.gnu.org" CC: "richard.guenther@gmail.com" , "ubizjak@gmail.com" Subject: RE: [PATCH] i386: Only enable small loop unrolling in backend [PR 107602] Thread-Topic: [PATCH] i386: Only enable small loop unrolling in backend [PR 107602] Thread-Index: AQHY+9/A6ODsjMNkN0ekH3ZFWH9ay65IkZmQ Date: Mon, 21 Nov 2022 01:01:11 +0000 Message-ID: References: <20221119062532.75190-1-hongyu.wang@intel.com> In-Reply-To: <20221119062532.75190-1-hongyu.wang@intel.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CY4PR1101MB2150:EE_|PH0PR11MB5784:EE_ x-ms-office365-filtering-correlation-id: ab2c90e9-f365-4141-2d8d-08dacb5be1f2 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 9rtQbGWDuupfZReAkKwdtnKXXjKYwMRKxzPT3FAARPMoj7DOX3oJb+dGu+6KudV0W35zf0wtAb7vUb7Fza45U0EfWYQYE+qVGmzKlwBCoFrXCa7rd8laAph3/UPr8gIoWAp0HcpBty478zmJSKQhm1PPxFZp3Pi1r7Gj9qcBnfk++xA6ZwCrw1MDUOdSYev09b0K1FsHyTqUHt+0T/MKBIFXjr4hbws9oYgucVc2tv4YALqwUAJTTgoJssH/cH40+2xhPrRh5wFadRB3nPsBASfIB+9XNr1PYVWp3YOOp5Wg5jTVLAq2UEMeWZtnxMMPUXJgl5B8BrTP9S51/5iXxFBLuKnsNVf42HXzm95ZWfAghff0TzUvj83mC3c0FWKcOZMFQN1GQe7gbaBcBfJv0uYO/oRDzwxf89tvjXbWOryYkqkAYyh77x4wuwZuO5xBtyKtLOpqOErObTbhBgBMQZFDiJpx3FShEZ9akjx7iTch/AqZaoDbg05gaa9MNRyuk6PFgfBlxecVR1cIMSnc5VNUfDDPVITjpzhhJ/tRP9pEjZZaqAyNwBKb5KYbGLcBh4lQ9vIcnh0uQxYZOLSVfaVLwavkg4kdRvxZEK7wV2VOH8DpMFVEVn+b9A593/cwNeJ6OzIAN+NXVMTKiHqz+NsH8f5cQ1kGomHDGTlpwlpKXDPzM72xOYK5pnez666gon5XlWhZea9ZFQ5KPvRK8mRhtPuKBLuwu8qitfVFVxo= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY4PR1101MB2150.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(376002)(366004)(39860400002)(346002)(136003)(396003)(451199015)(33656002)(86362001)(55016003)(41300700001)(64756008)(66446008)(76116006)(66556008)(66476007)(66946007)(8676002)(52536014)(8936002)(71200400001)(5660300002)(186003)(478600001)(316002)(26005)(9686003)(110136005)(53546011)(54906003)(82960400001)(83380400001)(122000001)(7696005)(38100700002)(38070700005)(6506007)(4326008)(2906002)(84970400001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?PZEdjYijdmV13Q1KNO54zVc98c9oEw5gM0QBit+j3Wrq16kBHyloHimFdvvW?= =?us-ascii?Q?u1pKP/WE861OFMFniifw5Sh7iZA6h5rfkaw/4AIsZ5QW4NnlDgrSXu6zdXzK?= =?us-ascii?Q?wmXc/Cui7eR318AtprwuT0+wsAwPmLgIVNFYD9sYlF+9nNVNUijprTTlQK4y?= =?us-ascii?Q?nBmuw7u4AYiudc6yvJVPQOzN+bwYfhUHH2iOLeIIw7dcnsc+zLmPd19T9FwZ?= =?us-ascii?Q?0EZl/1o+BQHWV7r3iibQRlijB2OT4Zpq21H1E/SFATKINfN2tFoeASnxrCO6?= =?us-ascii?Q?hewFADbcv5u/Gqxii+2cTITF3gY88cxuZmvMZlizLjS3mNBm0CuXWyBOFTiN?= =?us-ascii?Q?m8hDarAl3iGvYKwz4dhedgu/gRysodhmA9FpF9k1qIcrjsat7R/rr0q9k70A?= =?us-ascii?Q?+RuEW3GcI5GMb+vHsUQMq9PsIbbfX8WmlBDXVdOQuHxW9JbKiczRMpRlI62O?= =?us-ascii?Q?NafEiE7fuMpwAffsSTqgwmx0udmfCscAzR21iE/sO0cGtUG+UYiMo9APEINQ?= =?us-ascii?Q?Acn3nfFvkorzrEmwIsxyNnly1bIOxdkqtBkXp2sT5RJp7+ie+6c/UjWNe+JK?= =?us-ascii?Q?sIMBxfu/UkZ3gTYsxU5MkmGLD56j/EHK1V/Lo5JO5bTJ/Pra+mKNw0TcsXzq?= =?us-ascii?Q?vf6X7/R4UFNV1824nhzhxxOg5uLDe6UML/pTbU8MlvS5yx3HP8A/QG3UCQl6?= =?us-ascii?Q?e8bj3lHl9RaILF91lVFJYUmF6dOdY8AWcT0QJfiqE56lQZ2e5ssgO1lOMBiq?= =?us-ascii?Q?LNCPNOwlUbzr7HoixjxZ+GqDegtoHnIC8ZpD2m/ZZDuSFYad25XTfKTTP5X4?= =?us-ascii?Q?6If/7XEMIiRvGPtw21km5FpK9dibTkeZ50aY33+fwREi2M51zrM3sXYPH7ul?= =?us-ascii?Q?NrGNr5zsLbmHrCQ9mN38zaA+zoDbj59wKOvr+8dLask2utIuerSR+yEdCeuk?= =?us-ascii?Q?aLwfRvCvY25dllsQKMuy9wi+iIw00xTHx5MDz/kSTXmo+qZ6azbBka9qP11L?= =?us-ascii?Q?p7PONjRT+B3pknO/fl7Swpkz0bqgHwCHz9l4AsQiBmWcaE9phP5ALoWOxzdF?= =?us-ascii?Q?y2VTd5YZGrS9r/1ixM6yUmlqRssNIjNX+u5laUzeH6ul93xU2YSCs/o2+N1h?= =?us-ascii?Q?VG3LBLperXdV2A5E6SxcK4Vf88ZfSMiWJ7s5wIYghRuWeteM/NXiKMw9DUmD?= =?us-ascii?Q?2NBwbJ1m/tK4D9m0Cjmr4zVbKGuexXZKcPUOxnbMgWSjJQ8hAW0EAA9HhE7j?= =?us-ascii?Q?064J99nksqGkmDZBCHde5Ib2qjyD4QcFPbeQg93NGY4cAKQ/B+TdhTHei5Ra?= =?us-ascii?Q?3JkF0NqlQn7wouKsbjjQ8Y4CkaQ8meCFpYqJqIu804SSCMdZJwK65KM1yy/9?= =?us-ascii?Q?ni2KqEUGzPVNNBJb1a4/6Vty5IxVgDU650+9MSJyi3we/Q7CaYY4jt7b45Y8?= =?us-ascii?Q?UYmh7qsoP1rhZfw/ornkW2UciNtBEg701ncWlHlHgN53sMtnZrFFKkdyFvvQ?= =?us-ascii?Q?KHhDB80NuVpmqxupg8y1C6BkEfQe0tUCZgW+LsF41EzXfg3fPtHGhtBWvWUx?= =?us-ascii?Q?mIBIeTGDFmAVRlgGLyVrZf4M9bjPEZBQDGN7uWlL?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CY4PR1101MB2150.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ab2c90e9-f365-4141-2d8d-08dacb5be1f2 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Nov 2022 01:01:11.8928 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: NPq3PfcJsseRei23R/ITD4dMb3jcnYm1iKtbSt1+oXsQlErG0cmIHhqgxXtBhL46iXrs3d9xJnv3h92gzu8Kxw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB5784 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-13.2 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_SHORT,SPF_HELO_NONE,SPF_NONE,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: > -----Original Message----- > From: Wang, Hongyu > Sent: Saturday, November 19, 2022 2:26 PM > To: gcc-patches@gcc.gnu.org > Cc: richard.guenther@gmail.com; ubizjak@gmail.com; Liu, Hongtao > > Subject: [PATCH] i386: Only enable small loop unrolling in backend [PR 10= 7602] >=20 > Hi, >=20 > Followed by the discussion in pr107602, -munroll-only-small-loops Does no= t PR107692? > turns on/off -funroll-loops, and current check in pass_rtl_unroll_loops::= gate > would cause -funroll-loops do not take effect. Revert the change about > targetm.loop_unroll_adjust and apply the backend option change to strictl= y > follow the rule that -funroll-loops takes full control of loop unrolling,= and > munroll-only-small-loops just change its behavior to unroll small size lo= ops. >=20 > Bootstrapped and regtested on x86-64-pc-linux-gnu. >=20 > Ok for trunk? >=20 > gcc/ChangeLog: >=20 > PR target/107602 > * common/config/i386/i386-common.cc (ix86_optimization_table): > Enable loop unroll O2, disable -fweb and -frename-registers > by default. > * config/i386/i386-options.cc > (ix86_override_options_after_change): > Disable small loop unroll when funroll-loops enabled, reset > cunroll_grow_size when it is not explicitly enabled. > (ix86_option_override_internal): Call > ix86_override_options_after_change instead of calling > ix86_recompute_optlev_based_flags and ix86_default_align > separately. > * config/i386/i386.cc (ix86_loop_unroll_adjust): Adjust unroll > factor if -munroll-only-small-loops enabled. > * loop-init.cc (pass_rtl_unroll_loops::gate): Do not enable > loop unrolling for -O2-speed. > (pass_rtl_unroll_loops::execute): Rmove > targetm.loop_unroll_adjust check. >=20 > gcc/testsuite/ChangeLog: >=20 > PR target/107602 > * gcc.target/i386/pr86270.c: Add -fno-unroll-loops. > * gcc.target/i386/pr93002.c: Likewise. > --- > gcc/common/config/i386/i386-common.cc | 8 ++++++ > gcc/config/i386/i386-options.cc | 34 ++++++++++++++++++++++--- > gcc/config/i386/i386.cc | 18 ++++--------- > gcc/loop-init.cc | 11 +++----- > gcc/testsuite/gcc.target/i386/pr86270.c | 2 +- > gcc/testsuite/gcc.target/i386/pr93002.c | 2 +- > 6 files changed, 49 insertions(+), 26 deletions(-) >=20 > diff --git a/gcc/common/config/i386/i386-common.cc > b/gcc/common/config/i386/i386-common.cc > index 6ce2a588adc..660a977b68b 100644 > --- a/gcc/common/config/i386/i386-common.cc > +++ b/gcc/common/config/i386/i386-common.cc > @@ -1808,7 +1808,15 @@ static const struct default_options > ix86_option_optimization_table[] =3D > /* The STC algorithm produces the smallest code at -Os, for x86. */ > { OPT_LEVELS_2_PLUS, OPT_freorder_blocks_algorithm_, NULL, > REORDER_BLOCKS_ALGORITHM_STC }, > + > + /* Turn on -funroll-loops with -munroll-only-small-loops to enable s= mall > + loop unrolling at -O2. */ > + { OPT_LEVELS_2_PLUS_SPEED_ONLY, OPT_funroll_loops, NULL, 1 }, > { OPT_LEVELS_2_PLUS_SPEED_ONLY, OPT_munroll_only_small_loops, NULL, > 1 }, > + /* Turns off -frename-registers and -fweb which are enabled by > + funroll-loops. */ > + { OPT_LEVELS_ALL, OPT_frename_registers, NULL, 0 }, > + { OPT_LEVELS_ALL, OPT_fweb, NULL, 0 }, > /* Turn off -fschedule-insns by default. It tends to make the > problem with not enough registers even worse. */ > { OPT_LEVELS_ALL, OPT_fschedule_insns, NULL, 0 }, diff --git > a/gcc/config/i386/i386-options.cc b/gcc/config/i386/i386-options.cc index > e5c77f3a84d..bc1d36e36a8 100644 > --- a/gcc/config/i386/i386-options.cc > +++ b/gcc/config/i386/i386-options.cc > @@ -1838,8 +1838,37 @@ ix86_recompute_optlev_based_flags (struct > gcc_options *opts, void ix86_override_options_after_change (void) { > + /* Default align_* from the processor table. */ > ix86_default_align (&global_options); > + > ix86_recompute_optlev_based_flags (&global_options, &global_options_se= t); > + > + /* Disable unrolling small loops when there's explicit > + -f{,no}unroll-loop. */ > + if ((OPTION_SET_P (flag_unroll_loops)) > + || (OPTION_SET_P (flag_unroll_all_loops) > + && flag_unroll_all_loops)) > + { > + if (!OPTION_SET_P (ix86_unroll_only_small_loops)) > + ix86_unroll_only_small_loops =3D 0; > + /* Re-enable -frename-registers and -fweb if funroll-loops > + enabled. */ > + if (!OPTION_SET_P (flag_web)) > + flag_web =3D flag_unroll_loops; > + if (!OPTION_SET_P (flag_rename_registers)) > + flag_rename_registers =3D flag_unroll_loops; > + /* -fcunroll-grow-size default follws -f[no]-unroll-loops. */ > + if (!OPTION_SET_P (flag_cunroll_grow_size)) > + flag_cunroll_grow_size =3D flag_unroll_loops > + || flag_peel_loops > + || optimize >=3D 3; > + } > + else > + { > + if (!OPTION_SET_P (flag_cunroll_grow_size)) > + flag_cunroll_grow_size =3D flag_peel_loops || optimize >=3D 3; > + } > + > } >=20 > /* Clear stack slot assignments remembered from previous functions. > @@ -2351,7 +2380,7 @@ ix86_option_override_internal (bool main_args_p, >=20 > set_ix86_tune_features (opts, ix86_tune, opts->x_ix86_dump_tunes); >=20 > - ix86_recompute_optlev_based_flags (opts, opts_set); > + ix86_override_options_after_change (); >=20 > ix86_tune_cost =3D processor_cost_table[ix86_tune]; > /* TODO: ix86_cost should be chosen at instruction or function granual= ity > @@ -2382,9 +2411,6 @@ ix86_option_override_internal (bool main_args_p, > || TARGET_64BIT_P (opts->x_ix86_isa_flags)) > opts->x_ix86_regparm =3D REGPARM_MAX; >=20 > - /* Default align_* from the processor table. */ > - ix86_default_align (opts); > - > /* Provide default for -mbranch-cost=3D value. */ > SET_OPTION_IF_UNSET (opts, opts_set, ix86_branch_cost, > ix86_tune_cost->branch_cost); > diff --git a/gcc/config/i386/i386.cc b/gcc/config/i386/i386.cc index > 292b32c5e99..10f8b4e91a5 100644 > --- a/gcc/config/i386/i386.cc > +++ b/gcc/config/i386/i386.cc > @@ -23829,20 +23829,12 @@ ix86_loop_unroll_adjust (unsigned nunroll, > class loop *loop) >=20 > /* Unroll small size loop when unroll factor is not explicitly > specified. */ > - if (!(flag_unroll_loops > - || flag_unroll_all_loops > - || loop->unroll)) > + if (ix86_unroll_only_small_loops && !loop->unroll) > { > - nunroll =3D 1; > - > - /* Any explicit -f{no-}unroll-{all-}loops turns off > - -munroll-only-small-loops. */ > - if (ix86_unroll_only_small_loops > - && !OPTION_SET_P (flag_unroll_loops) > - && loop->ninsns <=3D ix86_cost->small_unroll_ninsns) > - nunroll =3D ix86_cost->small_unroll_factor; > - > - return nunroll; > + if (loop->ninsns <=3D ix86_cost->small_unroll_ninsns) > + return MIN (nunroll, ix86_cost->small_unroll_factor); > + else > + return 1; > } >=20 > if (!TARGET_ADJUST_UNROLL) > diff --git a/gcc/loop-init.cc b/gcc/loop-init.cc index 9789efa1e11..f03c0= 77cae1 > 100644 > --- a/gcc/loop-init.cc > +++ b/gcc/loop-init.cc > @@ -565,12 +565,10 @@ public: > {} >=20 > /* opt_pass methods: */ > - bool gate (function *fun) final override > + bool gate (function *) final override > { > - return (flag_unroll_loops || flag_unroll_all_loops || cfun->has_un= roll > - || (targetm.loop_unroll_adjust > - && optimize >=3D 2 > - && optimize_function_for_speed_p (fun))); > + return (flag_unroll_loops || flag_unroll_all_loops > + || cfun->has_unroll); > } >=20 > unsigned int execute (function *) final override; @@ -586,8 +584,7 @@ > pass_rtl_unroll_loops::execute (function *fun) > if (dump_file) > df_dump (dump_file); >=20 > - if (flag_unroll_loops > - || targetm.loop_unroll_adjust) > + if (flag_unroll_loops) > flags |=3D UAP_UNROLL; > if (flag_unroll_all_loops) > flags |=3D UAP_UNROLL_ALL; > diff --git a/gcc/testsuite/gcc.target/i386/pr86270.c > b/gcc/testsuite/gcc.target/i386/pr86270.c > index cbc9fbb0450..98b012caf23 100644 > --- a/gcc/testsuite/gcc.target/i386/pr86270.c > +++ b/gcc/testsuite/gcc.target/i386/pr86270.c > @@ -1,5 +1,5 @@ > /* { dg-do compile } */ > -/* { dg-options "-O2 -mno-unroll-only-small-loops" } */ > +/* { dg-options "-O2 -fno-unroll-loops" } */ >=20 > int *a; > long len; > diff --git a/gcc/testsuite/gcc.target/i386/pr93002.c > b/gcc/testsuite/gcc.target/i386/pr93002.c > index f75a847f75d..7e2d869e17b 100644 > --- a/gcc/testsuite/gcc.target/i386/pr93002.c > +++ b/gcc/testsuite/gcc.target/i386/pr93002.c > @@ -1,6 +1,6 @@ > /* PR target/93002 */ > /* { dg-do compile } */ > -/* { dg-options "-O2 -mno-unroll-only-small-loops" } */ > +/* { dg-options "-O2 -fno-unroll-loops" } */ > /* { dg-final { scan-assembler-not "cmp\[^\n\r]*-1" } } */ >=20 > volatile int sink; > -- > 2.18.1