From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qt1-x82b.google.com (mail-qt1-x82b.google.com [IPv6:2607:f8b0:4864:20::82b]) by sourceware.org (Postfix) with ESMTPS id 6F5853826FED for ; Mon, 13 Jun 2022 11:22:28 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 6F5853826FED Received: by mail-qt1-x82b.google.com with SMTP id j8so3593378qtn.13 for ; Mon, 13 Jun 2022 04:22:28 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:message-id:date:mime-version:user-agent :content-language:to:from:subject; bh=59ZHI7zHJMtJszAf1CVwlyCmt4201XsKKiis27hsMKo=; b=xg4QZl/Rd/bBhW5Ab39CSDwgDb/8tuxGGD7Gzt3ndmg6gDn6nlMo5WNk8O30WmD9oA k7E01u1ZVCnhgz6rLFTLubS0ssDlkGYQsIkldiNfCQHRVteMbIx2Wh1umPBCiRCpYLog a9T7F0G46Fs/al9SxBZT6dN+iAyTNcvZ+ZO4YDfxJ/+gGN0h34L3cSVlhSwWRN1n5qR+ dvma0dgbZbIyzdLsRIZeX4HKCU6cZiUALaEdErOOwWD/mwvwfwB8KKOvxCXMPpq2hs7G vi+cBwHrvucnJ+rjXxWNiSwmbd0JDg7dvt9yB5nq+wPKW53jIsADKsNwnFLgjFqW7326 cZaQ== X-Gm-Message-State: AOAM531k8SyYoNE4OrjWDkjC+pURCqt1S423jJdsTtePjx247H7x5cyR Ty/F75xHxiMVrLsZcPwLEwJ5K/i2zFk= X-Google-Smtp-Source: ABdhPJwMxld8FRwnUnvnBQhR3hPEBPHyExn5dCg5eGPlM/BlKya2V2YrEr7KtwnINeh0gJSazjmNPA== X-Received: by 2002:a05:622a:5d4:b0:305:8ff:b558 with SMTP id d20-20020a05622a05d400b0030508ffb558mr19728740qtb.569.1655119347444; Mon, 13 Jun 2022 04:22:27 -0700 (PDT) Received: from ?IPV6:2620:10d:c0a3:1407:a81b:96e6:9ea2:b98? ([2620:10d:c091:500::3:5881]) by smtp.googlemail.com with ESMTPSA id n13-20020a05622a11cd00b00304ee15be24sm4771383qtk.11.2022.06.13.04.22.26 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 13 Jun 2022 04:22:26 -0700 (PDT) Sender: Nathan Sidwell Content-Type: multipart/mixed; boundary="------------E8Yr3BeNYXFR0AsxPKGgfS0z" Message-ID: <78aee4e9-7e1b-bf63-2148-f588388d0a4b@acm.org> Date: Mon, 13 Jun 2022 07:22:25 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.10.0 Content-Language: en-US To: GCC Patches From: Nathan Sidwell Subject: c++: Separate late stage module writing X-Spam-Status: No, score=-3038.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jun 2022 11:22:30 -0000 This is a multi-part message in MIME format. --------------E8Yr3BeNYXFR0AsxPKGgfS0z Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit This moves some module writing into a newly added write_end function, which is called after writing initializers. Thus paving the way to eliminate calls to NOP initializer fns. nathan -- Nathan Sidwell --------------E8Yr3BeNYXFR0AsxPKGgfS0z Content-Type: text/x-patch; charset=UTF-8; name="0001-c-Separate-late-stage-module-writing.patch" Content-Disposition: attachment; filename="0001-c-Separate-late-stage-module-writing.patch" Content-Transfer-Encoding: base64 RnJvbSA2MzAzZWVlNGI5MmU4NTA5NDA5NTAzYTNhYmViZGU4YmQ1MGYwZjA1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOYXRoYW4gU2lkd2VsbCA8bmF0aGFuQGFjbS5vcmc+ CkRhdGU6IFRodSwgOSBKdW4gMjAyMiAwODo0ODoyNSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hd IGMrKzogU2VwYXJhdGUgbGF0ZSBzdGFnZSBtb2R1bGUgd3JpdGluZwoKVGhpcyBtb3ZlcyBz b21lIG1vZHVsZSB3cml0aW5nIGludG8gYSBuZXdseSBhZGRlZCB3cml0ZV9lbmQgZnVuY3Rp b24sCndoaWNoIGlzIGNhbGxlZCBhZnRlciB3cml0aW5nIGluaXRpYWxpemVycy4KCglnY2Mv Y3AvCgkqIG1vZHVsZS5jYyAobW9kdWxlX3N0YXRlOjp3cml0ZSk6IFNlcGFyYXRlIHRvIC4u LgoJKG1vZHVsZV9zdGF0ZTo6d3JpdGVfYmVnaW4sIG1vZHVsZV9zdGF0ZTo6d3JpdGVfZW5k KTogLi4uCgl0aGVzZS4KCShtb2R1bGVfc3RhdGU6OndyaXRlX3JlYWRtZSk6IERyb3AgZXh0 ZW5zaW9ucyBwYXJhbWV0ZXIuCgkoc3RydWN0IG1vZHVsZV9wcm9jZXNzaW5nX2Nvb2tpZSk6 IEFkZCBtb3JlIGZpZWxkcy4KCShmaW5pc2hfbW9kdWxlX3Byb2Nlc3NpbmcpOiBBZGp1c3Qg c3RhdGUgd3JpdGluZyBjYWxsLgoJKGxhdGVfZmluaXNoX21vZHVsZSk6IENhbGwgd3JpdGVf ZW5kLgotLS0KIGdjYy9jcC9tb2R1bGUuY2MgfCA0NyArKysrKysrKysrKysrKysrKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDMwIGluc2VydGlv bnMoKyksIDE3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2djYy9jcC9tb2R1bGUuY2Mg Yi9nY2MvY3AvbW9kdWxlLmNjCmluZGV4IDUxZDc3NGFlNjA4Li5lN2NlNDBlZjQ2NCAxMDA2 NDQKLS0tIGEvZ2NjL2NwL21vZHVsZS5jYworKysgYi9nY2MvY3AvbW9kdWxlLmNjCkBAIC0z NTIzLDcgKzM1MjMsMTAgQEAgY2xhc3MgR1RZKChjaGFpbl9uZXh0ICgiJWgucGFyZW50Iiks IGZvcl91c2VyKSkgbW9kdWxlX3N0YXRlIHsKIAogIHB1YmxpYzoKICAgLyogUmVhZCBhbmQg d3JpdGUgbW9kdWxlLiAgKi8KLSAgdm9pZCB3cml0ZSAoZWxmX291dCAqdG8sIGNwcF9yZWFk ZXIgKik7CisgIHZvaWQgd3JpdGVfYmVnaW4gKGVsZl9vdXQgKnRvLCBjcHBfcmVhZGVyICos CisJCSAgICBtb2R1bGVfc3RhdGVfY29uZmlnICYsIHVuc2lnbmVkICZjcmMpOworICB2b2lk IHdyaXRlX2VuZCAoZWxmX291dCAqdG8sIGNwcF9yZWFkZXIgKiwKKwkJICBtb2R1bGVfc3Rh dGVfY29uZmlnICYsIHVuc2lnbmVkICZjcmMpOwogICBib29sIHJlYWRfaW5pdGlhbCAoY3Bw X3JlYWRlciAqKTsKICAgYm9vbCByZWFkX3ByZXByb2Nlc3NvciAoYm9vbCk7CiAgIGJvb2wg cmVhZF9sYW5ndWFnZSAoYm9vbCk7CkBAIC0zNTQ1LDggKzM1NDgsNyBAQCBjbGFzcyBHVFko KGNoYWluX25leHQgKCIlaC5wYXJlbnQiKSwgZm9yX3VzZXIpKSBtb2R1bGVfc3RhdGUgewog CiAgcHJpdmF0ZToKICAgLyogVGhlIFJFQURNRSwgZm9yIGh1bWFuIGNvbnN1bXB0aW9uLiAg Ki8KLSAgdm9pZCB3cml0ZV9yZWFkbWUgKGVsZl9vdXQgKnRvLCBjcHBfcmVhZGVyICosCi0J CSAgICAgY29uc3QgY2hhciAqZGlhbGVjdCwgdW5zaWduZWQgZXh0ZW5zaW9ucyk7CisgIHZv aWQgd3JpdGVfcmVhZG1lIChlbGZfb3V0ICp0bywgY3BwX3JlYWRlciAqLCBjb25zdCBjaGFy ICpkaWFsZWN0KTsKICAgdm9pZCB3cml0ZV9lbnYgKGVsZl9vdXQgKnRvKTsKIAogIHByaXZh dGU6CkBAIC0xMzk1NCw4ICsxMzk1Niw3IEBAIG1vZHVsZV9zdGF0ZTo6YW5ub3VuY2UgKGNv bnN0IGNoYXIgKndoYXQpIGNvbnN0CiAgICAgIHJlYWRlbGYgLXBnbnUuYysrLlJFQURNRSAk KG1vZHVsZSkuZ2NtICovCiAKIHZvaWQKLW1vZHVsZV9zdGF0ZTo6d3JpdGVfcmVhZG1lIChl bGZfb3V0ICp0bywgY3BwX3JlYWRlciAqcmVhZGVyLAotCQkJICAgIGNvbnN0IGNoYXIgKmRp YWxlY3QsIHVuc2lnbmVkIGV4dGVuc2lvbnMpCittb2R1bGVfc3RhdGU6OndyaXRlX3JlYWRt ZSAoZWxmX291dCAqdG8sIGNwcF9yZWFkZXIgKnJlYWRlciwgY29uc3QgY2hhciAqZGlhbGVj dCkKIHsKICAgYnl0ZXNfb3V0IHJlYWRtZSAodG8pOwogCkBAIC0xNzU2MCw3ICsxNzU2MSw4 IEBAIG9vbF9jbXAgKGNvbnN0IHZvaWQgKmFfLCBjb25zdCB2b2lkICpiXykKICovCiAKIHZv aWQKLW1vZHVsZV9zdGF0ZTo6d3JpdGUgKGVsZl9vdXQgKnRvLCBjcHBfcmVhZGVyICpyZWFk ZXIpCittb2R1bGVfc3RhdGU6OndyaXRlX2JlZ2luIChlbGZfb3V0ICp0bywgY3BwX3JlYWRl ciAqcmVhZGVyLAorCQkJICAgbW9kdWxlX3N0YXRlX2NvbmZpZyAmY29uZmlnLCB1bnNpZ25l ZCAmY3JjKQogewogICAvKiBGaWd1cmUgb3V0IHJlbWFwcGVkIG1vZHVsZSBudW1iZXJzLCB3 aGljaCBtaWdodCBlbGlkZQogICAgICBwYXJ0aXRpb25zLiAgKi8KQEAgLTE3NjU2LDggKzE3 NjU4LDYgQEAgbW9kdWxlX3N0YXRlOjp3cml0ZSAoZWxmX291dCAqdG8sIGNwcF9yZWFkZXIg KnJlYWRlcikKICAgICB9CiAgIG9vbC0+cXNvcnQgKG9vbF9jbXApOwogCi0gIHVuc2lnbmVk IGNyYyA9IDA7Ci0gIG1vZHVsZV9zdGF0ZV9jb25maWcgY29uZmlnOwogICBsb2NhdGlvbl9t YXBfaW5mbyBtYXBfaW5mbyA9IHdyaXRlX3ByZXBhcmVfbWFwcyAoJmNvbmZpZyk7CiAgIHVu c2lnbmVkIGNvdW50c1tNU0NfSFdNXTsKIApAQCAtMTc4MTEsMjggKzE3ODExLDM1IEBAIG1v ZHVsZV9zdGF0ZTo6d3JpdGUgKGVsZl9vdXQgKnRvLCBjcHBfcmVhZGVyICpyZWFkZXIpCiAg IHVuc2lnbmVkIGNsdXN0ZXJzID0gY291bnRzW01TQ19zZWNfaHdtXSAtIGNvdW50c1tNU0Nf c2VjX2x3bV07CiAgIGR1bXAgKCkgJiYgZHVtcCAoIldyb3RlICV1IGNsdXN0ZXJzLCBhdmVy YWdlICV1IGJ5dGVzL2NsdXN0ZXIiLAogCQkgICBjbHVzdGVycywgKGJ5dGVzICsgY2x1c3Rl cnMgLyAyKSAvIChjbHVzdGVycyArICFjbHVzdGVycykpOworICB0cmVlc19vdXQ6Omluc3Ry dW1lbnQgKCk7CiAKICAgd3JpdGVfY291bnRzICh0bywgY291bnRzLCAmY3JjKTsKIAotICAv KiBBbmQgZmluaXNoIHVwLiAgKi8KLSAgd3JpdGVfY29uZmlnICh0bywgY29uZmlnLCBjcmMp OwotCiAgIHNwYWNlcy5yZWxlYXNlICgpOwogICBzY2NzLnJlbGVhc2UgKCk7CiAKICAgdmVj X2ZyZWUgKG9vbCk7CiAKLSAgLyogSHVtYW4tcmVhZGFibGUgaW5mby4gICovCi0gIHdyaXRl X3JlYWRtZSAodG8sIHJlYWRlciwgY29uZmlnLmRpYWxlY3Rfc3RyLCBleHRlbnNpb25zKTsK LQogICAvLyBGSVhNRTpRT0k6ICBIYXZlIGEgY29tbWFuZCBsaW5lIHN3aXRjaCB0byBjb250 cm9sIG1vcmUgZGV0YWlsZWQKICAgLy8gaW5mb3JtYXRpb24gKHdoaWNoIG1pZ2h0IGxlYWsg ZGF0YSB5b3UgZG8gbm90IHdhbnQgdG8gbGVhaykuCiAgIC8vIFBlcmhhcHMgKHNvbWUgb2Yp IHRoZSB3cml0ZV9yZWFkbWUgY29udGVudHMgc2hvdWxkIGFsc28gYmUKICAgLy8gc28tY29u dHJvbGxlZC4KICAgaWYgKGZhbHNlKQogICAgIHdyaXRlX2VudiAodG8pOworfQorCisvLyBG aW5pc2ggbW9kdWxlIHdyaXRpbmcgYWZ0ZXIgd2UndmUgZW1pdHRlZCBhbGwgZHluYW1pYyBp bml0aWFsaXplcnMuIAorCit2b2lkCittb2R1bGVfc3RhdGU6OndyaXRlX2VuZCAoZWxmX291 dCAqdG8sIGNwcF9yZWFkZXIgKnJlYWRlciwKKwkJCSBtb2R1bGVfc3RhdGVfY29uZmlnICZj b25maWcsIHVuc2lnbmVkICZjcmMpCit7CisgIC8qIEFuZCBmaW5pc2ggdXAuICAqLworICB3 cml0ZV9jb25maWcgKHRvLCBjb25maWcsIGNyYyk7CisKKyAgLyogSHVtYW4tcmVhZGFibGUg aW5mby4gICovCisgIHdyaXRlX3JlYWRtZSAodG8sIHJlYWRlciwgY29uZmlnLmRpYWxlY3Rf c3RyKTsKIAotICB0cmVlc19vdXQ6Omluc3RydW1lbnQgKCk7CiAgIGR1bXAgKCkgJiYgZHVt cCAoIldyb3RlICV1IHNlY3Rpb25zIiwgdG8tPmdldF9zZWN0aW9uX2xpbWl0ICgpKTsKIH0K IApAQCAtMTk4NTUsMTUgKzE5ODYyLDE4IEBAIG1heWJlX2NoZWNrX2FsbF9tYWNyb3MgKGNw cF9yZWFkZXIgKnJlYWRlcikKIH0KIAogLy8gU3RhdGUgcHJvcGFnYXRlZCBmcm9tIGZpbmlz aF9tb2R1bGVfcHJvY2Vzc2luZyB0byBmaW5pX21vZHVsZXMKKwogc3RydWN0IG1vZHVsZV9w cm9jZXNzaW5nX2Nvb2tpZQogewogICBlbGZfb3V0IG91dDsKKyAgbW9kdWxlX3N0YXRlX2Nv bmZpZyBjb25maWc7CiAgIGNoYXIgKmNtaV9uYW1lOwogICBjaGFyICp0bXBfbmFtZTsKKyAg dW5zaWduZWQgY3JjOwogICBib29sIGJlZ2FuOwogCiAgIG1vZHVsZV9wcm9jZXNzaW5nX2Nv b2tpZSAoY2hhciAqY21pLCBjaGFyICp0bXAsIGludCBmZCwgaW50IGUpCi0gICAgOiBvdXQg KGZkLCBlKSwgY21pX25hbWUgKGNtaSksIHRtcF9uYW1lICh0bXApLCBiZWdhbiAoZmFsc2Up CisgICAgOiBvdXQgKGZkLCBlKSwgY21pX25hbWUgKGNtaSksIHRtcF9uYW1lICh0bXApLCBj cmMgKDApLCBiZWdhbiAoZmFsc2UpCiAgIHsKICAgfQogICB+bW9kdWxlX3Byb2Nlc3Npbmdf Y29va2llICgpCkBAIC0xOTk0MSw3ICsxOTk1MSw3IEBAIGZpbmlzaF9tb2R1bGVfcHJvY2Vz c2luZyAoY3BwX3JlYWRlciAqcmVhZGVyKQogCSAgYXV0byBsb2MgPSBpbnB1dF9sb2NhdGlv bjsKIAkgIC8qIFNvIGNyYXNoZXMgZmluZ2VyLXBvaW50IHRoZSBtb2R1bGUgZGVjbC4gICov CiAJICBpbnB1dF9sb2NhdGlvbiA9IHN0YXRlLT5sb2M7Ci0JICBzdGF0ZS0+d3JpdGUgKCZj b29raWUtPm91dCwgcmVhZGVyKTsKKwkgIHN0YXRlLT53cml0ZV9iZWdpbiAoJmNvb2tpZS0+ b3V0LCByZWFkZXIsIGNvb2tpZS0+Y29uZmlnLCBjb29raWUtPmNyYyk7CiAJICBpbnB1dF9s b2NhdGlvbiA9IGxvYzsKIAl9CiAKQEAgLTE5OTc3LDYgKzE5OTg3LDkgQEAgbGF0ZV9maW5p c2hfbW9kdWxlIChjcHBfcmVhZGVyICpyZWFkZXIsIG1vZHVsZV9wcm9jZXNzaW5nX2Nvb2tp ZSAqY29va2llKQogICB1bnNpZ25lZCBuID0gZHVtcC5wdXNoIChzdGF0ZSk7CiAgIHN0YXRl LT5hbm5vdW5jZSAoImZpbmlzaGluZyIpOwogCisgIGlmIChjb29raWUtPmJlZ2FuKQorICAg IHN0YXRlLT53cml0ZV9lbmQgKCZjb29raWUtPm91dCwgcmVhZGVyLCBjb29raWUtPmNvbmZp ZywgY29va2llLT5jcmMpOworCiAgIGlmIChjb29raWUtPm91dC5lbmQgKCkgJiYgY29va2ll LT5jbWlfbmFtZSkKICAgICB7CiAgICAgICAvKiBTb21lIE9TJ3MgZG8gbm90IHJlcGxhY2Ug TkVXTkFNRSBpZiBpdCBhbHJlYWR5IGV4aXN0cy4KLS0gCjIuMzAuMgoK --------------E8Yr3BeNYXFR0AsxPKGgfS0z--