From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com [IPv6:2a00:1450:4864:20::533]) by sourceware.org (Postfix) with ESMTPS id 8E5BB3858D1E for ; Thu, 9 Nov 2023 18:52:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8E5BB3858D1E Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 8E5BB3858D1E Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::533 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1699555962; cv=none; b=lDfVk/fLt05mcW42fuF6QaxnpKa7VBQCamH58VNqAhaPhC7OsrKSs5RsimmClZBZuKiYsUuzQQLpTqza9pa/efM5NPKpvAWDbpdXbPy4CIcFn2U/qtsnu4Vlq2TByHVTSYzTjvIgHdwlh+b9nbzzXLDUx+31CJubT1+Wnvq6YYo= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1699555962; c=relaxed/simple; bh=WiUYekd1taco/OQ8Zbx2FPUOCgVLXt3IPSDYiKnHYIA=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=iaI831DPzJpi+MEKDGoH2OsEiS31xfLRp+Eao8Wya+UvYEdCyGmiU4zos30QrHCVXdn0xMQHNZAlvpfEzb6EusfcsCEbWoYYfZJN0zcFxjjUP48K3M6W3dLBhRliZrjHydeNDYYbPaORrSXOC40bGn9RNh06dNVsrGw6FlRgnBE= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-ed1-x533.google.com with SMTP id 4fb4d7f45d1cf-540c54944c4so2509171a12.1 for ; Thu, 09 Nov 2023 10:52:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1699555958; x=1700160758; darn=gcc.gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=RdrAOS/wup+RvKToIM8PnmB0ZkCPMgnTp6DG7Ln8nfI=; b=Q8w4yDmcMQaRo2xcVQNelo/2/a2BjOfwMm+sA1pt7Y25CW7/6KUxCgzO9/Sig1R1qZ 47/UwHCtOIiNgFAm+UZK/cH4BzGljNYmaRuWRNqj+0dgCVAySCbrzsgQ1LUdcbBWFK4c sF1ebF8PSDCCMuGN/08vE5w9H+qCrEcVZ1Q7aQfTCgY5egr3Z701GTIXycgDH9pzZw+q jqrdc0W11QLq/suc6op/rklDMExvE/ThrJBSY2F+7Yt32U+BK5vNMPcF/n1Gdm3Z64L3 rAHc0GpedC9ArTQBhWCW0gMpS94Hv4IrxmDj2qtsLLl+KU3xpx2cH+AAbZU6j/CP4apb tTyg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699555958; x=1700160758; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=RdrAOS/wup+RvKToIM8PnmB0ZkCPMgnTp6DG7Ln8nfI=; b=rxYGE0FhKjAo1efXe7gVZoLk6YqDC0j8Ql2mB4KO5gAm8FMCgQGtUPQn0XVO7EC9Ys 4hoOla4/9TIjXBqhKFbzRguRT82ZkmM3AEMYLcQibQPAQER76Xfyw8B3MUzfPp+ZJLQF HJySK/QFWYHAU0C3yi3fVZ6OeT1BOVTbTvVLxlw6F+pIIuIpF7OQ78kOwiLL4WaLzteA Q8kA2G0VSS6pC6fWwZHxcJrieVyH06Z0FCPbOtr3+khk0PUFV66NKGw50uoMrSlvXWFJ F0++H//fJr+uEYhGBON7NRjof3NpsfxR50h5e+D4/6JtapWnODcOgo4LkGC5UdLdLFtB kxXQ== X-Gm-Message-State: AOJu0YxNffi5JNbE+JD2tDSS+08Of8K1TQcoUx3TkmFvenrpWReQRmRB DRC+nLFcmWrTNsSX6Bsf/fUhmNThvIReT4HZl8lEU2CqLmbw0g== X-Google-Smtp-Source: AGHT+IHRyPedMYwy1HSTF8v14ujXv9Ot3YYtXmAwmP4IRXfJklPNR9kwKSaxWfQvlAjnLdXlrMOad/or5KSFR9kXCNQ= X-Received: by 2002:aa7:c7d9:0:b0:545:5601:414d with SMTP id o25-20020aa7c7d9000000b005455601414dmr129093eds.17.1699555957947; Thu, 09 Nov 2023 10:52:37 -0800 (PST) MIME-Version: 1.0 From: Uros Bizjak Date: Thu, 9 Nov 2023 19:52:26 +0100 Message-ID: Subject: [committed] i386: Improve stack protector patterns and peephole2s even more To: "gcc-patches@gcc.gnu.org" Content-Type: multipart/mixed; boundary="000000000000265c390609bcb565" X-Spam-Status: No, score=-8.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,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 List-Id: --000000000000265c390609bcb565 Content-Type: text/plain; charset="UTF-8" Improve stack protector patterns and peephole2s even more: a. Use unrelated register clears with integer mode size <= word mode size to clear stack protector scratch register. b. Use unrelated register initializations in front of stack protector sequence to clear stack protector scratch register. c. Use unrelated register initializations using LEA instructions to clear stack protector scratch register. These stack protector improvements reuse 6914 unrelated register initializations to substitute the clear of stack protector scratch register in 12034 instances of stack protector sequence in recent linux defconfig build. gcc/ChangeLog: * config/i386/i386.md (@stack_protect_set_1__): Use W mode iterator instead of SWI48. Output MOV instead of XOR for TARGET_USE_MOV0. (stack_protect_set_1 peephole2): Use integer modes with mode size <= word mode size for operand 3. (stack_protect_set_1 peephole2 #2): New peephole2 pattern to substitute stack protector scratch register clear with unrelated register initialization, originally in front of stack protector sequence. (*stack_protect_set_3__): New insn pattern. (stack_protect_set_1 peephole2): New peephole2 pattern to substitute stack protector scratch register clear with unrelated register initialization involving LEA instruction. Bootstrapped and regression tested on x86_64-linux-gnu {,-m32}. Uros. --000000000000265c390609bcb565 Content-Type: text/plain; charset="US-ASCII"; name="p.diff.txt" Content-Disposition: attachment; filename="p.diff.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lorjq5x40 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvaTM4Ni9pMzg2Lm1kIGIvZ2NjL2NvbmZpZy9pMzg2L2kz ODYubWQKaW5kZXggY2U3MTAyYWY0NGYuLjA0NmI2Yjc5MTllIDEwMDY0NAotLS0gYS9nY2MvY29u ZmlnL2kzODYvaTM4Ni5tZAorKysgYi9nY2MvY29uZmlnL2kzODYvaTM4Ni5tZApAQCAtMjQzMDYs MTEgKzI0MzA2LDExIEBAIChkZWZpbmVfZXhwYW5kICJzdGFja19wcm90ZWN0X3NldCIKICAgRE9O RTsKIH0pCiAKLShkZWZpbmVfaW5zbiAiQHN0YWNrX3Byb3RlY3Rfc2V0XzFfPFBUUjptb2RlPl88 U1dJNDg6bW9kZT4iCisoZGVmaW5lX2luc24gIkBzdGFja19wcm90ZWN0X3NldF8xXzxQVFI6bW9k ZT5fPFc6bW9kZT4iCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlBUUiAwICJtZW1vcnlfb3BlcmFu ZCIgIj1tIikKIAkodW5zcGVjOlBUUiBbKG1hdGNoX29wZXJhbmQ6UFRSIDEgIm1lbW9yeV9vcGVy YW5kIiAibSIpXQogCQkgICAgVU5TUEVDX1NQX1NFVCkpCi0gICAoc2V0IChtYXRjaF9vcGVyYW5k OlNXSTQ4IDIgInJlZ2lzdGVyX29wZXJhbmQiICI9JnIiKSAoY29uc3RfaW50IDApKQorICAgKHNl dCAobWF0Y2hfb3BlcmFuZDpXIDIgInJlZ2lzdGVyX29wZXJhbmQiICI9JnIiKSAoY29uc3RfaW50 IDApKQogICAgKGNsb2JiZXIgKHJlZzpDQyBGTEFHU19SRUcpKV0KICAgIiIKIHsKQEAgLTI0MzE4 LDcgKzI0MzE4LDEwIEBAIChkZWZpbmVfaW5zbiAiQHN0YWNrX3Byb3RlY3Rfc2V0XzFfPFBUUjpt b2RlPl88U1dJNDg6bW9kZT4iCiAJCSAgIG9wZXJhbmRzKTsKICAgb3V0cHV0X2FzbV9pbnNuICgi bW92ezxQVFI6aW1vZGVzdWZmaXg+fVx0eyU8UFRSOms+MiwgJTB8JTAsICU8UFRSOms+Mn0iLAog CQkgICBvcGVyYW5kcyk7Ci0gIHJldHVybiAieG9ye2x9XHQlazIsICVrMiI7CisgIGlmICghVEFS R0VUX1VTRV9NT1YwIHx8IG9wdGltaXplX2luc25fZm9yX3NpemVfcCAoKSkKKyAgICByZXR1cm4g InhvcntsfVx0JWsyLCAlazIiOworICBlbHNlCisgICAgcmV0dXJuICJtb3Z7bH1cdHskMCwgJWsy fCVrMiwgMH0iOwogfQogICBbKHNldF9hdHRyICJ0eXBlIiAibXVsdGkiKV0pCiAKQEAgLTI0MzM0 LDE1ICsyNDMzNywxNiBAQCAoZGVmaW5lX3BlZXBob2xlMgogCQkJICAgICAgIFVOU1BFQ19TUF9T RVQpKQogCSAgICAgIChzZXQgKG1hdGNoX29wZXJhbmQ6VyAyICJnZW5lcmFsX3JlZ19vcGVyYW5k IikgKGNvbnN0X2ludCAwKSkKIAkgICAgICAoY2xvYmJlciAocmVnOkNDIEZMQUdTX1JFRykpXSkK LSAgIChwYXJhbGxlbCBbKHNldCAobWF0Y2hfb3BlcmFuZDpTV0k0OCAzICJnZW5lcmFsX3JlZ19v cGVyYW5kIikKLQkJICAgKG1hdGNoX29wZXJhbmQ6U1dJNDggNCAiY29uc3QwX29wZXJhbmQiKSkK LQkgICAgICAoY2xvYmJlciAocmVnOkNDIEZMQUdTX1JFRykpXSldCi0gICJwZWVwMl9yZWdfZGVh ZF9wICgwLCBvcGVyYW5kc1szXSkKKyAgIChzZXQgKG1hdGNoX29wZXJhbmQgMyAiZ2VuZXJhbF9y ZWdfb3BlcmFuZCIpCisJKG1hdGNoX29wZXJhbmQgNCAiY29uc3QwX29wZXJhbmQiKSldCisgICJH RVRfTU9ERV9TSVpFIChHRVRfTU9ERSAob3BlcmFuZHNbM10pKSA8PSBVTklUU19QRVJfV09SRAor ICAgJiYgcGVlcDJfcmVnX2RlYWRfcCAoMCwgb3BlcmFuZHNbM10pCiAgICAmJiBwZWVwMl9yZWdf ZGVhZF9wICgxLCBvcGVyYW5kc1syXSkiCiAgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAw KQogCQkgICAodW5zcGVjOlBUUiBbKG1hdGNoX2R1cCAxKV0gVU5TUEVDX1NQX1NFVCkpCiAJICAg ICAgKHNldCAobWF0Y2hfZHVwIDMpIChjb25zdF9pbnQgMCkpCi0JICAgICAgKGNsb2JiZXIgKHJl ZzpDQyBGTEFHU19SRUcpKV0pXSkKKwkgICAgICAoY2xvYmJlciAocmVnOkNDIEZMQUdTX1JFRykp XSldCisgICJvcGVyYW5kc1szXSA9IGdlbl9sb3dwYXJ0ICh3b3JkX21vZGUsIG9wZXJhbmRzWzNd KTsiKQogCiAoZGVmaW5lX2luc24gIipzdGFja19wcm90ZWN0X3NldF8yXzxtb2RlPl9zaSIKICAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6UFRSIDAgIm1lbW9yeV9vcGVyYW5kIiAiPW0iKQpAQCAtMjQ0 MDEsNiArMjQ0MDUsNTkgQEAgKGRlZmluZV9wZWVwaG9sZTIKIAkJICAgKHVuc3BlYzpQVFIgWyht YXRjaF9kdXAgMSldIFVOU1BFQ19TUF9TRVQpKQogCSAgICAgIChzZXQgKG1hdGNoX2R1cCAzKSAo bWF0Y2hfZHVwIDQpKV0pXSkKIAorKGRlZmluZV9wZWVwaG9sZTIKKyAgWyhzZXQgKG1hdGNoX29w ZXJhbmQ6U1dJNDggMyAiZ2VuZXJhbF9yZWdfb3BlcmFuZCIpCisJKG1hdGNoX29wZXJhbmQ6U1dJ NDggNCAiZ2VuZXJhbF9ncl9vcGVyYW5kIikpCisgICAocGFyYWxsZWwgWyhzZXQgKG1hdGNoX29w ZXJhbmQ6UFRSIDAgIm1lbW9yeV9vcGVyYW5kIikKKwkJICAgKHVuc3BlYzpQVFIgWyhtYXRjaF9v cGVyYW5kOlBUUiAxICJtZW1vcnlfb3BlcmFuZCIpXQorCQkJICAgICAgIFVOU1BFQ19TUF9TRVQp KQorCSAgICAgIChzZXQgKG1hdGNoX29wZXJhbmQ6VyAyICJnZW5lcmFsX3JlZ19vcGVyYW5kIikg KGNvbnN0X2ludCAwKSkKKwkgICAgICAoY2xvYmJlciAocmVnOkNDIEZMQUdTX1JFRykpXSldCisg ICJwZWVwMl9yZWdfZGVhZF9wICgwLCBvcGVyYW5kc1szXSkKKyAgICYmIHBlZXAyX3JlZ19kZWFk X3AgKDIsIG9wZXJhbmRzWzJdKQorICAgJiYgIXJlZ19tZW50aW9uZWRfcCAob3BlcmFuZHNbM10s IG9wZXJhbmRzWzBdKQorICAgJiYgIXJlZ19tZW50aW9uZWRfcCAob3BlcmFuZHNbM10sIG9wZXJh bmRzWzFdKSIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApCisJCSAgICh1bnNwZWM6 UFRSIFsobWF0Y2hfZHVwIDEpXSBVTlNQRUNfU1BfU0VUKSkKKwkgICAgICAoc2V0IChtYXRjaF9k dXAgMykgKG1hdGNoX2R1cCA0KSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKnN0YWNrX3Byb3RlY3Rf c2V0XzNfPFBUUjptb2RlPl88U1dJNDg6bW9kZT4iCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlBU UiAwICJtZW1vcnlfb3BlcmFuZCIgIj1tIikKKwkodW5zcGVjOlBUUiBbKG1hdGNoX29wZXJhbmQ6 UFRSIDMgIm1lbW9yeV9vcGVyYW5kIiAibSIpXQorCQkgICAgVU5TUEVDX1NQX1NFVCkpCisgICAo c2V0IChtYXRjaF9vcGVyYW5kOlNXSTQ4IDEgInJlZ2lzdGVyX29wZXJhbmQiICI9JnIiKQorCSht YXRjaF9vcGVyYW5kOlNXSTQ4IDIgImFkZHJlc3Nfbm9fc2VnX29wZXJhbmQiICJUcyIpKV0KKyAg IiIKK3sKKyAgb3V0cHV0X2FzbV9pbnNuICgibW92ezxQVFI6aW1vZGVzdWZmaXg+fVx0eyUzLCAl PFBUUjprPjF8JTxQVFI6az4xLCAlM30iLAorCQkgICBvcGVyYW5kcyk7CisgIG91dHB1dF9hc21f aW5zbiAoIm1vdns8UFRSOmltb2Rlc3VmZml4Pn1cdHslPFBUUjprPjEsICUwfCUwLCAlPFBUUjpr PjF9IiwKKwkJICAgb3BlcmFuZHMpOworICBpZiAoU0ltb2RlX2FkZHJlc3Nfb3BlcmFuZCAob3Bl cmFuZHNbMl0sIFZPSURtb2RlKSkKKyAgICB7CisgICAgICBnY2NfYXNzZXJ0IChUQVJHRVRfNjRC SVQpOworICAgICAgcmV0dXJuICJsZWF7bH1cdHslRTIsICVrMXwlazEsICVFMn0iOworICAgIH0K KyAgZWxzZQorICAgIHJldHVybiAibGVhezxTV0k0ODppbW9kZXN1ZmZpeD59XHR7JUUyLCAlMXwl MSwgJUUyfSI7Cit9CisgIFsoc2V0X2F0dHIgInR5cGUiICJtdWx0aSIpCisgICAoc2V0X2F0dHIg Imxlbmd0aCIgIjI0IildKQorCisoZGVmaW5lX3BlZXBob2xlMgorICBbKHBhcmFsbGVsIFsoc2V0 IChtYXRjaF9vcGVyYW5kOlBUUiAwICJtZW1vcnlfb3BlcmFuZCIpCisJCSAgICh1bnNwZWM6UFRS IFsobWF0Y2hfb3BlcmFuZDpQVFIgMSAibWVtb3J5X29wZXJhbmQiKV0KKwkJCSAgICAgICBVTlNQ RUNfU1BfU0VUKSkKKwkgICAgICAoc2V0IChtYXRjaF9vcGVyYW5kOlcgMiAiZ2VuZXJhbF9yZWdf b3BlcmFuZCIpIChjb25zdF9pbnQgMCkpCisJICAgICAgKGNsb2JiZXIgKHJlZzpDQyBGTEFHU19S RUcpKV0pCisgICAoc2V0IChtYXRjaF9vcGVyYW5kOlNXSTQ4IDMgImdlbmVyYWxfcmVnX29wZXJh bmQiKQorCShtYXRjaF9vcGVyYW5kOlNXSTQ4IDQgImFkZHJlc3Nfbm9fc2VnX29wZXJhbmQiKSld CisgICJwZWVwMl9yZWdfZGVhZF9wICgwLCBvcGVyYW5kc1szXSkKKyAgICYmIHBlZXAyX3JlZ19k ZWFkX3AgKDEsIG9wZXJhbmRzWzJdKSIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDAp CisJCSAgICh1bnNwZWM6UFRSIFsobWF0Y2hfZHVwIDEpXSBVTlNQRUNfU1BfU0VUKSkKKwkgICAg ICAoc2V0IChtYXRjaF9kdXAgMykgKG1hdGNoX2R1cCA0KSldKV0pCisKIChkZWZpbmVfZXhwYW5k ICJzdGFja19wcm90ZWN0X3Rlc3QiCiAgIFsobWF0Y2hfb3BlcmFuZCAwICJtZW1vcnlfb3BlcmFu ZCIpCiAgICAobWF0Y2hfb3BlcmFuZCAxICJtZW1vcnlfb3BlcmFuZCIpCg== --000000000000265c390609bcb565--