From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-vs1-xe2f.google.com (mail-vs1-xe2f.google.com [IPv6:2607:f8b0:4864:20::e2f]) by sourceware.org (Postfix) with ESMTPS id 07B90383F40F for ; Tue, 1 Jun 2021 02:18:49 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 07B90383F40F Received: by mail-vs1-xe2f.google.com with SMTP id l25so1004765vsb.9 for ; Mon, 31 May 2021 19:18:49 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=9Dckar0w5iRfr5y8Zn6/yOjf93Qsx8KJKGnhwgKSki4=; b=dT4R1yxx5n98RgXApsmiuqkzbCa8rhtBjTsK0JSW8OowINVgonUraV8siWtNmTX8pO jrEdvtRlMTSbOzd79v4t73SM7CgQZgALAzmKbxppp2eXhF9vACrYnZ45NU/meT3lJm+D 0qbSWp10OQlGGS79R0HpITMxk9EZIhhu6IdpLvxoK1qECVkMlsTztYRG8+0zXzCNnXZW KtD6EnJiTOvKMmm/pRc0MatD/3brbzsMsu3O5OjrkeT4KhBXc78IX5EPSloK5CGxk92l QZuz+AqreXpmcnI6onhFZpNYGLR6rlw/+4QZFPzIheNIG8ak5+bQMa0b+TFGMr729k5z 57qg== X-Gm-Message-State: AOAM530a/5D3bSs0lJUZXClbSA2suQZxJp9WPcHpYXDBoVfBYbiQd2L1 7ieNmCoFJSv3jR7WJsTwzGYZULwbcfv+9XO2zPI= X-Google-Smtp-Source: ABdhPJyqPMUB1TfRY6yvM6hKwATvyad9gJmuek4dwvcxFOhKSG+c3fm122CxciKrPtYNBV124jtnc7u1ssCAfNC65Qc= X-Received: by 2002:a67:1906:: with SMTP id 6mr15320289vsz.6.1622513928310; Mon, 31 May 2021 19:18:48 -0700 (PDT) MIME-Version: 1.0 References: <20210513113704.GI1179226@tucnak> <20210527072006.GL7746@tucnak> In-Reply-To: From: Hongtao Liu Date: Tue, 1 Jun 2021 10:22:29 +0800 Message-ID: Subject: Re: [PATCH] [i386] Fix _mm256_zeroupper to notify LRA that vzeroupper will kill sse registers. [PR target/82735] To: Jakub Jelinek , Hongtao Liu , Eric Botcazou , GCC Patches , Uros Bizjak , "H. J. Lu" , Richard Sandiford Content-Type: multipart/mixed; boundary="00000000000057426b05c3aaf65d" X-Spam-Status: No, score=-8.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, KAM_MANYTO, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) 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: Tue, 01 Jun 2021 02:18:50 -0000 --00000000000057426b05c3aaf65d Content-Type: text/plain; charset="UTF-8" On Thu, May 27, 2021 at 6:50 PM Richard Sandiford wrote: > > Jakub Jelinek writes: > > On Thu, May 27, 2021 at 01:07:09PM +0800, Hongtao Liu via Gcc-patches wrote: > >> + /* Flag used for call_insn indicates it's a fake call. */ > >> + RTX_FLAG (insn, used) = 1; > > > >> + /* CALL_INSN use "used" flag to indicate it's a fake call. */ > >> + if (i == STACK_POINTER_REGNUM > >> + && !RTX_FLAG (insn_info->insn, used)) > > > >> - && ! SIBLING_CALL_P (insn)) > >> + && ! SIBLING_CALL_P (insn) > >> + && !RTX_FLAG (insn, used)) > > > >> - /* For all other RTXes clear the used flag on the copy. */ > >> - RTX_FLAG (copy, used) = 0; > >> + /* For all other RTXes clear the used flag on the copy. > >> + CALL_INSN use "used" flag to indicate it's a fake call. */ > >> + if (!INSN_P (orig)) > >> + RTX_FLAG (copy, used) = 0; > >> break; > >> } > >> return copy; > >> @@ -57,7 +57,8 @@ requires_stack_frame_p (rtx_insn *insn, HARD_REG_SET prologue_used, > >> HARD_REG_SET hardregs; > >> unsigned regno; > >> > >> - if (CALL_P (insn)) > >> + /* CALL_INSN use "used" flag to indicate it's a fake call. */ > >> + if (CALL_P (insn) && !RTX_FLAG (insn, used)) > >> return !SIBLING_CALL_P (insn); > > > > Please define a macro for this in rtl.h (and mention it above used; > > member too in a comment, see all the other comments in there), like: > > /* 1 if RTX is a call_insn for a fake call. */ > > #define FAKE_CALL_P(RTX) \ > > (RTL_FLAG_CHECK1 ("FAKE_CALL_P", (RTX), CALL_INSN)->used) Changed. > > Though, I'm also not sure if used can be actually used for this, > > because it is used e.g. in emit-rtl.c for verification of RTL sharing. > > I thought it should be OK, since: > > - copy_rtx_if_shared_1 and mark_used_flags do nothing for insns > - verify_rtx_sharing is only called for parts of an insn, rather than > an insn itself > > I guess an alternative would be to add a new rtx_code for fake call > insns and use CALL_P to test for both. However, that would lose the > property that the default behaviour is conservatively correct > (even for direct checks of CALL_INSN), so the flag IMO seems better. > > Thanks, > Richard > > > Though, it seems no other rtl flag is free for CALL_INSN. > > Could this fake call flag sit on the CALL rtx instead? > > > > Jakub Updated separate patch for the middle-end part. -- BR, Hongtao --00000000000057426b05c3aaf65d Content-Type: text/x-patch; charset="US-ASCII"; name="0001-CALL_INSN-may-not-be-a-real-function-call.patch" Content-Disposition: attachment; filename="0001-CALL_INSN-may-not-be-a-real-function-call.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kpdewj5o0 RnJvbSA1Mzc4MjJlMGQ1NGFhMzI0YzUyMGE0YjUwNGRjZmU4ODJiMzYzYzdiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBsaXVob25ndCA8aG9uZ3Rhby5saXVAaW50ZWwuY29tPgpEYXRl OiBUdWUsIDEgSnVuIDIwMjEgMDk6MDA6NTcgKzA4MDAKU3ViamVjdDogW1BBVENIIDEvMl0gQ0FM TF9JTlNOIG1heSBub3QgYmUgYSByZWFsIGZ1bmN0aW9uIGNhbGwuCgpVc2UgInVzZWQiIGZsYWcg Zm9yIENBTExfSU5TTiB0byBpbmRpY2F0ZSBpdCdzIGEgZmFrZSBjYWxsLiBJZiBpdCdzIGEKZmFr ZSBjYWxsLCBpdCB3b24ndCBoYXZlIGl0cyBvd24gZnVuY3Rpb24gc3RhY2suCgpnY2MvQ2hhbmdl TG9nCgoJUFIgdGFyZ2V0LzgyNzM1CgkqIGRmLXNjYW4uYyAoZGZfZ2V0X2NhbGxfcmVmcyk6IFdo ZW4gY2FsbF9pbnNuIGlzIGEgZmFrZSBjYWxsLAoJaXQgd29uJ3QgdXNlIHN0YWNrIHBvaW50ZXIg cmVnLgoJKiBmaW5hbC5jIChsZWFmX2Z1bmN0aW9uX3ApOiBXaGVuIGNhbGxfaW5zbiBpcyBhIGZh a2UgY2FsbCwgaXQKCXdvbid0IGFmZmVjdCBjYWxsZXIgYXMgYSBsZWFmIGZ1bmN0aW9uLgoJKiBy ZWctc3RhY2suYyAoY2FsbGVlX2Nsb2JiZXJzX2FueV9zdGFja19yZWcpOiBOZXcuCgkoc3Vic3Rf c3RhY2tfcmVncyk6IFdoZW4gY2FsbF9pbnNuIGRvZXNuJ3QgY2xvYmJlciBhbnkgc3RhY2sKCXJl ZywgZG9uJ3QgY2xlYXIgdGhlIGFyZ3VtZW50cy4KCSogcnRsLmMgKHNoYWxsb3dfY29weV9ydHgp OiBEb24ndCBjbGVhciBmbGFnIHVzZWQgd2hlbiBvcmlnIGlzCglhIGluc24uCgkqIHNocmluay13 cmFwLmMgKHJlcXVpcmVzX3N0YWNrX2ZyYW1lX3ApOiBObyBuZWVkIGZvciBzdGFjawoJZnJhbWUg Zm9yIGEgZmFrZSBjYWxsLgoJKiBydGwuaCAoRkFLRV9DQUxMX1ApOiBOZXcgbWFjcm8uCi0tLQog Z2NjL2RmLXNjYW4uYyAgICAgfCAgMyArKy0KIGdjYy9maW5hbC5jICAgICAgIHwgIDMgKystCiBn Y2MvcmVnLXN0YWNrLmMgICB8IDE4ICsrKysrKysrKysrKysrKysrLQogZ2NjL3J0bC5jICAgICAg ICAgfCAgNiArKysrLS0KIGdjYy9ydGwuaCAgICAgICAgIHwgIDUgKysrKysKIGdjYy9zaHJpbmst d3JhcC5jIHwgIDIgKy0KIDYgZmlsZXMgY2hhbmdlZCwgMzEgaW5zZXJ0aW9ucygrKSwgNiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9nY2MvZGYtc2Nhbi5jIGIvZ2NjL2RmLXNjYW4uYwppbmRl eCA2NjkxYzNlODM1Ny4uMTI2ODUzNmIzZjAgMTAwNjQ0Ci0tLSBhL2djYy9kZi1zY2FuLmMKKysr IGIvZ2NjL2RmLXNjYW4uYwpAQCAtMzA5MCw3ICszMDkwLDggQEAgZGZfZ2V0X2NhbGxfcmVmcyAo Y2xhc3MgZGZfY29sbGVjdGlvbl9yZWMgKmNvbGxlY3Rpb25fcmVjLAogCiAgIGZvciAoaSA9IDA7 IGkgPCBGSVJTVF9QU0VVRE9fUkVHSVNURVI7IGkrKykKICAgICB7Ci0gICAgICBpZiAoaSA9PSBT VEFDS19QT0lOVEVSX1JFR05VTSkKKyAgICAgIGlmIChpID09IFNUQUNLX1BPSU5URVJfUkVHTlVN CisJICAmJiAhRkFLRV9DQUxMX1AgKGluc25faW5mby0+aW5zbikpCiAJLyogVGhlIHN0YWNrIHB0 ciBpcyB1c2VkIChob25vcmFyaWx5KSBieSBhIENBTEwgaW5zbi4gICovCiAJZGZfcmVmX3JlY29y ZCAoREZfUkVGX0JBU0UsIGNvbGxlY3Rpb25fcmVjLCByZWdub19yZWdfcnR4W2ldLAogCQkgICAg ICAgTlVMTCwgYmIsIGluc25faW5mbywgREZfUkVGX1JFR19VU0UsCmRpZmYgLS1naXQgYS9nY2Mv ZmluYWwuYyBiL2djYy9maW5hbC5jCmluZGV4IGUwYTcwZmNkODMwLi44MTdmNzcyMmNiMiAxMDA2 NDQKLS0tIGEvZ2NjL2ZpbmFsLmMKKysrIGIvZ2NjL2ZpbmFsLmMKQEAgLTQxMDksNyArNDEwOSw4 IEBAIGxlYWZfZnVuY3Rpb25fcCAodm9pZCkKICAgZm9yIChpbnNuID0gZ2V0X2luc25zICgpOyBp bnNuOyBpbnNuID0gTkVYVF9JTlNOIChpbnNuKSkKICAgICB7CiAgICAgICBpZiAoQ0FMTF9QIChp bnNuKQotCSAgJiYgISBTSUJMSU5HX0NBTExfUCAoaW5zbikpCisJICAmJiAhIFNJQkxJTkdfQ0FM TF9QIChpbnNuKQorCSAgJiYgISBGQUtFX0NBTExfUCAoaW5zbikpCiAJcmV0dXJuIDA7CiAgICAg ICBpZiAoTk9OSlVNUF9JTlNOX1AgKGluc24pCiAJICAmJiBHRVRfQ09ERSAoUEFUVEVSTiAoaW5z bikpID09IFNFUVVFTkNFCmRpZmYgLS1naXQgYS9nY2MvcmVnLXN0YWNrLmMgYi9nY2MvcmVnLXN0 YWNrLmMKaW5kZXggMjUyMTBmMGMxN2YuLjFkOWVhMDM1Y2Y0IDEwMDY0NAotLS0gYS9nY2MvcmVn LXN0YWNrLmMKKysrIGIvZ2NjL3JlZy1zdGFjay5jCkBAIC0xNzQsNiArMTc0LDcgQEAKICNpbmNs dWRlICJyZWxvYWQuaCIKICNpbmNsdWRlICJ0cmVlLXBhc3MuaCIKICNpbmNsdWRlICJydGwtaXRl ci5oIgorI2luY2x1ZGUgImZ1bmN0aW9uLWFiaS5oIgogCiAjaWZkZWYgU1RBQ0tfUkVHUwogCkBA IC0yMzY4LDYgKzIzNjksMTggQEAgc3Vic3RfYXNtX3N0YWNrX3JlZ3MgKHJ0eF9pbnNuICppbnNu LCBzdGFja19wdHIgcmVnc3RhY2spCiAJICAgIH0KICAgICAgIH0KIH0KKworLyogUmV0dXJuIHRy dWUgaWYgYSBmdW5jdGlvbiBjYWxsIGlzIGFsbG93ZWQgdG8gYWx0ZXIgc29tZSBvciBhbGwgYml0 cworICAgb2YgYW55IHN0YWNrIHJlZy4gICovCitzdGF0aWMgYm9vbAorY2FsbGVlX2Nsb2JiZXJz X2FueV9zdGFja19yZWcgKGNvbnN0IGZ1bmN0aW9uX2FiaSAmIGNhbGxlZV9hYmkpCit7CisgIGZv ciAodW5zaWduZWQgcmVnbm8gPSBGSVJTVF9TVEFDS19SRUc7IHJlZ25vIDw9IExBU1RfU1RBQ0tf UkVHOyByZWdubysrKQorICAgIGlmIChjYWxsZWVfYWJpLmNsb2JiZXJzX2F0X2xlYXN0X3BhcnRf b2ZfcmVnX3AgKHJlZ25vKSkKKyAgICAgIHJldHVybiB0cnVlOworICByZXR1cm4gZmFsc2U7Cit9 CisKIAwKIC8qIFN1YnN0aXR1dGUgc3RhY2sgaGFyZCByZWcgbnVtYmVycyBmb3Igc3RhY2sgdmly dHVhbCByZWdpc3RlcnMgaW4KICAgIElOU04uICBOb24tc3RhY2sgcmVnaXN0ZXIgbnVtYmVycyBh cmUgbm90IGNoYW5nZWQuICBSRUdTVEFDSyBpcyB0aGUKQEAgLTIzODIsNyArMjM5NSwxMCBAQCBz dWJzdF9zdGFja19yZWdzIChydHhfaW5zbiAqaW5zbiwgc3RhY2tfcHRyIHJlZ3N0YWNrKQogICBi b29sIGNvbnRyb2xfZmxvd19pbnNuX2RlbGV0ZWQgPSBmYWxzZTsKICAgaW50IGk7CiAKLSAgaWYg KENBTExfUCAoaW5zbikpCisgIC8qIElmIHRoZSB0YXJnZXQgb2YgdGhlIGNhbGwgZG9lc24ndCBj bG9iYmVyIGFueSBzdGFjayByZWdpc3RlcnMsCisgICAgIERvbid0IGNsZWFyIHRoZSBhcmd1bWVu dHMuICAqLworICBpZiAoQ0FMTF9QIChpbnNuKQorICAgICAgJiYgY2FsbGVlX2Nsb2JiZXJzX2Fu eV9zdGFja19yZWcgKGluc25fY2FsbGVlX2FiaSAoaW5zbikpKQogICAgIHsKICAgICAgIGludCB0 b3AgPSByZWdzdGFjay0+dG9wOwogCmRpZmYgLS1naXQgYS9nY2MvcnRsLmMgYi9nY2MvcnRsLmMK aW5kZXggYjBiYTFmZjY4NGMuLmFhZWU4ODJmNWNhIDEwMDY0NAotLS0gYS9nY2MvcnRsLmMKKysr IGIvZ2NjL3J0bC5jCkBAIC0zOTUsOCArMzk1LDEwIEBAIHNoYWxsb3dfY29weV9ydHggKGNvbnN0 X3J0eCBvcmlnIE1FTV9TVEFUX0RFQ0wpCiAgICAgY2FzZSBTQ1JBVENIOgogICAgICAgYnJlYWs7 CiAgICAgZGVmYXVsdDoKLSAgICAgIC8qIEZvciBhbGwgb3RoZXIgUlRYZXMgY2xlYXIgdGhlIHVz ZWQgZmxhZyBvbiB0aGUgY29weS4gICovCi0gICAgICBSVFhfRkxBRyAoY29weSwgdXNlZCkgPSAw OworICAgICAgLyogRm9yIGFsbCBvdGhlciBSVFhlcyBjbGVhciB0aGUgdXNlZCBmbGFnIG9uIHRo ZSBjb3B5LgorCSBDQUxMX0lOU04gdXNlICJ1c2VkIiBmbGFnIHRvIGluZGljYXRlIGl0J3MgYSBm YWtlIGNhbGwuICAqLworICAgICAgaWYgKCFJTlNOX1AgKG9yaWcpKQorCVJUWF9GTEFHIChjb3B5 LCB1c2VkKSA9IDA7CiAgICAgICBicmVhazsKICAgICB9CiAgIHJldHVybiBjb3B5OwpkaWZmIC0t Z2l0IGEvZ2NjL3J0bC5oIGIvZ2NjL3J0bC5oCmluZGV4IDM1MTc4YjViZmFjLi41ZWQwZDZkZDZm YSAxMDA2NDQKLS0tIGEvZ2NjL3J0bC5oCisrKyBiL2djYy9ydGwuaApAQCAtODM5LDYgKzgzOSwx MSBAQCBzdHJ1Y3QgR1RZKCgpKSBydHZlY19kZWYgewogLyogUHJlZGljYXRlIHlpZWxkaW5nIG5v bnplcm8gaWZmIFggaXMgYSBjYWxsIGluc24uICAqLwogI2RlZmluZSBDQUxMX1AoWCkgKEdFVF9D T0RFIChYKSA9PSBDQUxMX0lOU04pCiAKKy8qIDEgaWYgUlRYIGlzIGEgY2FsbF9pbnNuIGZvciBh IGZha2UgY2FsbC4KKyAgIENBTExfSU5TTiB1c2UgInVzZWQiIGZsYWcgdG8gaW5kaWNhdGUgaXQn cyBhIGZha2UgY2FsbC4gICovCisjZGVmaW5lIEZBS0VfQ0FMTF9QKFJUWCkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAoUlRMX0ZMQUdfQ0hFQ0sxICgiRkFLRV9D QUxMX1AiLCAoUlRYKSwgQ0FMTF9JTlNOKS0+dXNlZCkKKwogLyogUHJlZGljYXRlIHlpZWxkaW5n IG5vbnplcm8gaWZmIFggaXMgYW4gaW5zbiB0aGF0IGNhbm5vdCBqdW1wLiAgKi8KICNkZWZpbmUg Tk9OSlVNUF9JTlNOX1AoWCkgKEdFVF9DT0RFIChYKSA9PSBJTlNOKQogCmRpZmYgLS1naXQgYS9n Y2Mvc2hyaW5rLXdyYXAuYyBiL2djYy9zaHJpbmstd3JhcC5jCmluZGV4IGJhN2I1Y2Q1NmZkLi41 ZTYwZjM0Zjc0OSAxMDA2NDQKLS0tIGEvZ2NjL3Nocmluay13cmFwLmMKKysrIGIvZ2NjL3Nocmlu ay13cmFwLmMKQEAgLTU3LDcgKzU3LDcgQEAgcmVxdWlyZXNfc3RhY2tfZnJhbWVfcCAocnR4X2lu c24gKmluc24sIEhBUkRfUkVHX1NFVCBwcm9sb2d1ZV91c2VkLAogICBIQVJEX1JFR19TRVQgaGFy ZHJlZ3M7CiAgIHVuc2lnbmVkIHJlZ25vOwogCi0gIGlmIChDQUxMX1AgKGluc24pKQorICBpZiAo Q0FMTF9QIChpbnNuKSAmJiAhRkFLRV9DQUxMX1AgKGluc24pKQogICAgIHJldHVybiAhU0lCTElO R19DQUxMX1AgKGluc24pOwogCiAgIC8qIFdlIG5lZWQgYSBmcmFtZSB0byBnZXQgdGhlIHVuaXF1 ZSBDRkEgZXhwZWN0ZWQgYnkgdGhlIHVud2luZGVyLiAgKi8KLS0gCjIuMTguMQoK --00000000000057426b05c3aaf65d--