From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by sourceware.org (Postfix) with ESMTPS id 2160A385483F for ; Fri, 14 Oct 2022 06:28:43 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 2160A385483F 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=1665728923; x=1697264923; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=WLrRswC8m4QAXuUVgR4KSZDju/JOB/pDoufnKxUnlAA=; b=V7qcCEMVBjb0YbhPvyLqkFQc/Cd+IfseCDxTQpqpOKgXo8Z1YwqeTpQ6 wNZ1iyh+I4R0kMnlpTWLSr6sijL25IhcCGNXi6vaQlOgyEdPnN1adC8aD mjOFeOqJM4PQNrmxJu3Uf3FBgqj5WngMT+Fjgr7wxusa3HuyhPXBlzJyJ foQOaeKMwpMaeRv9EP0ralmvkN9g1b6RCEpmsPL+Y52qtUpc5SUF3DQDm vgfDrnvNyOD8Mdh1sDEly+Urmrz2V4NJKFf8HY3y4z+4YqtHIvEBkXuF+ D0xlcRPcHzvls7eMtZ/wWcLTVYuxCYHnH39wqj5z+SKlRpW9tvIRFppby w==; X-IronPort-AV: E=McAfee;i="6500,9779,10499"; a="292652423" X-IronPort-AV: E=Sophos;i="5.95,182,1661842800"; d="scan'208";a="292652423" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Oct 2022 23:28:26 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10499"; a="769923133" X-IronPort-AV: E=Sophos;i="5.95,182,1661842800"; d="scan'208";a="769923133" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga001.fm.intel.com with ESMTP; 13 Oct 2022 23:28:26 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Thu, 13 Oct 2022 23:28:26 -0700 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Thu, 13 Oct 2022 23:28:25 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Thu, 13 Oct 2022 23:28:25 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.103) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Thu, 13 Oct 2022 23:28:25 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=i166zKa9mxAvQ5wrg9OvH+9EZnZeg/m7O9wPFsrw4v4PS/F3xN3otrBH6Vip3whC2aK2WpUlesYMn2KCNlfnKKV8Rfx6MDHtpOMsFVYrAyd2dA0/CsJM241+2+/f6XDUetNedTKWxtzyv63y1j7baTDbcmJ7QvnyDFc0aYc6LHv0OU2TcxCC6VooImKFIdRHXsBwQhG1JY0LfTVkLZc4895SDgvaifvf3OQw9jmQy2sMY/Lez6crJDSqkLpc3RjPdSWGFNRwfpC/6+JXkheNJaqFjm/truqO19aLK1lF6fhYiG50RXIe6ZWn69DMMuQe1NSuoyEAOCbhI+l6wlv4CA== 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=HjAkJzgZaxOi9JFg+UEdDN1FeWVh01W2QuIzHrenRWQ=; b=JffFoG4tTued1cVCklrhFLjTjuEUCgLOiu37ifOeeTGDyFkYeNQQOc0AfGdVsyQMdj9PqHyOHskfwlXXcznmwdA53NZ76uFSiu9sV33RINblX7p4Weyjv+zWGQzTSKMazNaTuO6jQYAO6MsAP43JSoCl8DUal38QdjolmXKRGBxXvjf6WggCptLlkwLmiTdHxap3AuYIcSk02lhICFfNQKRKM48YXoyKfmFaPucR0WkDk2X2AjWgY2QEjARS+fjR3Mk3HgEUPgayXbBZou6MzvbUghIvovnM5WLXnUk7y0dqB3p3YHrQOCZvbu2B20UnH/Y914+BJjKOyDClSO+YLw== 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 SJ0PR11MB5600.namprd11.prod.outlook.com (2603:10b6:a03:3ab::16) by PH7PR11MB6403.namprd11.prod.outlook.com (2603:10b6:510:1f9::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.15; Fri, 14 Oct 2022 06:28:23 +0000 Received: from SJ0PR11MB5600.namprd11.prod.outlook.com ([fe80::a038:823e:8895:63aa]) by SJ0PR11MB5600.namprd11.prod.outlook.com ([fe80::a038:823e:8895:63aa%4]) with mapi id 15.20.5723.026; Fri, 14 Oct 2022 06:28:23 +0000 From: "Cui, Lili" To: Jan Hubicka CC: "Lu, Hongjiu" , "Liu, Hongtao" , "gcc-patches@gcc.gnu.org" Subject: RE: Ping^2 [PATCH] Add attribute hot judgement for INLINE_HINT_known_hot hint. Thread-Topic: Ping^2 [PATCH] Add attribute hot judgement for INLINE_HINT_known_hot hint. Thread-Index: AQHY35YpBbygGLlZEU+kajL8kjjAiQ== Date: Fri, 14 Oct 2022 06:28:23 +0000 Message-ID: References: <20220920084810.25157-1-lili.cui@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.6.500.17 dlp-product: dlpe-windows dlp-reaction: no-action 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: SJ0PR11MB5600:EE_|PH7PR11MB6403:EE_ x-ms-office365-filtering-correlation-id: dbdf0b0f-6934-46ac-113a-08daadad4bb9 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 3sNkJrBy3TSoJFeXZq28ChCN2+MN/6VttN6pKjwaxDdWN4UdU6cLgU9IHmYZFALBQXXJY4T03GJmgFq21rPNGCY0FFHtzVt7N+VsIfDtKuPB2oPGXbd3nDX1gdTDWkrxUYUgRbzH6JVfMVyAg/6TfJtCtJCcdeJ+L9VfKRU9V7P6wKCZn4DzIg5Kn7/zXBM/XNWd9yIpPdxp/lOsnRHKtxnEhRD03HtvqkWnF+SR+8eOpbaQ68RFqbR8Ii8V2B1P/YaK61K/8LwSJhaICHfv4ZLdL/7/DUpeJKwI51Fy3Km/qmdX5AFOcs6Jtw6epDQPtAMDkITqr3rAfWsZ8ti2SwSpg7omsefpLfZWEhcqJbvBg3oGS6w8XHJDxh6fKjF5bF5hsiwilzg24bocWNPbXCRGTcHaOESgCokvL8qrjSGxcGcOq9Jn6v75x0578R1eBrQyFzHO5WpmzR6fIeuhkdE1UpFRcwHQMuPwQJZTI90F8KIEy7UBt80AYQkh634TwBhVT3w2hbhCbNbSybXnLj8NxUkmo42XTFOUw70zc8YxbNKUyoa63RXVJez6877TLWWfhbbCVJYBqfpkGuAsRmDenytpuTwjzJEifvMMr/VRJuJEeqJ+xFO+2vUxsHdyvEtnZGjv3cxMDpi7J1PXHOPSKdKhqrdGV+ZNcirBQNwapdO2MwFwFPPM7BcfXWo88z/moLOcg+g2rP/0qcZO0FiLsBtic4Xd2rV7zMNYClvqXqzalj5KigAferrJ/Oup2//qbbK9KiNTV0zmex1FT+wvx0tV4E41p/+CXT6UGwEJgao2WqpYw/6X9213JvZ5M8vK8TJsJCewCh/5+g70OoY1+8E7SyYRfztopRNpbPs= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ0PR11MB5600.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(396003)(39860400002)(366004)(346002)(376002)(136003)(451199015)(66476007)(26005)(52536014)(66446008)(84970400001)(33656002)(38100700002)(966005)(41300700001)(316002)(86362001)(478600001)(2906002)(8676002)(8936002)(122000001)(38070700005)(66946007)(66556008)(76116006)(53546011)(7696005)(82960400001)(6916009)(54906003)(64756008)(4326008)(9686003)(6506007)(83380400001)(186003)(71200400001)(55016003)(5660300002)(81973001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?BOGA1zZ+Ow58gY+kT/0HEYKrgprDmLVhzANSarySbAV/lBCULSr3MF6nsO8T?= =?us-ascii?Q?tOGerf3trvcMN9QkCXjYYTDBsuM2lEwERYBskH+qsC1KYQ671C9aZfJIx1B+?= =?us-ascii?Q?szYeeWDAMtjSHC2UgDUNiv9sAK/hhSK6n83ML1+LRVuocR5IM7wR+UeH4TnV?= =?us-ascii?Q?tJR8g/VVqCsAZO8aswG9dTbQsIXOX3wsiH45Gk9J+7JFZ9Q2xrgc59aQnrBr?= =?us-ascii?Q?Y7ctAoIE3RgmvcMEjqmtP9f/JeU9/uMndh8xSxMhfrHidzxLcs/UbTfCqeXD?= =?us-ascii?Q?RaoiCRh6oAHGX8wW2nsj8K8AVgvByupBSGbVsg2TBVPuZXBPp3WxLWfIYmG/?= =?us-ascii?Q?IVpvETcE6g42yJT/lM9WXaJaKURSXgwaF5G4nn2ws9cN9wfbHmjMbKE1h7O8?= =?us-ascii?Q?afn1Ktoi40LPQYEx8c0NUZTWV7SO+HjslyOZARaFYFqKmgPW86UORLtubUU2?= =?us-ascii?Q?D8L2vz5FROdm2IqQ8MOBJ/nRxIIckVMbHVuAFXAVtX9mwpZI+RRb+xpIGvoK?= =?us-ascii?Q?z3AXZh0LXsZ1MJUae25FWHC1Avs/WuY7Wb+eYIetxYDVp2VwkFyAv4jaIAZ+?= =?us-ascii?Q?m8Hm+Eb8/jzopxEtvvUPkuWR05hKJxE0Q6CTOzVHCZuR8w40w2Zm0L/mBe+W?= =?us-ascii?Q?BwIDAWrMS3jn1Wk5CWxcw1YoqTVXYQ0nIJqixREH6unoHH4W38FKUYjxEUCM?= =?us-ascii?Q?8lgPi0kcbviBnsJKnIqcxx4S/LIbvKKLTz3YjAeCp0VHelIoyjD0t8rIeC9N?= =?us-ascii?Q?QjcLxLcxVgSPQw/qSiJ7JdoQi1AU1Tglt0SvHohh7hKNMFiZwDAZRgGB1juK?= =?us-ascii?Q?XSI+kVdmUI+uj/7fqpf/mgxSRwUUmzTQeDkomZblEg0YiSlK8K0B28k+K9JH?= =?us-ascii?Q?/jMev6OSgZdaYVvOxJW4rEjWW4Raq44pphPrdVIIrryp43q/LUOfT8tqU3AW?= =?us-ascii?Q?9N4Yx7P6KysCV4ZSG4fxo5EJK2o6hPeYjy4O0Lj72Qb+smwJwCQPQygGPPwR?= =?us-ascii?Q?W9Jtu+7DVuMJSYcr2JOSDzS/7Jk0BY0qGHvD1gLaKo4wmJehOdsLTBA1cPKq?= =?us-ascii?Q?2VmW2UXhIXY2LoYB8qxn9vTa3zCxHk5QbOW9yUqWWvVbw0SWD3atjfGzHMIj?= =?us-ascii?Q?y7GAh15hVBhkVr7OUO/8DMzgQSpe8QhTFbwd4YIdmvMQtuCduL1x2hAdlykM?= =?us-ascii?Q?xtHy+TfEB3UHolX3bLa6CxlLMnM1JodUI28a3vZbmrL0oBXTEE9js9aALcZv?= =?us-ascii?Q?GREtfOkWBF0XJ5easmJpjccAKYtC+rjM7dVV4y6UyFcdrt5Fmf65dY7fHU6J?= =?us-ascii?Q?8DobmXIVpgtE6ZEQl1NcdK3X5kEJ8PBQs8Gxmhvcv5gS9G/2brFflSWj+xyD?= =?us-ascii?Q?4D+VticTHU84/P0+ijV4IsownmnXeSzGcLm9ekuWNNqlu7JjuqcfzkijcgP8?= =?us-ascii?Q?79F7uW3Vn4ThRk3BmFxOAZHAZ2XLOKWxkXFWMui3eLwh4uUi7p4uAoG95Thl?= =?us-ascii?Q?S73+Pawpz7NK0ZGK++HICWSor3gllWi2qse8muZNCVWfAJsGVwq9v6xebaUH?= =?us-ascii?Q?OE8wZgb5bJHaHm1daVjBrSxCnSn/ge7vuwTUXZZu?= 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: SJ0PR11MB5600.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: dbdf0b0f-6934-46ac-113a-08daadad4bb9 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Oct 2022 06:28:23.7245 (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: Mj61GmUqX7ZV353Q0YIEU7259arOyWK9PnaGKnP53QVm8kAdlFW7zfkfVVELzC4lgnhy7um1LwPXutoM1ocHBw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR11MB6403 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-11.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_SHORT,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,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: Hi Honza, Gentle ping https://gcc.gnu.org/pipermail/gcc-patches/2022-September/6019= 34.html =20 Thanks, Lili. > -----Original Message----- > From: Cui, Lili > Sent: Saturday, October 8, 2022 8:33 AM > To: Cui, Lili ; Jan Hubicka > Cc: Lu, Hongjiu ; Liu, Hongtao > ; gcc-patches@gcc.gnu.org > Subject: Ping^1 [PATCH] Add attribute hot judgement for > INLINE_HINT_known_hot hint. >=20 > Hi Honza, >=20 > Gentle ping https://gcc.gnu.org/pipermail/gcc-patches/2022- > September/601934.html >=20 > Thanks, > Lili. >=20 > > -----Original Message----- > > From: Gcc-patches > > On Behalf Of Cui, Lili via Gcc-patches > > Sent: Wednesday, September 21, 2022 5:22 PM > > To: Jan Hubicka > > Cc: Lu, Hongjiu ; Liu, Hongtao > > ; gcc-patches@gcc.gnu.org > > Subject: RE: [PATCH] Add attribute hot judgement for > > INLINE_HINT_known_hot hint. > > > > > Thank you. Can you please also add a testcase that tests for this. > > > So you modify imagemagick marking attribute hot on the specific inlin= e? > > > > Thanks Honza. Added the testcase. I didn't modify source code of > > 538.imagic_r, the original source code has attribute like: > > > > #define magick_hot_spot __attribute__((__hot__)) static Cache > > *SetPixelCacheNexusPixels( ... ) magick_hot_spot; > > > > > I will try to also look again at your earlier patch - I had very > > > busy summer and unfortunately lost track on this one. > > > > > NP, I guessed you were busy during that time, my earlier patch was > > partially duplicated with function "Elimination_by_inlining_prob", > > except "parameter points to caller local memory" part, maybe we can > > find a suitable place to add local memory part to the IPA. > > > > > Honza > > > > gcc/ChangeLog > > > > * ipa-inline-analysis.cc (do_estimate_edge_time): Add function attrib= ute > > judgement for INLINE_HINT_known_hot hint. > > > > gcc/testsuite/ChangeLog: > > > > * gcc.dg/ipa/inlinehint-6.c: New test. > > --- > > gcc/ipa-inline-analysis.cc | 13 ++++--- > > gcc/testsuite/gcc.dg/ipa/inlinehint-6.c | 47 > > +++++++++++++++++++++++++ > > 2 files changed, 56 insertions(+), 4 deletions(-) create mode 100644 > > gcc/testsuite/gcc.dg/ipa/inlinehint-6.c > > > > diff --git a/gcc/ipa-inline-analysis.cc b/gcc/ipa-inline-analysis.cc > > index > > 1ca685d1b0e..7bd29c36590 100644 > > --- a/gcc/ipa-inline-analysis.cc > > +++ b/gcc/ipa-inline-analysis.cc > > @@ -48,6 +48,7 @@ along with GCC; see the file COPYING3. If not see > > #include "ipa-utils.h" > > #include "cfgexpand.h" > > #include "gimplify.h" > > +#include "attribs.h" > > > > /* Cached node/edge growths. */ > > fast_call_summary > > *edge_growth_cache =3D NULL; @@ -249,15 +250,19 @@ > do_estimate_edge_time > > (struct cgraph_edge *edge, sreal *ret_nonspec_time) > > hints =3D estimates.hints; > > } > > > > - /* When we have profile feedback, we can quite safely identify hot > > - edges and for those we disable size limits. Don't do that when > > - probability that caller will call the callee is low however, sinc= e it > > + /* When we have profile feedback or function attribute, we can > > + quite > > safely > > + identify hot edges and for those we disable size limits. Don't d= o that > > + when probability that caller will call the callee is low > > + however, since it > > may hurt optimization of the caller's hot path. */ > > - if (edge->count.ipa ().initialized_p () && edge->maybe_hot_p () > > + if ((edge->count.ipa ().initialized_p () && edge->maybe_hot_p () > > && (edge->count.ipa () * 2 > > > (edge->caller->inlined_to > > ? edge->caller->inlined_to->count.ipa () > > : edge->caller->count.ipa ()))) > > + || (lookup_attribute ("hot", DECL_ATTRIBUTES (edge->caller->decl= )) > > + !=3D NULL > > + && lookup_attribute ("hot", DECL_ATTRIBUTES (edge->callee->decl)) > > + !=3D NULL)) > > hints |=3D INLINE_HINT_known_hot; > > > > gcc_checking_assert (size >=3D 0); > > diff --git a/gcc/testsuite/gcc.dg/ipa/inlinehint-6.c > > b/gcc/testsuite/gcc.dg/ipa/inlinehint-6.c > > new file mode 100644 > > index 00000000000..1f3be641c6d > > --- /dev/null > > +++ b/gcc/testsuite/gcc.dg/ipa/inlinehint-6.c > > @@ -0,0 +1,47 @@ > > +/* { dg-options "-O3 -c -fdump-ipa-inline-details -fno-early-inlining > > +-fno-ipa-cp" } */ > > +/* { dg-add-options bind_pic_locally } */ > > + > > +#define size_t long long int > > + > > +struct A > > +{ > > + size_t f1, f2, f3, f4; > > +}; > > +struct C > > +{ > > + struct A a; > > + size_t b; > > +}; > > +struct C x; > > + > > +__attribute__((hot)) struct C callee (struct A *a, struct C *c) { > > + c->a=3D(*a); > > + > > + if((c->b + 7) & 17) > > + { > > + c->a.f1 =3D c->a.f2 + c->a.f1; > > + c->a.f2 =3D c->a.f3 - c->a.f2; > > + c->a.f3 =3D c->a.f2 + c->a.f3; > > + c->a.f4 =3D c->a.f2 - c->a.f4; > > + c->b =3D c->a.f2; > > + > > + } > > + return *c; > > +} > > + > > +__attribute__((hot)) struct C caller (size_t d, size_t e, size_t f, > > +size_t g, struct C *c) { > > + struct A a; > > + a.f1 =3D 1 + d; > > + a.f2 =3D e; > > + a.f3 =3D 12 + f; > > + a.f4 =3D 68 + g; > > + if (c->b > 0) > > + return callee (&a, c); > > + else > > + return *c; > > +} > > + > > +/* { dg-final { scan-ipa-dump "known_hot" "inline" } } */ > > + > > -- > > 2.17.1 > > > > Thanks, > > Lili.