From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 634 invoked by alias); 4 Jan 2013 01:41:41 -0000 Received: (qmail 552 invoked by uid 22791); 4 Jan 2013 01:41:40 -0000 X-SWARE-Spam-Status: No, hits=-5.6 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,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mail-oa0-f45.google.com (HELO mail-oa0-f45.google.com) (209.85.219.45) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 04 Jan 2013 01:41:32 +0000 Received: by mail-oa0-f45.google.com with SMTP id i18so14738732oag.18 for ; Thu, 03 Jan 2013 17:41:30 -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=Co60uBJTPe+6Q56q25iL+EWAM8A+fsAG2RIYAgbEVQw=; b=XNZwGDtYjDAnKHHF0wh1vjp9KeL9wpdP91jisEYMSy5EzySvihupunea1hEacE+NSb dFaYTirWFyc9ODG9CsOuT4YqJFiYZPe0njRJsqtGUklsWnOyyP8KOAwltEuwu39ONlkH gHlEWL8KgwjS+huNnyiN+c0bSYxrot44+sva02IyCoyjiOea5IK7cmBNpYNp6xNwTInp kW6yY0nIxnNMPaSgZMiu/m24nxEo7JXwvy8u9UOSXRCKF+zPu9fCs+2q6nOQH9+HgHNS UZ4UfAJnuo8aJvGYtFEf0tb8tMN20owNruwfpMly1eV18r9KbSwHBh2SOo/kgHLgecnM mxSA== MIME-Version: 1.0 Received: by 10.60.10.230 with SMTP id l6mr29478252oeb.94.1357263690356; Thu, 03 Jan 2013 17:41:30 -0800 (PST) Received: by 10.182.75.97 with HTTP; Thu, 3 Jan 2013 17:41:30 -0800 (PST) In-Reply-To: References: Date: Fri, 04 Jan 2013 01:41:00 -0000 Message-ID: Subject: Re: [google][4.7] Allow function reordering linker plugin to separate hot and cold code into different ELF segments From: Sriraman Tallam To: Rong Xu Cc: GCC Patches , David Li Content-Type: multipart/mixed; boundary=e89a8fb1eeee2157c204d26c94b6 X-Gm-Message-State: ALoCoQkX8Q1dwpmklJxHPULalqcOpRuhjvjOEG4oR4pF2C6Zy+/ztlZjjOVRzGRH+I9H9T/PL2873fOqCqi+ZMemj9Wmr/uRtMusOucucBbXtd2ooNIjrzkcn2sDW+yWvuFyXmNzjWM1SSp3fOxJ5yt5ZUcv5L8m0J0ayhJAR3wBP3lkYMMevJtc1y/N1WkvYK5DhVq/74WB 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: 2013-01/txt/msg00152.txt.bz2 --e89a8fb1eeee2157c204d26c94b6 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 1150 Hi Rong, The following patch modifies the behaviour of the linker plugin to not create a separate segment for cold sections by default. Separate segments can be created with the plugin option "segment=cold". Is this alright to commit? Thanks, -Sri. On Mon, Dec 17, 2012 at 11:14 AM, Sriraman Tallam wrote: > I have committed this patch. > > Thanks, > -Sri. > > On Fri, Dec 14, 2012 at 4:16 PM, Rong Xu wrote: >> Looks good to me for google/gcc-4_7 branch. >> >> Thanks, >> >> -Rong >> >> >> On Fri, Dec 14, 2012 at 3:42 PM, Sriraman Tallam >> wrote: >>> >>> Hi Rong, >>> >>> Please review this code. This code allows the function reordering >>> plugin to separate hot and cold code into different ELF segments. >>> This would allow optimizations like mapping the hot code alone to huge >>> pages. >>> >>> With this patch, by default, the plugin maps .text.unlikely >>> sections into a separate ELF segment. This can be turned off with >>> plugin option "--segment=none". >>> >>> The include/plugin-api.h changes are a backport from trunk. >>> >>> Thanks, >>> -Sri. >> >> --e89a8fb1eeee2157c204d26c94b6 Content-Type: text/plain; charset=US-ASCII; name="reordering_plugin_patch.txt" Content-Disposition: attachment; filename="reordering_plugin_patch.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hbinr1pd0 Content-length: 5259 SW5kZXg6IGZ1bmN0aW9uX3Jlb3JkZXJpbmdfcGx1Z2luL2Z1bmN0aW9uX3Jl b3JkZXJpbmdfcGx1Z2luLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g ZnVuY3Rpb25fcmVvcmRlcmluZ19wbHVnaW4vZnVuY3Rpb25fcmVvcmRlcmlu Z19wbHVnaW4uYwkocmV2aXNpb24gMTk0ODc4KQorKysgZnVuY3Rpb25fcmVv cmRlcmluZ19wbHVnaW4vZnVuY3Rpb25fcmVvcmRlcmluZ19wbHVnaW4uYwko d29ya2luZyBjb3B5KQpAQCAtMzQsOCArMzQsMTIgQEAgYWxvbmcgd2l0aCB0 aGlzIHByb2dyYW07IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIEkKICAgIFRo aXMgcGx1Z2luIGR1bXBzIHRoZSBmaW5hbCBsYXlvdXQgb3JkZXIgb2YgdGhl IGZ1bmN0aW9ucyBpbiBhIGZpbGUKICAgIGNhbGxlZCAiZmluYWxfbGF5b3V0 LnR4dCIuICBUbyBjaGFuZ2UgdGhlIG91dHB1dCBmaWxlLCBwYXNzIHRoZSBu ZXcKICAgIGZpbGUgbmFtZSB3aXRoIC0tcGx1Z2luLW9wdC4gIFRvIGR1bXAg dG8gc3RkZXJyIGluc3RlYWQsIGp1c3QgcGFzcwotICAgc3RkZXJyIHRvIC0t cGx1Z2luLW9wdC4gICovCisgICBzdGRlcnIgdG8gLS1wbHVnaW4tb3B0LiAg CiAKKyAgIFRoaXMgcGx1Z2luIGFsc28gYWxsb3dzIHBsYWNpbmcgYWxsIGZ1 bmN0aW9ucyBmb3VuZCBjb2xkIGluIGEgc2VwYXJhdGUKKyAgIHNlZ21lbnQu ICBUaGlzIGNhbiBiZSBlbmFibGVkIHdpdGggdGhlIGxpbmtlciBvcHRpb246 CisgICAtLXBsdWdpbi1vcHQsc2VnbWVudD1jb2xkLiAgKi8KKwogI2lmIEhB VkVfU1RESU5UX0gKICNpbmNsdWRlIDxzdGRpbnQuaD4KICNlbmRpZgpAQCAt ODksOSArOTMsMTAgQEAgc3RhdGljIGludCBpc19hcGlfZXhpc3QgPSAwOwog LyogVGhlIHBsdWdpbiBkb2VzIG5vdGhpbmcgd2hlbiBuby1vcCBpcyAxLiAg Ki8KIHN0YXRpYyBpbnQgbm9fb3AgPSAwOwogCi0vKiBUaGUgcGx1Z2luIGRv ZXMgbm90IGNyZWF0ZSBhIG5ldyBzZWdtZW50IGZvciB1bmxpa2VseSBjb2Rl IGlmCi0gICBub19zZWdtZW50IGlzIHNldC4gICovCi1zdGF0aWMgaW50IG5v X3NlZ21lbnQgPSAwOworLyogVGhlIHBsdWdpbiBjcmVhdGVzIGEgbmV3IHNl Z21lbnQgZm9yIHVubGlrZWx5IGNvZGUgaWYgdW5saWtlbHlfc2VnbWVudAor ICAgaXMgc2V0LiAgVGhpcyBjYW4gYmUgc2V0IHdpdGggdGhlIGxpbmtlciBv cHRpb246CisgICAiLS1wbHVnaW4tb3B0LHNlZ21lbnQ9Y29sZCIuICAqLwor c3RhdGljIGludCB1bmxpa2VseV9zZWdtZW50ID0gMDsKIAogLyogQ29waWVz IG5ldyBvdXRwdXQgZmlsZSBuYW1lIG91dF9maWxlICAqLwogdm9pZCBnZXRf ZmlsZW5hbWUgKGNvbnN0IGNoYXIgKm5hbWUpCkBAIC0xMzIsMTAgKzEzNywx MSBAQCBwcm9jZXNzX29wdGlvbiAoY29uc3QgY2hhciAqbmFtZSkKICAgLyog Q2hlY2sgaWYgb3B0aW9ucyBpcyAic2VnbWVudD1ub25lIiAgKi8KICAgaWYg KHN0cm5jbXAgKG5hbWUsIG9wdGlvbl9zZWdtZW50LCBzdHJsZW4gKG9wdGlv bl9zZWdtZW50KSkgPT0gMCkKICAgICB7Ci0gICAgICBpZiAoc3RyY21wIChu YW1lICsgc3RybGVuIChvcHRpb25fc2VnbWVudCksICJub25lIikgPT0gMCkK LQlub19zZWdtZW50ID0gMTsKLSAgICAgIGVsc2UKLQlub19zZWdtZW50ID0g MDsKKyAgICAgIGNvbnN0IGNoYXIgKm9wdGlvbl92YWwgPSBuYW1lICsgc3Ry bGVuIChvcHRpb25fc2VnbWVudCk7CisgICAgICBpZiAoc3RyY21wIChvcHRp b25fdmFsLCAibm9uZSIpID09IDApCisJdW5saWtlbHlfc2VnbWVudCA9IDA7 CisgICAgICBlbHNlIGlmIChzdHJjbXAgKG9wdGlvbl92YWwsICJjb2xkIikg PT0gMCkKKwl1bmxpa2VseV9zZWdtZW50ID0gMTsKICAgICAgIHJldHVybjsK ICAgICB9CiAKQEAgLTI0NCw3ICsyNTAsMTAgQEAgY2xhaW1fZmlsZV9ob29r IChjb25zdCBzdHJ1Y3QgbGRfcGx1Z2luX2lucHV0X2ZpbGUKICAgICB7CiAg ICAgICAvKiBJbmZvcm0gdGhlIGxpbmtlciB0byBwcmVwYXJlIGZvciBzZWN0 aW9uIHJlb3JkZXJpbmcuICAqLwogICAgICAgKCphbGxvd19zZWN0aW9uX29y ZGVyaW5nKSAoKTsKLSAgICAgICgqYWxsb3dfdW5pcXVlX3NlZ21lbnRfZm9y X3NlY3Rpb25zKSAoKTsKKyAgICAgIC8qIEluZm9ybSB0aGUgbGlua2VyIHRv IGFsbG93IGNlcnRhaW4gc2VjdGlvbnMgdG8gYmUgcGxhY2VkIGluCisJIGEg c2VwYXJhdGUgc2VnbWVudC4gICovCisgICAgICBpZiAodW5saWtlbHlfc2Vn bWVudCA9PSAxKQorICAgICAgICAoKmFsbG93X3VuaXF1ZV9zZWdtZW50X2Zv cl9zZWN0aW9ucykgKCk7CiAgICAgICBpc19vcmRlcmluZ19zcGVjaWZpZWQg PSAxOwogICAgIH0KIApAQCAtMzM1LDE1ICszNDQsMjkgQEAgYWxsX3N5bWJv bHNfcmVhZF9ob29rICh2b2lkKQogICBpZiAob3V0X2ZpbGUgIT0gTlVMTAog ICAgICAgJiYgc3RyY21wIChvdXRfZmlsZSwgInN0ZGVyciIpICE9IDApCiAg ICAgZmNsb3NlIChmcCk7Ci0gIC8qIFBhc3MgdGhlIG5ldyBvcmRlciBvZiBm dW5jdGlvbnMgdG8gdGhlIGxpbmtlci4gICovCi0gIHVwZGF0ZV9zZWN0aW9u X29yZGVyIChzZWN0aW9uX2xpc3QsIHVubGlrZWx5X3NlZ21lbnRfc3RhcnQp OwotICBhc3NlcnQgKG51bV9lbnRyaWVzID49IHVubGlrZWx5X3NlZ21lbnRf ZW5kKTsKLSAgdXBkYXRlX3NlY3Rpb25fb3JkZXIgKHNlY3Rpb25fbGlzdCwg bnVtX2VudHJpZXMgLSB1bmxpa2VseV9zZWdtZW50X2VuZCk7Ci0gIC8qIE1h cCBhbGwgdW5saWtlbHkgY29kZSBpbnRvIGEgbmV3IHNlZ21lbnQuICAqLwot ICBpZiAobm9fc2VnbWVudCA9PSAwKQotICAgIHVuaXF1ZV9zZWdtZW50X2Zv cl9zZWN0aW9ucyAoIi50ZXh0LnVubGlrZWx5X2V4ZWN1dGVkIiwgMCwgMHgx MDAwLAotCQkJCSBzZWN0aW9uX2xpc3QgKyB1bmxpa2VseV9zZWdtZW50X3N0 YXJ0LAotCQkJCSB1bmxpa2VseV9zZWdtZW50X2VuZCAtIHVubGlrZWx5X3Nl Z21lbnRfc3RhcnQpOworCisgIGlmICh1bmxpa2VseV9zZWdtZW50ID09IDEp CisgICAgeworICAgICAgLyogUGFzcyB0aGUgbmV3IG9yZGVyIG9mIGZ1bmN0 aW9ucyB0byB0aGUgbGlua2VyLiAgKi8KKyAgICAgIC8qIEZpeCB0aGUgb3Jk ZXIgb2YgYWxsIHNlY3Rpb25zIHVwdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUK KwkgdW5saWtlbHkgc2VjdGlvbi4gICovCisgICAgICB1cGRhdGVfc2VjdGlv bl9vcmRlciAoc2VjdGlvbl9saXN0LCB1bmxpa2VseV9zZWdtZW50X3N0YXJ0 KTsKKyAgICAgIGFzc2VydCAobnVtX2VudHJpZXMgPj0gdW5saWtlbHlfc2Vn bWVudF9lbmQpOworICAgICAgLyogRml4IHRoZSBvcmRlciBvZiBhbGwgc2Vj dGlvbnMgYWZ0ZXIgdGhlIGVuZCBvZiB0aGUgdW5saWtlbHkKKwkgc2VjdGlv bi4gICovCisgICAgICB1cGRhdGVfc2VjdGlvbl9vcmRlciAoc2VjdGlvbl9s aXN0LCBudW1fZW50cmllcyAtIHVubGlrZWx5X3NlZ21lbnRfZW5kKTsKKyAg ICAgIC8qIE1hcCBhbGwgdW5saWtlbHkgY29kZSBpbnRvIGEgbmV3IHNlZ21l bnQuICAqLworICAgICAgdW5pcXVlX3NlZ21lbnRfZm9yX3NlY3Rpb25zICgK KwkgICIudGV4dC51bmxpa2VseV9leGVjdXRlZCIsIDAsIDB4MTAwMCwKKwkg IHNlY3Rpb25fbGlzdCArIHVubGlrZWx5X3NlZ21lbnRfc3RhcnQsCisJICB1 bmxpa2VseV9zZWdtZW50X2VuZCAtIHVubGlrZWx5X3NlZ21lbnRfc3RhcnQp OworICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAgIC8qIFBhc3MgdGhlIG5l dyBvcmRlciBvZiBmdW5jdGlvbnMgdG8gdGhlIGxpbmtlci4gICovCisgICAg ICB1cGRhdGVfc2VjdGlvbl9vcmRlciAoc2VjdGlvbl9saXN0LCBudW1fZW50 cmllcyk7CisgICAgfQorCiAgIGNsZWFudXAgKCk7CiAgIHJldHVybiBMRFBT X09LOwogfQo= --e89a8fb1eeee2157c204d26c94b6--