From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19617 invoked by alias); 6 Nov 2013 20:47:08 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 19602 invoked by uid 89); 6 Nov 2013 20:47:07 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.2 required=5.0 tests=AWL,BAYES_50,RDNS_NONE,SPF_HELO_PASS,SPF_PASS autolearn=no version=3.3.2 X-HELO: mx1.redhat.com Received: from Unknown (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 06 Nov 2013 20:47:06 +0000 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id rA6KkvLL009174 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Wed, 6 Nov 2013 15:46:58 -0500 Received: from stumpy.slc.redhat.com (ovpn-113-132.phx2.redhat.com [10.3.113.132]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id rA6KkvUa004438; Wed, 6 Nov 2013 15:46:57 -0500 Message-ID: <527AAAC1.6030809@redhat.com> Date: Wed, 06 Nov 2013 20:51:00 -0000 From: Jeff Law User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.0 MIME-Version: 1.0 To: Bernd Schmidt , Richard Biener CC: David Malcolm , GCC Patches , Andrew MacLeod Subject: Re: [PATCH 0/6] Conversion of gimple types to C++ inheritance (v3) References: <5271CBF9.2070005@redhat.com> <1383236801-13234-1-git-send-email-dmalcolm@redhat.com> <527960A8.7030107@redhat.com> <527A21DB.301@codesourcery.com> In-Reply-To: <527A21DB.301@codesourcery.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2013-11/txt/msg00645.txt.bz2 On 11/06/13 04:02, Bernd Schmidt wrote: > On 11/06/2013 10:31 AM, Richard Biener wrote: >> We decided to move to C++. As part of a later discussion we decided >> to go with a single general dynamic-casting style, mimicing the "real" >> C++ variant which is dynamic_cast < ... >. Which resulted in >> is-a.h. >> >> So yes, we've decided to go C++ so we have to live with certain >> uglinesses of that decisions (and maybe over time those uglinesses >> will fade away and we get used to it and like it). >> >> Thus, there isn't another option besides using the is-a.h machinery >> and enabling and using RTTI. Sticking to C for gimple doesn't seem >> to be consistent with the decision to move to C++. >> >> Oh, I'm not saying I'm a big fan of as_a / is_a or C++ in general >> as it plays out right now. But well, we've had the discussion and >> had a decision. > > Maybe we need to revisit it? As one of those who were not in favour of > the C++ move, can I ask you guys to step back for a moment and think > about - what do all of these changes buy us, exactly? Imagine the state > at the end, where everything is converted and supposedly the temporary > ugliness is gone, what have we gained over the code as it is now? I think Andrew outlined much of this at the Cauldron. I'd strongly recommend reviewing the talk/slides. My personal favorite is the type checking and everything that implies. For example, most/all of the tree checking crap just goes away as you'll almost always know what kind of tree you're working with. Checking becomes limited to locations where we we have to do conversions. It becomes a lot harder to mess something up. > > I still think all this effort is misdirected and distracts us from > making changes that improve gcc for its users. I disagree. This effort is meant to restructure GCC so that we can continue to improve it without going insane. In many respects it's similar to the tree-ssa work we undertook 10+ years ago and to some degree it's cleaning up things we decided not to deal with at that time -- namely reusing trees in gimple/ssa. jeff