From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from sender4-pp-o90.zoho.com (sender4-pp-o90.zoho.com [136.143.188.90]) by sourceware.org (Postfix) with ESMTPS id B700A385802D; Wed, 10 Jan 2024 23:24:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B700A385802D Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=zoho.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=zoho.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org B700A385802D Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=136.143.188.90 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1704929073; cv=pass; b=b1L3Y25qUIEnrRxjk3/BtqNvSoplqQ141zXKueYnvgb0mjvrSKFbVsSXXifmGlUe4N94Yms+S0azp/pUj166k9aSz5ooTySrSnWGB4aHYQjQMklexRHZwmFFmBbz67ypkwzLn4OD0tINeejkTU0uHUxlGoxJFs2CSeNVDISZqx4= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1704929073; c=relaxed/simple; bh=AZEiyqH6Le1TSlWJg3gXdMhoeIp131O98bVQGvlQVA8=; h=DKIM-Signature:Message-ID:Subject:From:To:Date:MIME-Version; b=YFHCBX5r9WbJSXaa01mIJGH/u4+gbTn79uy3h+OWCDKUmGDtNMM/ztoTOcWxum3jn+ymSzD7BKVj0PQaScguzBu4Y2MXcHsPWSH4irBPG/G6AF1Vin5z72JLXLzHmD+umIw7L3ezxnHyaARYXH8qNaztA/fblyQKE9MkRNS9UB8= ARC-Authentication-Results: i=2; server2.sourceware.org ARC-Seal: i=1; a=rsa-sha256; t=1704929067; cv=none; d=zohomail.com; s=zohoarc; b=fae8K87peJ/7qNh9x+ncWvdRzTbQQ60RjHglNSkyIUhPT9ameaS+xIfvXvYc3YayHGCtjacl+CkdpzSWPUX2jMVaYCg7WAtahwTPYKFVXtWqO/uYwMvlTMUNzpYqMdmwRjh/XzkhwpR8ndPTNliwjXt7Yj6/0h3kWjxG5zSFDgU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1704929067; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=1RUByyZ3HLhXR5Lexe9f2caVVuooEBpNK9xREmHPqyg=; b=DMwsdv+dsv2fhvCgKIPBFBSKKPBGua59fMs9mEr/ZGdCR/VNCgGAfMBDl8lm796E34bsgpMwNwBN3UXQ4ndXerX117zJds17wOe3+B7vn2VXQdFQnZUnNpFSftK3DETa9vTnnVFZwv0nn43EyCV0oFVzWZ24UTeCCN6L0VgBgAw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=zoho.com; spf=pass smtp.mailfrom=bouanto@zoho.com; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1704929067; s=zm2022; d=zoho.com; i=bouanto@zoho.com; h=Message-ID:Subject:Subject:From:From:To:To:Date:Date:In-Reply-To:References:Content-Type:Content-Transfer-Encoding:MIME-Version:Feedback-ID:Message-Id:Reply-To:Cc; bh=1RUByyZ3HLhXR5Lexe9f2caVVuooEBpNK9xREmHPqyg=; b=aikykAlHexD5+co6AJbQkXm6JSBXPIqMbqMkOSRUL78qY302C8L+ssgO+XRj1a6g aFtKsLAA5woTSkytS5SG00GAYq0yz5dZlIB6ZlvPEaP8vpXKOpSMoa0qF7gtCOZg0gy KiaUqK7bPhDtYIsHdmdz8TNmORwrnfi7WKDPt6Dw= Received: from [192.168.1.172] (38.87.11.6 [38.87.11.6]) by mx.zohomail.com with SMTPS id 1704929066791478.5658854276934; Wed, 10 Jan 2024 15:24:26 -0800 (PST) Message-ID: <4b1e14856ead01a1ed526cfe4cbf1f38a0dc6646.camel@zoho.com> Subject: Re: [PATCH] libgccjit: Fix infinite recursion in gt_ggc_mx_lang_tree_node From: Antoni Boucher To: David Malcolm , gcc-patches@gcc.gnu.org, jit@gcc.gnu.org Date: Wed, 10 Jan 2024 18:24:25 -0500 In-Reply-To: References: <74a73ea69738df3e4d277cd86b27f93b494dae77.camel@zoho.com> <37a1856fc54aec475834fd6e7d07b8135e6c750c.camel@zoho.com> Autocrypt: addr=bouanto@zoho.com; prefer-encrypt=mutual; keydata=mQENBFOSMLQBCADO5aw6Ys8thMQUNzrwAnfJX2wbgWiz0pQ01DjYj22eeIpChkoZn6LWdt4dieq30u2rFi/yQzJ02foHwI2+aL9rU6xz/x4TwqyRJQGMOqklNc3R+pdXmH4WDQkQDWmLxvc07vu+zb8Tx5A6pMDh4J2ncCEhLEUcH39Yq/yg4eBnFwUX6N7kakvHrnScGNqhnSFCacoJeMJUAR+1G7VBSBd++jmnHLnx3mj7QkRZVECJUw2zqiv1yReCC6GU4SvqLjdqm5ZGeoWOqD/NHjBRoEeOVjzp6M/qOjjWRbkJVqmvgfcD8UytSSqqboR35YFT4L+rZt2ri3T12MJb3i5syCAXABEBAAG0IUFudG9uaSBCb3VjaGVyIDxib3VhbnRvQHpvaG8uY29tPokBVgQTAQgAQAIbIwcLCQgHAwIBBhUIAgkKCwQWAgMBAh4BAheAFiEEOELC4Uw1Jeb66YE6RVeGAwR4zcEFAlz4QM4FCRLMEZoACgkQRVeGAwR4zcFBQQf/afttJrA/puADQZhrDfkgr0MFvq6iB+GCy1b8BkXimk1TOXTPt87YLehSeijNu3JkYhl5eRc87BNfU9J87KfI/KIy6hZxqlDXk16FhW9bw/7wYEA0hpb3MUn7xLElXDT0ZHaD+KTe8Oun7qfzgx5RlL6r/WODf3CkSpO085R/rfeBqDEx9mVlhDWgq6Az3CZoD+3CqiCKVqmDuHTWz4kwrd9AM5eVcLvvLKnZIdoIp+G5Ao6BvaGlZyfenN1iOSjLy2NXNt4MnUt0lUYEP5KSIIRhHQ8xkUbj7eWUmaahkxhNb3fH3sAPwGnRZrPpb4rgYzNmSk63wWMh9M2xk+rLb7kBDQRTkjC0AQgAumZzsAV/UFWI+dpzebQfma36kKYZZFuseant5sq/HWP553XQ/U6ttJiKyN5MpCqtxvCAoRplf42YhlHuFqgf73WJxoJ6Y+sdyqoBSwlR+ gzAneAmsa8gmmY0wawH0Z2leazjKuS7mJjVEQZg0ZGsiCVRGeRnDqFGzDEzDc9ngWKSoTq0fKzlGy1X85OrtmUrvEbhSo6HP+FoeunHkIqrxu3w3vDoFEXxVQlKI6V3I4nCz5n6DB8WR3L7nsiiTnOiGirPw1ngvWFLW86kkA4FJpayc8Xl3va3SLY+2y4yuROboX2DVI4AC/Qeug/mDiBicPxkP6YfUartQRMe6obkEQARAQABiQE8BBgBCAAmAhsMFiEEOELC4Uw1Jeb66YE6RVeGAwR4zcEFAlz4QRsFCRLMEecACgkQRVeGAwR4zcE56ggAgTgrJInBKC+7552Dpccuo6Clh3wZfjlNLv9/6r5lKEbaNzaTrfhPiAP4WgnluIUmj8amOFLFJpj+BAVNOXpZ4D2R3o9ch8z7fot+fW4Yw+PKIxH4I2xEys8ndoEB3aiQwHjKcGIhkIU7uyMJFQr2aWjdTY0gmXw0YZueHOSLgo7uX4XKxB8fEO/yto/Tff2YBAAq+AtNwt+Gh5YS9rZw7rwUTWMi84yVOlc+zRE79E9NJkvdTwX7IJYo64VzIRNfgHsn7QNdVzuM1XIFHl+Glk6cIlI8s6BO7nEoCn3hTF104fQTAO3fEs+XXZOKXo2lk8faowEoPq5r58StrV0nyg== Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.50.2 MIME-Version: 1.0 Feedback-ID: rr0801122824fbbee693852086c21e32c90000c066c74bc5ce0c61e8ade7b8e2589dc2b76e15bd858245f4e543:zu08011226e769be27b59b596218cac47c0000631f14f62c50e8ce432f4f832f814333167750ccdf569d23:rf08011231a1844c3337e4d45040e99b4c000095ecc5cce9142a86b0bdb20dd1eadadd2f7f7fd31f95adf93f15994584ff12a1c3dd9f:ZohoMail X-ZohoMailClient: External X-Spam-Status: No, score=-10.2 required=5.0 tests=BAYES_00,BODY_8BITS,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,KAM_SHORT,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: It seems I cannot reproduce the issue. Should we drop this patch, then? Or do you think there's value in keeping it? On Mon, 2022-06-06 at 19:01 -0400, David Malcolm wrote: > On Thu, 2022-06-02 at 21:23 -0400, Antoni Boucher via Gcc-patches > wrote: > > Sorry, forgot to attach the patch. > >=20 > > Here it is. > >=20 > > On Thu, 2022-06-02 at 21:20 -0400, Antoni Boucher via Jit wrote: > > > Hi. > > > The attached patch fix bug 105827: > > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D105827 > > >=20 > > > I'm not sure how to test this, so please share ideas. >=20 > Do you have a reproducer for this? >=20 > With garbage-collections issues in libgccjit, you can set: >=20 > =C2=A0 gcc_jit_context_set_bool_option (ctxt, > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 GCC_JIT_BOOL_OPTI= ON_SELFCHECK_GC, > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 1); >=20 > which will force a full garbage collection at every opportunity that > the collector considers doing one (rather than following heuristics) >=20 > This really slows things down, but makes reproducing crashes much > more > deterministic, often turning "it crashes every now and then" to "it > crashes every time" (and the test suite runs with this enabled). >=20 > > >=20 > > > Thanks for the review. > >=20 >=20 > > diff --git a/gcc/jit/dummy-frontend.cc b/gcc/jit/dummy-frontend.cc > > index 84ff359bfe3..8bb5d03d630 100644 > > --- a/gcc/jit/dummy-frontend.cc > > +++ b/gcc/jit/dummy-frontend.cc > > @@ -506,13 +506,14 @@ struct GTY(()) lang_identifier > > =C2=A0 > > =C2=A0/* The resulting tree type.=C2=A0 */ > > =C2=A0 > > +/* See lang_tree_node in gcc/c/c-decl.cc.=C2=A0 */ > > =C2=A0union GTY((desc ("TREE_CODE (&%h.generic) =3D=3D IDENTIFIER_NODE"= ), > > - =C2=A0=C2=A0 chain_next ("CODE_CONTAINS_STRUCT (TREE_CODE > > (&%h.generic), TS_COMMON) ? ((union lang_tree_node *) TREE_CHAIN > > (&%h.generic)) : NULL"))) > > -lang_tree_node > > -{ > > -=C2=A0 union tree_node GTY((tag ("0"), > > - =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 desc ("tree_node_structure (&%h= )"))) > > generic; > > -=C2=A0 struct lang_identifier GTY((tag ("1"))) identifier; > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 chain_next ("(union lang_tree_nod= e *) jit_tree_chain_next > > (&%h.generic)"))) lang_tree_node > > + { > > +=C2=A0 union tree_node GTY ((tag ("0"), > > + desc ("tree_node_structure (&%h)"))) > > +=C2=A0=C2=A0=C2=A0 generic; > > +=C2=A0 struct lang_identifier GTY ((tag ("1"))) identifier; > > =C2=A0}; >=20 > Those GTY markings on gcc/jit/dummy-frontend.cc's lang_tree_node > union > have been like that since my initial proof-of-concept patch back in > 2013: > =C2=A0 https://gcc.gnu.org/legacy-ml/gcc-patches/2013-10/msg00228.html > so presumably I simply copied and pasted that from another frontend > when I was initially prototyping libgccjit.=C2=A0 There was an element of > "cargo cult programming" as I was getting the project started. >=20 > Jakub had changed the C and C++ frontends in June 2011 with > 563007852e8d19b66ec8c1e42e431efaaa967dc6, which introduced the > c_tree_chain_next that you're now copying in your patch, so > presumably > I copied from a different frontend.=C2=A0 My notes say I created the firs= t > prototype in July 2013, so that's when I would have copied&pasted the > code. >=20 > Dave >=20 >=20 >=20 >=20 >=20 >=20