From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11918 invoked by alias); 28 Jul 2015 03:44:11 -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 11903 invoked by uid 89); 28 Jul 2015 03:44:11 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.3 required=5.0 tests=AWL,BAYES_00,KAM_LAZY_DOMAIN_SECURITY,RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: paperclip.tbsaunde.org Received: from tbsaunde.org (HELO paperclip.tbsaunde.org) (66.228.47.254) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 28 Jul 2015 03:44:10 +0000 Received: from tsaunders-iceball.corp.tor1.mozilla.com (unknown [66.207.208.102]) by paperclip.tbsaunde.org (Postfix) with ESMTPSA id C7EF6C08D; Tue, 28 Jul 2015 03:44:07 +0000 (UTC) Date: Tue, 28 Jul 2015 05:52:00 -0000 From: Trevor Saunders To: Jeff Law , Richard Biener , tbsaunde+gcc@tbsaunde.org, GCC Patches , rdsandiford@googlemail.com Subject: Re: [PATCH 0/9] start converting POINTER_SIZE to a hook Message-ID: <20150728034406.GB23293@tsaunders-iceball.corp.tor1.mozilla.com> References: <1437966615-21093-1-git-send-email-tbsaunde+gcc@tbsaunde.org> <55B658F1.10300@redhat.com> <87a8uhfjt7.fsf@googlemail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <87a8uhfjt7.fsf@googlemail.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-SW-Source: 2015-07/txt/msg02314.txt.bz2 On Mon, Jul 27, 2015 at 09:05:08PM +0100, Richard Sandiford wrote: > Jeff Law writes: > > On 07/27/2015 03:17 AM, Richard Biener wrote: > >> On Mon, Jul 27, 2015 at 5:10 AM, wrote: > >>> From: Trevor Saunders > >>> > >>> Hi, > >>> > >>> $subject. > >>> > >>> patches individually bootstrapped + regtested on x86_64-linux-gnu, and run > >>> through config-list.mk with more patches removing usage of the macro. Ok? > >> > >> With POINTER_SIZE now being expensive (target hook) you might consider > >> moving most users to use pointer_sized_int_node or some other global > >> derived from POINTER_SIZE. > >> > >> Which of course raises the question of why we are hookizing this... if you'd > >> want a truly switchable target you'd have to switch all global trees as well > >> (or hookize them individually). > > Not sure -- it doesn't remove any conditionally compiled code... > > > > One could easily argue that it's just another step on the path towards a > > switchable target -- which in and of itself is a reasonable design goal. > > > > Trevor, maybe a quick note on the motivation would help here... > > I think at least we should use data hooks rather than function hooks, > since this value should a constant within a subtarget. It should only > change for target_reinit. I agree in principal, but I wasn't sure where all I might need to change the values of the hooks, and of course I wondered if there might be some crazy target where that's not good enough. > Alternatively we could have a new target_globals structure that is > initialised with the result of calling the hook. If we do that though, > it might make sense to consolidate the hooks rather than have one for > every value. E.g. having one function for UNITS_PER_WORD, one for > POINTER_SIZE, one for Pmode, etc., would lead to some very verbose > target code. so something like struct target_types { unsigned long pointer_size; ... }; const target_types &targetm.get_type_data () ? that seems pretty reasonable, and I wouldn't expect too many ordering issues, but who knows. Its too bad nobody has taken on the big job of turning targetm into a class so we can hope for some devirt help from the compiler. thanks! Trev > > Perhaps the main problem with these approaches is ensuring that the > value is set up early enough. > > Thanks, > Richard