From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com [IPv6:2a00:1450:4864:20::32f]) by sourceware.org (Postfix) with ESMTPS id D35863858D32; Sun, 17 Sep 2023 20:41:17 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D35863858D32 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-wm1-x32f.google.com with SMTP id 5b1f17b1804b1-401ec23be82so41347435e9.0; Sun, 17 Sep 2023 13:41:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1694983276; x=1695588076; darn=gcc.gnu.org; h=subject:from:cc:to:content-language:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=QdxmCCkDXvIU/JcSmA0iEIwiDqcQ7oZwweuC0p9OneY=; b=MCj7nrS4xdfTU3uDJuD+28qhC8272GRdljfRJ4ei3LzyzRcOnQJ/Wy1qGWj4eVfQXM 2pe0ZiVSESwGlF+/XWCDxgTSNMlC3ELqCrmAPXZnUW5qclheHYuh5DNO2jG/xX9mhoEJ 1kJ7Ki6ppT1wH6Fb1hCqIhacdQnAB3VSTgf52NwPkrKoIVXSZ+2CMx0YTofbv0WpgHwB tKO/OVLB0iEtmeWNlm2blN/ycNfayek1Jd5YzM8mXGW+kOZ+1/z3PN4ybT3PvmE9o7G/ 7bmUA9KZsFnDKgd34K1CTDteDZsxmRABkj35JGvzb+QU/3VEyNc5CQ2COBj5lDfxZa5r gZqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694983276; x=1695588076; h=subject:from:cc:to:content-language:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=QdxmCCkDXvIU/JcSmA0iEIwiDqcQ7oZwweuC0p9OneY=; b=HC4EaDVwN2/G7ntdgZqWKENVYNPLrcyH2Ov5bUu5o+iUvMr/qFCGTVLcjAx/yU4TV6 /Ft9vdHX/ec1hBR2iwg3EBbPcZ5mCJEo/QCCFQg6lAj6gVJ3VaBhha13/9RSMnZBnCeW 5MhqsbQTd0O6KHv2eY0cBOfdQzHfmURpghZgEE4bVcpqIsKuYZ/Dnqcfx7Tx8xFYoP2r /My49lSooU3ZeVItEwCG0F/lm9hB7fubjT/51nzygIBl5hHSf6gO1Fnn/FHaOdOYoH7E DULM+/7V30adFZNl1K16FAsHsGGPOBb371m56chgnnEXv8VzlfAQUV5+FHI3c8Zp2UMW A0XQ== X-Gm-Message-State: AOJu0Yzg43VmQp+m68EiBYm6KkqEzW7FvE8Fg20DUe95NHNqkG400qJE /PsWXWIQmIlGk8HJQf1LpeCHjSmcdls= X-Google-Smtp-Source: AGHT+IHTwUCCTm6GwnVGNxjPo6XOMs6UYv6ZlRGh0ubkWNRLh+iVUKGbxdB4EU0vHYZS9zMT4hx5bQ== X-Received: by 2002:a05:600c:2241:b0:3fa:934c:8356 with SMTP id a1-20020a05600c224100b003fa934c8356mr6454256wmm.10.1694983275923; Sun, 17 Sep 2023 13:41:15 -0700 (PDT) Received: from ?IPV6:2a01:e0a:1dc:b1c0:9dc0:9d56:99a6:e6bf? ([2a01:e0a:1dc:b1c0:9dc0:9d56:99a6:e6bf]) by smtp.gmail.com with ESMTPSA id 8-20020a05600c028800b00402c0a8a084sm13212552wmk.17.2023.09.17.13.41.13 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 17 Sep 2023 13:41:14 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------oGbD9bekFVAIWCX0VsTySrjY" Message-ID: <8046050f-c7e7-e41a-caf6-ddf087719597@gmail.com> Date: Sun, 17 Sep 2023 22:41:13 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.15.0 Content-Language: en-US To: libstdc++ Cc: gcc-patches From: =?UTF-8?Q?Fran=c3=a7ois_Dumont?= Subject: [PATCH][_Hashtable] Avoid redundant usage of rehash policy X-Spam-Status: No, score=-11.1 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 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: This is a multi-part message in MIME format. --------------oGbD9bekFVAIWCX0VsTySrjY Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit libstdc++: [_Hashtable] Avoid redundant usage of rehash policy Bypass usage of __detail::__distance_fwd and check for need to rehash when assigning an initializer_list to an unordered_multimap or unordered_multiset. libstdc++-v3/ChangeLog:     * include/bits/hashtable_policy.h     (_Insert_base<>::_M_insert_range(_InputIte, _InputIte, _NodeGen&)): New.     (_Insert_base<>::_M_insert_range(_InputIte, _InputIte, true_type)): Use latter.     (_Insert_base<>::_M_insert_range(_InputIte, _InputIte, false_type)): Likewise.     * include/bits/hashtable.h (_Hashtable<>::operator=(initializer_list)): Likewise.     (_Hashtable<>::_Hashtable(_InputIte, _InputIte, size_type, const _Hash&, const _Equal&,     const allocator_type&, false_type)): Likewise. Ok to commit ? François --------------oGbD9bekFVAIWCX0VsTySrjY Content-Type: text/x-patch; charset=UTF-8; name="hashtable.patch" Content-Disposition: attachment; filename="hashtable.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9pbmNsdWRlL2JpdHMvaGFzaHRhYmxlLmggYi9s aWJzdGRjKystdjMvaW5jbHVkZS9iaXRzL2hhc2h0YWJsZS5oCmluZGV4IDRjMTJkYzg5NWIy Li5jNTQ0MDk0ODQ3ZCAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL2luY2x1ZGUvYml0cy9o YXNodGFibGUuaAorKysgYi9saWJzdGRjKystdjMvaW5jbHVkZS9iaXRzL2hhc2h0YWJsZS5o CkBAIC02MTQsNyArNjE0LDcgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04K IAlpZiAoX01fYnVja2V0X2NvdW50IDwgX19sX2JrdF9jb3VudCkKIAkgIHJlaGFzaChfX2xf Ymt0X2NvdW50KTsKIAotCXRoaXMtPl9NX2luc2VydF9yYW5nZShfX2wuYmVnaW4oKSwgX19s LmVuZCgpLCBfX3JvYW4sIF9fdW5pcXVlX2tleXN7fSk7CisJdGhpcy0+X01faW5zZXJ0X3Jh bmdlKF9fbC5iZWdpbigpLCBfX2wuZW5kKCksIF9fcm9hbik7CiAJcmV0dXJuICp0aGlzOwog ICAgICAgfQogCkBAIC0xMjU0LDggKzEyNTQsNyBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BB Q0VfVkVSU0lPTgogCSAgfQogCiAJX19hbGxvY19ub2RlX2dlbl90IF9fbm9kZV9nZW4oKnRo aXMpOwotCWZvciAoOyBfX2YgIT0gX19sOyArK19fZikKLQkgIF9NX2luc2VydCgqX19mLCBf X25vZGVfZ2VuLCBfX3Vrcyk7CisJdGhpcy0+X01faW5zZXJ0X3JhbmdlKF9fZiwgX19sLCBf X25vZGVfZ2VuKTsKICAgICAgIH0KIAogICB0ZW1wbGF0ZTx0eXBlbmFtZSBfS2V5LCB0eXBl bmFtZSBfVmFsdWUsIHR5cGVuYW1lIF9BbGxvYywKZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12 My9pbmNsdWRlL2JpdHMvaGFzaHRhYmxlX3BvbGljeS5oIGIvbGlic3RkYysrLXYzL2luY2x1 ZGUvYml0cy9oYXNodGFibGVfcG9saWN5LmgKaW5kZXggMzQ3ZDQ2OGVhODYuLmFiOTMxZDQy ZTJkIDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMvaW5jbHVkZS9iaXRzL2hhc2h0YWJsZV9w b2xpY3kuaAorKysgYi9saWJzdGRjKystdjMvaW5jbHVkZS9iaXRzL2hhc2h0YWJsZV9wb2xp Y3kuaApAQCAtOTAyLDEyICs5MDIsMTcgQEAgbmFtZXNwYWNlIF9fZGV0YWlsCiAgICAgICB0 ZW1wbGF0ZTx0eXBlbmFtZSBfSW5wdXRJdGVyYXRvciwgdHlwZW5hbWUgX05vZGVHZXR0ZXI+ CiAJdm9pZAogCV9NX2luc2VydF9yYW5nZShfSW5wdXRJdGVyYXRvciBfX2ZpcnN0LCBfSW5w dXRJdGVyYXRvciBfX2xhc3QsCi0JCQljb25zdCBfTm9kZUdldHRlciYsIHRydWVfdHlwZSBf X3Vrcyk7CisJCQljb25zdCBfTm9kZUdldHRlciYpOwogCi0gICAgICB0ZW1wbGF0ZTx0eXBl bmFtZSBfSW5wdXRJdGVyYXRvciwgdHlwZW5hbWUgX05vZGVHZXR0ZXI+CisgICAgICB0ZW1w bGF0ZTx0eXBlbmFtZSBfSW5wdXRJdGVyYXRvcj4KIAl2b2lkCiAJX01faW5zZXJ0X3Jhbmdl KF9JbnB1dEl0ZXJhdG9yIF9fZmlyc3QsIF9JbnB1dEl0ZXJhdG9yIF9fbGFzdCwKLQkJCWNv bnN0IF9Ob2RlR2V0dGVyJiwgZmFsc2VfdHlwZSBfX3Vrcyk7CisJCQl0cnVlX3R5cGUgX191 a3MpOworCisgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBfSW5wdXRJdGVyYXRvcj4KKwl2b2lk CisJX01faW5zZXJ0X3JhbmdlKF9JbnB1dEl0ZXJhdG9yIF9fZmlyc3QsIF9JbnB1dEl0ZXJh dG9yIF9fbGFzdCwKKwkJCWZhbHNlX3R5cGUgX191a3MpOwogCiAgICAgcHVibGljOgogICAg ICAgdXNpbmcgaXRlcmF0b3IgPSBfTm9kZV9pdGVyYXRvcjxfVmFsdWUsIF9fY29uc3RhbnRf aXRlcmF0b3JzOjp2YWx1ZSwKQEAgLTk2NiwxMSArOTcxLDcgQEAgbmFtZXNwYWNlIF9fZGV0 YWlsCiAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBfSW5wdXRJdGVyYXRvcj4KIAl2b2lkCiAJ aW5zZXJ0KF9JbnB1dEl0ZXJhdG9yIF9fZmlyc3QsIF9JbnB1dEl0ZXJhdG9yIF9fbGFzdCkK LQl7Ci0JICBfX2hhc2h0YWJsZSYgX19oID0gX01fY29uanVyZV9oYXNodGFibGUoKTsKLQkg IF9fbm9kZV9nZW5fdHlwZSBfX25vZGVfZ2VuKF9faCk7Ci0JICByZXR1cm4gX01faW5zZXJ0 X3JhbmdlKF9fZmlyc3QsIF9fbGFzdCwgX19ub2RlX2dlbiwgX191bmlxdWVfa2V5c3t9KTsK LQl9CisJeyBfTV9pbnNlcnRfcmFuZ2UoX19maXJzdCwgX19sYXN0LCBfX3VuaXF1ZV9rZXlz e30pOyB9CiAgICAgfTsKIAogICB0ZW1wbGF0ZTx0eXBlbmFtZSBfS2V5LCB0eXBlbmFtZSBf VmFsdWUsIHR5cGVuYW1lIF9BbGxvYywKQEAgLTk4MywyNCArOTg0LDQxIEBAIG5hbWVzcGFj ZSBfX2RldGFpbAogCQkgICBfSGFzaCwgX1JhbmdlSGFzaCwgX1VudXNlZCwKIAkJICAgX1Jl aGFzaFBvbGljeSwgX1RyYWl0cz46OgogICAgICAgX01faW5zZXJ0X3JhbmdlKF9JbnB1dEl0 ZXJhdG9yIF9fZmlyc3QsIF9JbnB1dEl0ZXJhdG9yIF9fbGFzdCwKLQkJICAgICAgY29uc3Qg X05vZGVHZXR0ZXImIF9fbm9kZV9nZW4sIHRydWVfdHlwZSBfX3VrcykKKwkJICAgICAgY29u c3QgX05vZGVHZXR0ZXImIF9fbm9kZV9nZW4pCiAgICAgICB7CiAJX19oYXNodGFibGUmIF9f aCA9IF9NX2Nvbmp1cmVfaGFzaHRhYmxlKCk7CiAJZm9yICg7IF9fZmlyc3QgIT0gX19sYXN0 OyArK19fZmlyc3QpCi0JICBfX2guX01faW5zZXJ0KCpfX2ZpcnN0LCBfX25vZGVfZ2VuLCBf X3Vrcyk7CisJICBfX2guX01faW5zZXJ0KCpfX2ZpcnN0LCBfX25vZGVfZ2VuLCBfX3VuaXF1 ZV9rZXlze30pOwogICAgICAgfQogCiAgIHRlbXBsYXRlPHR5cGVuYW1lIF9LZXksIHR5cGVu YW1lIF9WYWx1ZSwgdHlwZW5hbWUgX0FsbG9jLAogCSAgIHR5cGVuYW1lIF9FeHRyYWN0S2V5 LCB0eXBlbmFtZSBfRXF1YWwsCiAJICAgdHlwZW5hbWUgX0hhc2gsIHR5cGVuYW1lIF9SYW5n ZUhhc2gsIHR5cGVuYW1lIF9VbnVzZWQsCiAJICAgdHlwZW5hbWUgX1JlaGFzaFBvbGljeSwg dHlwZW5hbWUgX1RyYWl0cz4KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBfSW5wdXRJdGVyYXRv ciwgdHlwZW5hbWUgX05vZGVHZXR0ZXI+CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgX0lucHV0 SXRlcmF0b3I+CisgICAgICB2b2lkCisgICAgICBfSW5zZXJ0X2Jhc2U8X0tleSwgX1ZhbHVl LCBfQWxsb2MsIF9FeHRyYWN0S2V5LCBfRXF1YWwsCisJCSAgIF9IYXNoLCBfUmFuZ2VIYXNo LCBfVW51c2VkLAorCQkgICBfUmVoYXNoUG9saWN5LCBfVHJhaXRzPjo6CisgICAgICBfTV9p bnNlcnRfcmFuZ2UoX0lucHV0SXRlcmF0b3IgX19maXJzdCwgX0lucHV0SXRlcmF0b3IgX19s YXN0LAorCQkgICAgICB0cnVlX3R5cGUgLyogX191a3MgKi8pCisgICAgICB7CisJX19oYXNo dGFibGUmIF9faCA9IF9NX2Nvbmp1cmVfaGFzaHRhYmxlKCk7CisJX19ub2RlX2dlbl90eXBl IF9fbm9kZV9nZW4oX19oKTsKKwlfTV9pbnNlcnRfcmFuZ2UoX19maXJzdCwgX19sYXN0LCBf X25vZGVfZ2VuKTsKKyAgICAgIH0KKworICB0ZW1wbGF0ZTx0eXBlbmFtZSBfS2V5LCB0eXBl bmFtZSBfVmFsdWUsIHR5cGVuYW1lIF9BbGxvYywKKwkgICB0eXBlbmFtZSBfRXh0cmFjdEtl eSwgdHlwZW5hbWUgX0VxdWFsLAorCSAgIHR5cGVuYW1lIF9IYXNoLCB0eXBlbmFtZSBfUmFu Z2VIYXNoLCB0eXBlbmFtZSBfVW51c2VkLAorCSAgIHR5cGVuYW1lIF9SZWhhc2hQb2xpY3ks IHR5cGVuYW1lIF9UcmFpdHM+CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgX0lucHV0SXRlcmF0 b3I+CiAgICAgICB2b2lkCiAgICAgICBfSW5zZXJ0X2Jhc2U8X0tleSwgX1ZhbHVlLCBfQWxs b2MsIF9FeHRyYWN0S2V5LCBfRXF1YWwsCiAJCSAgIF9IYXNoLCBfUmFuZ2VIYXNoLCBfVW51 c2VkLAogCQkgICBfUmVoYXNoUG9saWN5LCBfVHJhaXRzPjo6CiAgICAgICBfTV9pbnNlcnRf cmFuZ2UoX0lucHV0SXRlcmF0b3IgX19maXJzdCwgX0lucHV0SXRlcmF0b3IgX19sYXN0LAot CQkgICAgICBjb25zdCBfTm9kZUdldHRlciYgX19ub2RlX2dlbiwgZmFsc2VfdHlwZSBfX3Vr cykKKwkJICAgICAgZmFsc2VfdHlwZSAvKiBfX3VrcyAqLykKICAgICAgIHsKIAl1c2luZyBf X3JlaGFzaF90eXBlID0gdHlwZW5hbWUgX19oYXNodGFibGU6Ol9fcmVoYXNoX3R5cGU7CiAJ dXNpbmcgX19yZWhhc2hfc3RhdGUgPSB0eXBlbmFtZSBfX2hhc2h0YWJsZTo6X19yZWhhc2hf c3RhdGU7CkBAIC0xMDIwLDggKzEwMzgsOCBAQCBuYW1lc3BhY2UgX19kZXRhaWwKIAlpZiAo X19kb19yZWhhc2guZmlyc3QpCiAJICBfX2guX01fcmVoYXNoKF9fZG9fcmVoYXNoLnNlY29u ZCwgX19zYXZlZF9zdGF0ZSk7CiAKLQlmb3IgKDsgX19maXJzdCAhPSBfX2xhc3Q7ICsrX19m aXJzdCkKLQkgIF9faC5fTV9pbnNlcnQoKl9fZmlyc3QsIF9fbm9kZV9nZW4sIF9fdWtzKTsK KwlfX25vZGVfZ2VuX3R5cGUgX19ub2RlX2dlbihfX2gpOworCV9NX2luc2VydF9yYW5nZShf X2ZpcnN0LCBfX2xhc3QsIF9fbm9kZV9nZW4pOwogICAgICAgfQogCiAgIC8qKgo= --------------oGbD9bekFVAIWCX0VsTySrjY--