From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 108409 invoked by alias); 20 Oct 2015 21:27:59 -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 108138 invoked by uid 89); 20 Oct 2015 21:27:57 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.0 required=5.0 tests=AWL,BAYES_00,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-pa0-f43.google.com Received: from mail-pa0-f43.google.com (HELO mail-pa0-f43.google.com) (209.85.220.43) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Tue, 20 Oct 2015 21:27:56 +0000 Received: by pasz6 with SMTP id z6so32276886pas.2 for ; Tue, 20 Oct 2015 14:27:54 -0700 (PDT) X-Received: by 10.69.26.7 with SMTP id iu7mr6244327pbd.27.1445376474769; Tue, 20 Oct 2015 14:27:54 -0700 (PDT) Received: from bigtime.com (cpe-50-113-10-46.hawaii.res.rr.com. [50.113.10.46]) by smtp.gmail.com with ESMTPSA id de4sm5422136pbb.60.2015.10.20.14.27.53 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 20 Oct 2015 14:27:54 -0700 (PDT) From: Richard Henderson To: gcc-patches@gcc.gnu.org Cc: richard.guenther@gmail.com Subject: [PATCH v2 02/13] Relax ADDR_SPACE_GENERIC_P checks for default address space hooks Date: Tue, 20 Oct 2015 21:28:00 -0000 Message-Id: <1445376433-14658-3-git-send-email-rth@redhat.com> In-Reply-To: <1445376433-14658-1-git-send-email-rth@redhat.com> References: <1445376433-14658-1-git-send-email-rth@redhat.com> X-IsSubscribed: yes X-SW-Source: 2015-10/txt/msg01974.txt.bz2 If all address spaces use the same modes and forms, we would be forced to replicate these hooks in the backend. Which would then require the creation of a new hook to replace target_default_pointer_address_modes_p. --- gcc/targhooks.c | 39 ++++++++++++++++----------------------- 1 file changed, 16 insertions(+), 23 deletions(-) diff --git a/gcc/targhooks.c b/gcc/targhooks.c index 5077ec9..f04964b 100644 --- a/gcc/targhooks.c +++ b/gcc/targhooks.c @@ -1181,35 +1181,31 @@ default_ref_may_alias_errno (ao_ref *ref) return false; } -/* Return the mode for a pointer to a given ADDRSPACE, defaulting to ptr_mode - for the generic address space only. */ +/* Return the mode for a pointer to a given ADDRSPACE, + defaulting to ptr_mode for all address spaces. */ machine_mode default_addr_space_pointer_mode (addr_space_t addrspace ATTRIBUTE_UNUSED) { - gcc_assert (ADDR_SPACE_GENERIC_P (addrspace)); return ptr_mode; } -/* Return the mode for an address in a given ADDRSPACE, defaulting to Pmode - for the generic address space only. */ +/* Return the mode for an address in a given ADDRSPACE, + defaulting to Pmode for all address spaces. */ machine_mode default_addr_space_address_mode (addr_space_t addrspace ATTRIBUTE_UNUSED) { - gcc_assert (ADDR_SPACE_GENERIC_P (addrspace)); return Pmode; } -/* Named address space version of valid_pointer_mode. */ +/* Named address space version of valid_pointer_mode. + To match the above, the same modes apply to all address spaces. */ bool -default_addr_space_valid_pointer_mode (machine_mode mode, addr_space_t as) +default_addr_space_valid_pointer_mode (machine_mode mode, + addr_space_t as ATTRIBUTE_UNUSED) { - if (!ADDR_SPACE_GENERIC_P (as)) - return (mode == targetm.addr_space.pointer_mode (as) - || mode == targetm.addr_space.address_mode (as)); - return targetm.valid_pointer_mode (mode); } @@ -1229,27 +1225,24 @@ target_default_pointer_address_modes_p (void) return true; } -/* Named address space version of legitimate_address_p. */ +/* Named address space version of legitimate_address_p. + By default, all address spaces have the same form. */ bool default_addr_space_legitimate_address_p (machine_mode mode, rtx mem, - bool strict, addr_space_t as) + bool strict, + addr_space_t as ATTRIBUTE_UNUSED) { - if (!ADDR_SPACE_GENERIC_P (as)) - gcc_unreachable (); - return targetm.legitimate_address_p (mode, mem, strict); } -/* Named address space version of LEGITIMIZE_ADDRESS. */ +/* Named address space version of LEGITIMIZE_ADDRESS. + By default, all address spaces have the same form. */ rtx -default_addr_space_legitimize_address (rtx x, rtx oldx, - machine_mode mode, addr_space_t as) +default_addr_space_legitimize_address (rtx x, rtx oldx, machine_mode mode, + addr_space_t as ATTRIBUTE_UNUSED) { - if (!ADDR_SPACE_GENERIC_P (as)) - return x; - return targetm.legitimize_address (x, oldx, mode); } -- 2.4.3