From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9582 invoked by alias); 4 Nov 2014 18:30:22 -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 9571 invoked by uid 89); 4 Nov 2014 18:30:21 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.2 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Tue, 04 Nov 2014 18:30:20 +0000 Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id sA4IUJvS023501 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Tue, 4 Nov 2014 13:30:19 -0500 Received: from [10.10.50.165] (vpn-50-165.rdu2.redhat.com [10.10.50.165]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id sA4IUIAf007643; Tue, 4 Nov 2014 13:30:18 -0500 Message-ID: <54591B3A.8030908@redhat.com> Date: Tue, 04 Nov 2014 18:30:00 -0000 From: Andrew MacLeod User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 MIME-Version: 1.0 To: Richard Henderson , gcc-patches CC: Jeff Law , Richard Biener Subject: Re: [patch] Provide a can_compare_and_swap_p target hook. References: <5458FE9C.2090409@redhat.com> <54590C19.40208@redhat.com> <54591348.1010904@redhat.com> <545913A4.5010400@redhat.com> In-Reply-To: <545913A4.5010400@redhat.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2014-11/txt/msg00218.txt.bz2 On 11/04/2014 12:57 PM, Richard Henderson wrote: > On 11/04/2014 06:56 PM, Andrew MacLeod wrote: >> On 11/04/2014 12:25 PM, Richard Henderson wrote: >>> On 11/04/2014 05:28 PM, Andrew MacLeod wrote: >>>> + bool >>>> + default_can_compare_and_swap_p (machine_mode mode, bool allow_libcall) >>>> + { >>>> + return can_compare_and_swap_p (mode, allow_libcall); >>>> + } >>> This is silly. I think the problem you point out can be better fixed by moving >>> the can_compare_and_swap_p prototype elsewhere. >>> >> yeah, except it uses some of the optab table stuff that is static to >> optabs.c... so the basic functionality remains there. > I said move the prototype. Of course the implementation remains where it is. > prototype is in optabs.h where it belongs since its defined in optabs.c. :-) I'm not sure why this is much different than something like the targhook for builtin_support_vector_misalignment(), other than we are calling the routine in optabs.c rather than putting the actual code in targhooks.c. from targhooks.c: bool default_builtin_support_vector_misalignment (machine_mode mode, const_tree type, <...>) { if (optab_handler (movmisalign_optab, mode) != CODE_FOR_nothing) return true; return false; } the idea is to move all the functionality that front ends need into well defined and controlled places so we can increase the separation. "can perform a compare_and_swap operation" is clearly a target specific question isn't it? Andrew