From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) by sourceware.org (Postfix) with ESMTPS id B6D26385843E for ; Tue, 14 Dec 2021 18:00:44 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org B6D26385843E Received: from pps.filterd (m0098414.ppops.net [127.0.0.1]) by mx0b-001b2d01.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1BEGef3M012661; Tue, 14 Dec 2021 18:00:44 GMT Received: from pps.reinject (localhost [127.0.0.1]) by mx0b-001b2d01.pphosted.com with ESMTP id 3cxy0atcvm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 14 Dec 2021 18:00:43 +0000 Received: from m0098414.ppops.net (m0098414.ppops.net [127.0.0.1]) by pps.reinject (8.16.0.43/8.16.0.43) with SMTP id 1BEHx9fT025524; Tue, 14 Dec 2021 18:00:43 GMT Received: from ppma04dal.us.ibm.com (7a.29.35a9.ip4.static.sl-reverse.com [169.53.41.122]) by mx0b-001b2d01.pphosted.com with ESMTP id 3cxy0atcv8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 14 Dec 2021 18:00:43 +0000 Received: from pps.filterd (ppma04dal.us.ibm.com [127.0.0.1]) by ppma04dal.us.ibm.com (8.16.1.2/8.16.1.2) with SMTP id 1BEHllsT015567; Tue, 14 Dec 2021 18:00:42 GMT Received: from b01cxnp22036.gho.pok.ibm.com (b01cxnp22036.gho.pok.ibm.com [9.57.198.26]) by ppma04dal.us.ibm.com with ESMTP id 3cvkmatquu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 14 Dec 2021 18:00:42 +0000 Received: from b01ledav006.gho.pok.ibm.com (b01ledav006.gho.pok.ibm.com [9.57.199.111]) by b01cxnp22036.gho.pok.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 1BEI0f7P10092980 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Dec 2021 18:00:41 GMT Received: from b01ledav006.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 26CC8AC05B; Tue, 14 Dec 2021 18:00:41 +0000 (GMT) Received: from b01ledav006.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 5384AAC06A; Tue, 14 Dec 2021 18:00:40 +0000 (GMT) Received: from [9.211.120.142] (unknown [9.211.120.142]) by b01ledav006.gho.pok.ibm.com (Postfix) with ESMTP; Tue, 14 Dec 2021 18:00:40 +0000 (GMT) Message-ID: <0853f261-3b77-67ed-a3b3-034fcd17a301@linux.ibm.com> Date: Tue, 14 Dec 2021 12:00:38 -0600 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.4.0 Reply-To: wschmidt@linux.ibm.com Subject: Re: [PATCH v2 4/6] rs6000: Remove rs6000-builtin.def and associated data and functions To: gcc-patches@gcc.gnu.org Cc: dje.gcc@gmail.com, segher@kernel.crashing.org References: <3ab6f894048e5f49252a1ea18eeca60843fbe0d3.1638820430.git.wschmidt@linux.ibm.com> From: Bill Schmidt In-Reply-To: <3ab6f894048e5f49252a1ea18eeca60843fbe0d3.1638820430.git.wschmidt@linux.ibm.com> Content-Type: text/plain; charset=UTF-8 X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: GV2wN6t1CETDqlGN2EJ4w7hmWrgT5x1R X-Proofpoint-GUID: XbGTcv0NOIFtb4F57Qpuo_hRJvLzGJsd Content-Transfer-Encoding: 8bit X-Proofpoint-UnRewURL: 0 URL was un-rewritten MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.11.62.513 definitions=2021-12-14_07,2021-12-14_01,2021-12-02_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 spamscore=0 mlxscore=0 lowpriorityscore=0 mlxlogscore=999 malwarescore=0 priorityscore=1501 adultscore=0 bulkscore=0 clxscore=1015 suspectscore=0 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2112140095 X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, NICE_REPLY_A, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP, UNWANTED_LANGUAGE_BODY autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Dec 2021 18:00:48 -0000 Ping.  Thanks! Bill On 12/6/21 2:49 PM, Bill Schmidt via Gcc-patches wrote: > Hi! > > The old rs6000-builtin.def file is no longer needed. Remove it and the code > that depends on it. > > Bootstrapped and tested on powerpc64le-linux-gnu with no regressions. Is this > okay for trunk? > > Thanks! > Bill > > 2021-12-02 Bill Schmidt > > gcc/ > * config/rs6000/rs6000-builtin.def: Delete. > * config/rs6000/rs6000-call.c (builtin_compatibility): Delete. > (builtin_description): Delete. > (builtin_hash_struct): Delete. > (builtin_hasher): Delete. > (builtin_hash_table): Delete. > (builtin_hasher::hash): Delete. > (builtin_hasher::equal): Delete. > (rs6000_builtin_info_type): Delete. > (rs6000_builtin_info): Delete. > (bdesc_compat): Delete. > (bdesc_3arg): Delete. > (bdesc_4arg): Delete. > (bdesc_dst): Delete. > (bdesc_2arg): Delete. > (bdesc_altivec_preds): Delete. > (bdesc_abs): Delete. > (bdesc_1arg): Delete. > (bdesc_0arg): Delete. > (bdesc_htm): Delete. > (bdesc_mma): Delete. > (rs6000_overloaded_builtin_p): Delete. > (rs6000_overloaded_builtin_name): Delete. > (htm_spr_num): Delete. > (rs6000_builtin_is_supported_p): Delete. > (rs6000_gimple_fold_mma_builtin): Delete. > (gt-rs6000-call.h): Remove include directive. > * config/rs6000/rs6000-protos.h (rs6000_overloaded_builtin_p): Delete. > (rs6000_builtin_is_supported_p): Delete. > (rs6000_overloaded_builtin_name): Delete. > * config/rs6000/rs6000.c (rs6000_builtin_decls): Delete. > (rs6000_debug_reg_global): Remove reference to RS6000_BUILTIN_COUNT. > * config/rs6000/rs6000.h (rs6000_builtins): Delete. > (altivec_builtin_types): Delete. > (rs6000_builtin_decls): Delete. > * config/rs6000/t-rs6000 (TM_H): Don't add rs6000-builtin.def. > --- > gcc/config/rs6000/rs6000-builtin.def | 3350 -------------------------- > gcc/config/rs6000/rs6000-call.c | 712 ------ > gcc/config/rs6000/rs6000-protos.h | 3 - > gcc/config/rs6000/rs6000.c | 3 - > gcc/config/rs6000/rs6000.h | 57 - > gcc/config/rs6000/t-rs6000 | 1 - > 6 files changed, 4126 deletions(-) > delete mode 100644 gcc/config/rs6000/rs6000-builtin.def > > diff --git a/gcc/config/rs6000/rs6000-builtin.def b/gcc/config/rs6000/rs6000-builtin.def > deleted file mode 100644 > index 9dbf16f48c4..00000000000 > diff --git a/gcc/config/rs6000/rs6000-call.c b/gcc/config/rs6000/rs6000-call.c > index 86054f75756..a5ee06c991f 100644 > --- a/gcc/config/rs6000/rs6000-call.c > +++ b/gcc/config/rs6000/rs6000-call.c > @@ -89,20 +89,6 @@ > #define TARGET_NO_PROTOTYPE 0 > #endif > > -struct builtin_compatibility > -{ > - const enum rs6000_builtins code; > - const char *const name; > -}; > - > -struct builtin_description > -{ > - const HOST_WIDE_INT mask; > - const enum insn_code icode; > - const char *const name; > - const enum rs6000_builtins code; > -}; > - > /* Used by __builtin_cpu_is(), mapping from PLATFORM names to values. */ > static const struct > { > @@ -184,127 +170,6 @@ static const struct > > static rtx rs6000_expand_new_builtin (tree, rtx, rtx, machine_mode, int); > static bool rs6000_gimple_fold_new_builtin (gimple_stmt_iterator *gsi); > - > - > -/* Hash table to keep track of the argument types for builtin functions. */ > - > -struct GTY((for_user)) builtin_hash_struct > -{ > - tree type; > - machine_mode mode[4]; /* return value + 3 arguments. */ > - unsigned char uns_p[4]; /* and whether the types are unsigned. */ > -}; > - > -struct builtin_hasher : ggc_ptr_hash > -{ > - static hashval_t hash (builtin_hash_struct *); > - static bool equal (builtin_hash_struct *, builtin_hash_struct *); > -}; > - > -static GTY (()) hash_table *builtin_hash_table; > - > -/* Hash function for builtin functions with up to 3 arguments and a return > - type. */ > -hashval_t > -builtin_hasher::hash (builtin_hash_struct *bh) > -{ > - unsigned ret = 0; > - int i; > - > - for (i = 0; i < 4; i++) > - { > - ret = (ret * (unsigned)MAX_MACHINE_MODE) + ((unsigned)bh->mode[i]); > - ret = (ret * 2) + bh->uns_p[i]; > - } > - > - return ret; > -} > - > -/* Compare builtin hash entries H1 and H2 for equivalence. */ > -bool > -builtin_hasher::equal (builtin_hash_struct *p1, builtin_hash_struct *p2) > -{ > - return ((p1->mode[0] == p2->mode[0]) > - && (p1->mode[1] == p2->mode[1]) > - && (p1->mode[2] == p2->mode[2]) > - && (p1->mode[3] == p2->mode[3]) > - && (p1->uns_p[0] == p2->uns_p[0]) > - && (p1->uns_p[1] == p2->uns_p[1]) > - && (p1->uns_p[2] == p2->uns_p[2]) > - && (p1->uns_p[3] == p2->uns_p[3])); > -} > - > - > -/* Table that classifies rs6000 builtin functions (pure, const, etc.). */ > -#undef RS6000_BUILTIN_0 > -#undef RS6000_BUILTIN_1 > -#undef RS6000_BUILTIN_2 > -#undef RS6000_BUILTIN_3 > -#undef RS6000_BUILTIN_4 > -#undef RS6000_BUILTIN_A > -#undef RS6000_BUILTIN_D > -#undef RS6000_BUILTIN_H > -#undef RS6000_BUILTIN_M > -#undef RS6000_BUILTIN_P > -#undef RS6000_BUILTIN_X > - > -#define RS6000_BUILTIN_0(ENUM, NAME, MASK, ATTR, ICODE) \ > - { NAME, ICODE, MASK, ATTR }, > - > -#define RS6000_BUILTIN_1(ENUM, NAME, MASK, ATTR, ICODE) \ > - { NAME, ICODE, MASK, ATTR }, > - > -#define RS6000_BUILTIN_2(ENUM, NAME, MASK, ATTR, ICODE) \ > - { NAME, ICODE, MASK, ATTR }, > - > -#define RS6000_BUILTIN_3(ENUM, NAME, MASK, ATTR, ICODE) \ > - { NAME, ICODE, MASK, ATTR }, > - > -#define RS6000_BUILTIN_4(ENUM, NAME, MASK, ATTR, ICODE) \ > - { NAME, ICODE, MASK, ATTR }, > - > -#define RS6000_BUILTIN_A(ENUM, NAME, MASK, ATTR, ICODE) \ > - { NAME, ICODE, MASK, ATTR }, > - > -#define RS6000_BUILTIN_D(ENUM, NAME, MASK, ATTR, ICODE) \ > - { NAME, ICODE, MASK, ATTR }, > - > -#define RS6000_BUILTIN_H(ENUM, NAME, MASK, ATTR, ICODE) \ > - { NAME, ICODE, MASK, ATTR }, > - > -#define RS6000_BUILTIN_M(ENUM, NAME, MASK, ATTR, ICODE) \ > - { NAME, ICODE, MASK, ATTR }, > - > -#define RS6000_BUILTIN_P(ENUM, NAME, MASK, ATTR, ICODE) \ > - { NAME, ICODE, MASK, ATTR }, > - > -#define RS6000_BUILTIN_X(ENUM, NAME, MASK, ATTR, ICODE) \ > - { NAME, ICODE, MASK, ATTR }, > - > -struct rs6000_builtin_info_type { > - const char *name; > - const enum insn_code icode; > - const HOST_WIDE_INT mask; > - const unsigned attr; > -}; > - > -static const struct rs6000_builtin_info_type rs6000_builtin_info[] = > -{ > -#include "rs6000-builtin.def" > -}; > - > -#undef RS6000_BUILTIN_0 > -#undef RS6000_BUILTIN_1 > -#undef RS6000_BUILTIN_2 > -#undef RS6000_BUILTIN_3 > -#undef RS6000_BUILTIN_4 > -#undef RS6000_BUILTIN_A > -#undef RS6000_BUILTIN_D > -#undef RS6000_BUILTIN_H > -#undef RS6000_BUILTIN_M > -#undef RS6000_BUILTIN_P > -#undef RS6000_BUILTIN_X > - > > /* Nonzero if we can use a floating-point register to pass this arg. */ > #define USE_FP_FOR_ARG_P(CUM,MODE) \ > @@ -3130,367 +2995,6 @@ const char *rs6000_type_string (tree type_node) > return "unknown"; > } > > -static const struct builtin_compatibility bdesc_compat[] = > -{ > -#define RS6000_BUILTIN_COMPAT > -#include "rs6000-builtin.def" > -}; > -#undef RS6000_BUILTIN_COMPAT > - > -/* Simple ternary operations: VECd = foo (VECa, VECb, VECc). */ > - > -#undef RS6000_BUILTIN_0 > -#undef RS6000_BUILTIN_1 > -#undef RS6000_BUILTIN_2 > -#undef RS6000_BUILTIN_3 > -#undef RS6000_BUILTIN_4 > -#undef RS6000_BUILTIN_A > -#undef RS6000_BUILTIN_D > -#undef RS6000_BUILTIN_H > -#undef RS6000_BUILTIN_M > -#undef RS6000_BUILTIN_P > -#undef RS6000_BUILTIN_X > - > -#define RS6000_BUILTIN_0(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_1(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_2(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_3(ENUM, NAME, MASK, ATTR, ICODE) \ > - { MASK, ICODE, NAME, ENUM }, > - > -#define RS6000_BUILTIN_4(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_A(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_D(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_H(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_M(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_P(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_X(ENUM, NAME, MASK, ATTR, ICODE) > - > -static const struct builtin_description bdesc_3arg[] = > -{ > -#include "rs6000-builtin.def" > -}; > - > -/* Simple quaternary operations: VECd = foo (VECa, VECb, VECc, VECd). */ > - > -#undef RS6000_BUILTIN_0 > -#undef RS6000_BUILTIN_1 > -#undef RS6000_BUILTIN_2 > -#undef RS6000_BUILTIN_3 > -#undef RS6000_BUILTIN_4 > -#undef RS6000_BUILTIN_A > -#undef RS6000_BUILTIN_D > -#undef RS6000_BUILTIN_H > -#undef RS6000_BUILTIN_M > -#undef RS6000_BUILTIN_P > -#undef RS6000_BUILTIN_X > - > -#define RS6000_BUILTIN_0(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_1(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_2(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_3(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_4(ENUM, NAME, MASK, ATTR, ICODE) \ > - { MASK, ICODE, NAME, ENUM }, > - > -#define RS6000_BUILTIN_A(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_D(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_H(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_M(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_P(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_X(ENUM, NAME, MASK, ATTR, ICODE) > - > -static const struct builtin_description bdesc_4arg[] = > -{ > -#include "rs6000-builtin.def" > -}; > - > -/* DST operations: void foo (void *, const int, const char). */ > - > -#undef RS6000_BUILTIN_0 > -#undef RS6000_BUILTIN_1 > -#undef RS6000_BUILTIN_2 > -#undef RS6000_BUILTIN_3 > -#undef RS6000_BUILTIN_4 > -#undef RS6000_BUILTIN_A > -#undef RS6000_BUILTIN_D > -#undef RS6000_BUILTIN_H > -#undef RS6000_BUILTIN_M > -#undef RS6000_BUILTIN_P > -#undef RS6000_BUILTIN_X > - > -#define RS6000_BUILTIN_0(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_1(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_2(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_3(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_4(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_A(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_D(ENUM, NAME, MASK, ATTR, ICODE) \ > - { MASK, ICODE, NAME, ENUM }, > - > -#define RS6000_BUILTIN_H(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_M(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_P(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_X(ENUM, NAME, MASK, ATTR, ICODE) > - > -static const struct builtin_description bdesc_dst[] = > -{ > -#include "rs6000-builtin.def" > -}; > - > -/* Simple binary operations: VECc = foo (VECa, VECb). */ > - > -#undef RS6000_BUILTIN_0 > -#undef RS6000_BUILTIN_1 > -#undef RS6000_BUILTIN_2 > -#undef RS6000_BUILTIN_3 > -#undef RS6000_BUILTIN_4 > -#undef RS6000_BUILTIN_A > -#undef RS6000_BUILTIN_D > -#undef RS6000_BUILTIN_H > -#undef RS6000_BUILTIN_M > -#undef RS6000_BUILTIN_P > -#undef RS6000_BUILTIN_X > - > -#define RS6000_BUILTIN_0(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_1(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_2(ENUM, NAME, MASK, ATTR, ICODE) \ > - { MASK, ICODE, NAME, ENUM }, > - > -#define RS6000_BUILTIN_3(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_4(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_A(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_D(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_H(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_M(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_P(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_X(ENUM, NAME, MASK, ATTR, ICODE) > - > -static const struct builtin_description bdesc_2arg[] = > -{ > -#include "rs6000-builtin.def" > -}; > - > -#undef RS6000_BUILTIN_0 > -#undef RS6000_BUILTIN_1 > -#undef RS6000_BUILTIN_2 > -#undef RS6000_BUILTIN_3 > -#undef RS6000_BUILTIN_4 > -#undef RS6000_BUILTIN_A > -#undef RS6000_BUILTIN_D > -#undef RS6000_BUILTIN_H > -#undef RS6000_BUILTIN_M > -#undef RS6000_BUILTIN_P > -#undef RS6000_BUILTIN_X > - > -#define RS6000_BUILTIN_0(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_1(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_2(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_3(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_4(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_A(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_D(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_H(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_M(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_P(ENUM, NAME, MASK, ATTR, ICODE) \ > - { MASK, ICODE, NAME, ENUM }, > - > -#define RS6000_BUILTIN_X(ENUM, NAME, MASK, ATTR, ICODE) > - > -/* AltiVec predicates. */ > - > -static const struct builtin_description bdesc_altivec_preds[] = > -{ > -#include "rs6000-builtin.def" > -}; > - > -/* ABS* operations. */ > - > -#undef RS6000_BUILTIN_0 > -#undef RS6000_BUILTIN_1 > -#undef RS6000_BUILTIN_2 > -#undef RS6000_BUILTIN_3 > -#undef RS6000_BUILTIN_4 > -#undef RS6000_BUILTIN_A > -#undef RS6000_BUILTIN_D > -#undef RS6000_BUILTIN_H > -#undef RS6000_BUILTIN_M > -#undef RS6000_BUILTIN_P > -#undef RS6000_BUILTIN_X > - > -#define RS6000_BUILTIN_0(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_1(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_2(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_3(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_4(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_A(ENUM, NAME, MASK, ATTR, ICODE) \ > - { MASK, ICODE, NAME, ENUM }, > - > -#define RS6000_BUILTIN_D(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_H(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_M(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_P(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_X(ENUM, NAME, MASK, ATTR, ICODE) > - > -static const struct builtin_description bdesc_abs[] = > -{ > -#include "rs6000-builtin.def" > -}; > - > -/* Simple unary operations: VECb = foo (unsigned literal) or VECb = > - foo (VECa). */ > - > -#undef RS6000_BUILTIN_0 > -#undef RS6000_BUILTIN_1 > -#undef RS6000_BUILTIN_2 > -#undef RS6000_BUILTIN_3 > -#undef RS6000_BUILTIN_4 > -#undef RS6000_BUILTIN_A > -#undef RS6000_BUILTIN_D > -#undef RS6000_BUILTIN_H > -#undef RS6000_BUILTIN_M > -#undef RS6000_BUILTIN_P > -#undef RS6000_BUILTIN_X > - > -#define RS6000_BUILTIN_0(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_1(ENUM, NAME, MASK, ATTR, ICODE) \ > - { MASK, ICODE, NAME, ENUM }, > - > -#define RS6000_BUILTIN_2(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_3(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_4(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_A(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_D(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_H(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_M(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_P(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_X(ENUM, NAME, MASK, ATTR, ICODE) > - > -static const struct builtin_description bdesc_1arg[] = > -{ > -#include "rs6000-builtin.def" > -}; > - > -/* Simple no-argument operations: result = __builtin_darn_32 () */ > - > -#undef RS6000_BUILTIN_0 > -#undef RS6000_BUILTIN_1 > -#undef RS6000_BUILTIN_2 > -#undef RS6000_BUILTIN_3 > -#undef RS6000_BUILTIN_4 > -#undef RS6000_BUILTIN_A > -#undef RS6000_BUILTIN_D > -#undef RS6000_BUILTIN_H > -#undef RS6000_BUILTIN_M > -#undef RS6000_BUILTIN_P > -#undef RS6000_BUILTIN_X > - > -#define RS6000_BUILTIN_0(ENUM, NAME, MASK, ATTR, ICODE) \ > - { MASK, ICODE, NAME, ENUM }, > - > -#define RS6000_BUILTIN_1(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_2(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_3(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_4(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_A(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_D(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_H(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_M(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_P(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_X(ENUM, NAME, MASK, ATTR, ICODE) > - > -static const struct builtin_description bdesc_0arg[] = > -{ > -#include "rs6000-builtin.def" > -}; > - > -/* HTM builtins. */ > -#undef RS6000_BUILTIN_0 > -#undef RS6000_BUILTIN_1 > -#undef RS6000_BUILTIN_2 > -#undef RS6000_BUILTIN_3 > -#undef RS6000_BUILTIN_4 > -#undef RS6000_BUILTIN_A > -#undef RS6000_BUILTIN_D > -#undef RS6000_BUILTIN_H > -#undef RS6000_BUILTIN_M > -#undef RS6000_BUILTIN_P > -#undef RS6000_BUILTIN_X > - > -#define RS6000_BUILTIN_0(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_1(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_2(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_3(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_4(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_A(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_D(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_H(ENUM, NAME, MASK, ATTR, ICODE) \ > - { MASK, ICODE, NAME, ENUM }, > - > -#define RS6000_BUILTIN_M(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_P(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_X(ENUM, NAME, MASK, ATTR, ICODE) > - > -static const struct builtin_description bdesc_htm[] = > -{ > -#include "rs6000-builtin.def" > -}; > - > -/* MMA builtins. */ > -#undef RS6000_BUILTIN_0 > -#undef RS6000_BUILTIN_1 > -#undef RS6000_BUILTIN_2 > -#undef RS6000_BUILTIN_3 > -#undef RS6000_BUILTIN_4 > -#undef RS6000_BUILTIN_A > -#undef RS6000_BUILTIN_D > -#undef RS6000_BUILTIN_H > -#undef RS6000_BUILTIN_M > -#undef RS6000_BUILTIN_P > -#undef RS6000_BUILTIN_X > - > -#define RS6000_BUILTIN_0(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_1(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_2(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_3(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_4(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_A(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_D(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_H(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_M(ENUM, NAME, MASK, ATTR, ICODE) \ > - { MASK, ICODE, NAME, ENUM }, > - > -#define RS6000_BUILTIN_P(ENUM, NAME, MASK, ATTR, ICODE) > -#define RS6000_BUILTIN_X(ENUM, NAME, MASK, ATTR, ICODE) > - > -static const struct builtin_description bdesc_mma[] = > -{ > -#include "rs6000-builtin.def" > -}; > - > -#undef RS6000_BUILTIN_0 > -#undef RS6000_BUILTIN_1 > -#undef RS6000_BUILTIN_2 > -#undef RS6000_BUILTIN_3 > -#undef RS6000_BUILTIN_4 > -#undef RS6000_BUILTIN_A > -#undef RS6000_BUILTIN_D > -#undef RS6000_BUILTIN_H > -#undef RS6000_BUILTIN_M > -#undef RS6000_BUILTIN_P > -#undef RS6000_BUILTIN_X > - > -/* Return true if a builtin function is overloaded. */ > -bool > -rs6000_overloaded_builtin_p (enum rs6000_builtins fncode) > -{ > - return (rs6000_builtin_info[(int)fncode].attr & RS6000_BTC_OVERLOADED) != 0; > -} > - > -const char * > -rs6000_overloaded_builtin_name (enum rs6000_builtins fncode) > -{ > - return rs6000_builtin_info[(int)fncode].name; > -} > - > static rtx > altivec_expand_predicate_builtin (enum insn_code icode, tree exp, rtx target) > { > @@ -3611,24 +3115,6 @@ swap_endian_selector_for_mode (machine_mode mode) > gen_rtvec_v (16, perm))); > } > > -/* Return the appropriate SPR number associated with the given builtin. */ > -static inline HOST_WIDE_INT > -htm_spr_num (enum rs6000_builtins code) > -{ > - if (code == HTM_BUILTIN_GET_TFHAR > - || code == HTM_BUILTIN_SET_TFHAR) > - return TFHAR_SPR; > - else if (code == HTM_BUILTIN_GET_TFIAR > - || code == HTM_BUILTIN_SET_TFIAR) > - return TFIAR_SPR; > - else if (code == HTM_BUILTIN_GET_TEXASR > - || code == HTM_BUILTIN_SET_TEXASR) > - return TEXASR_SPR; > - gcc_assert (code == HTM_BUILTIN_GET_TEXASRU > - || code == HTM_BUILTIN_SET_TEXASRU); > - return TEXASRU_SPR; > -} > - > /* Return the correct ICODE value depending on whether we are > setting or reading the HTM SPRs. */ > static inline enum insn_code > @@ -3768,18 +3254,6 @@ altivec_expand_vec_ext_builtin (tree exp, rtx target) > return target; > } > > -/* Check whether a builtin function is supported in this target > - configuration. */ > -bool > -rs6000_builtin_is_supported_p (enum rs6000_builtins fncode) > -{ > - HOST_WIDE_INT fnmask = rs6000_builtin_info[fncode].mask; > - if ((fnmask & rs6000_builtin_mask) != fnmask) > - return false; > - else > - return true; > -} > - > /* Raise an error message for a builtin function that is called without the > appropriate target options being set. */ > > @@ -4005,190 +3479,6 @@ fold_mergeeo_helper (gimple_stmt_iterator *gsi, gimple *stmt, int use_odd) > gsi_replace (gsi, g, true); > } > > -/* Expand the MMA built-ins early, so that we can convert the pass-by-reference > - __vector_quad arguments into pass-by-value arguments, leading to more > - efficient code generation. */ > - > -bool > -rs6000_gimple_fold_mma_builtin (gimple_stmt_iterator *gsi) > -{ > - gimple *stmt = gsi_stmt (*gsi); > - tree fndecl = gimple_call_fndecl (stmt); > - enum rs6000_builtins fncode > - = (enum rs6000_builtins) DECL_MD_FUNCTION_CODE (fndecl); > - unsigned attr = rs6000_builtin_info[fncode].attr; > - > - if ((attr & RS6000_BTC_GIMPLE) == 0) > - return false; > - > - unsigned nopnds = (attr & RS6000_BTC_OPND_MASK); > - gimple_seq new_seq = NULL; > - gimple *new_call; > - tree new_decl; > - > - if (fncode == MMA_BUILTIN_DISASSEMBLE_ACC > - || fncode == VSX_BUILTIN_DISASSEMBLE_PAIR) > - { > - /* This is an MMA disassemble built-in function. */ > - push_gimplify_context (true); > - unsigned nvec = (fncode == MMA_BUILTIN_DISASSEMBLE_ACC) ? 4 : 2; > - tree dst_ptr = gimple_call_arg (stmt, 0); > - tree src_ptr = gimple_call_arg (stmt, 1); > - tree src_type = TREE_TYPE (src_ptr); > - tree src = create_tmp_reg_or_ssa_name (TREE_TYPE (src_type)); > - gimplify_assign (src, build_simple_mem_ref (src_ptr), &new_seq); > - > - /* If we are not disassembling an accumulator/pair or our destination is > - another accumulator/pair, then just copy the entire thing as is. */ > - if ((fncode == MMA_BUILTIN_DISASSEMBLE_ACC > - && TREE_TYPE (TREE_TYPE (dst_ptr)) == vector_quad_type_node) > - || (fncode == VSX_BUILTIN_DISASSEMBLE_PAIR > - && TREE_TYPE (TREE_TYPE (dst_ptr)) == vector_pair_type_node)) > - { > - tree dst = build_simple_mem_ref (build1 (VIEW_CONVERT_EXPR, > - src_type, dst_ptr)); > - gimplify_assign (dst, src, &new_seq); > - pop_gimplify_context (NULL); > - gsi_replace_with_seq (gsi, new_seq, true); > - return true; > - } > - > - /* If we're disassembling an accumulator into a different type, we need > - to emit a xxmfacc instruction now, since we cannot do it later. */ > - if (fncode == MMA_BUILTIN_DISASSEMBLE_ACC) > - { > - new_decl = rs6000_builtin_decls[MMA_BUILTIN_XXMFACC_INTERNAL]; > - new_call = gimple_build_call (new_decl, 1, src); > - src = create_tmp_reg_or_ssa_name (vector_quad_type_node); > - gimple_call_set_lhs (new_call, src); > - gimple_seq_add_stmt (&new_seq, new_call); > - } > - > - /* Copy the accumulator/pair vector by vector. */ > - new_decl = rs6000_builtin_decls[fncode + 1]; > - tree dst_type = build_pointer_type_for_mode (unsigned_V16QI_type_node, > - ptr_mode, true); > - tree dst_base = build1 (VIEW_CONVERT_EXPR, dst_type, dst_ptr); > - for (unsigned i = 0; i < nvec; i++) > - { > - unsigned index = WORDS_BIG_ENDIAN ? i : nvec - 1 - i; > - tree dst = build2 (MEM_REF, unsigned_V16QI_type_node, dst_base, > - build_int_cst (dst_type, index * 16)); > - tree dstssa = create_tmp_reg_or_ssa_name (unsigned_V16QI_type_node); > - new_call = gimple_build_call (new_decl, 2, src, > - build_int_cstu (uint16_type_node, i)); > - gimple_call_set_lhs (new_call, dstssa); > - gimple_seq_add_stmt (&new_seq, new_call); > - gimplify_assign (dst, dstssa, &new_seq); > - } > - pop_gimplify_context (NULL); > - gsi_replace_with_seq (gsi, new_seq, true); > - return true; > - } > - else if (fncode == VSX_BUILTIN_LXVP) > - { > - push_gimplify_context (true); > - tree offset = gimple_call_arg (stmt, 0); > - tree ptr = gimple_call_arg (stmt, 1); > - tree lhs = gimple_call_lhs (stmt); > - if (TREE_TYPE (TREE_TYPE (ptr)) != vector_pair_type_node) > - ptr = build1 (VIEW_CONVERT_EXPR, > - build_pointer_type (vector_pair_type_node), ptr); > - tree mem = build_simple_mem_ref (build2 (POINTER_PLUS_EXPR, > - TREE_TYPE (ptr), ptr, offset)); > - gimplify_assign (lhs, mem, &new_seq); > - pop_gimplify_context (NULL); > - gsi_replace_with_seq (gsi, new_seq, true); > - return true; > - } > - else if (fncode == VSX_BUILTIN_STXVP) > - { > - push_gimplify_context (true); > - tree src = gimple_call_arg (stmt, 0); > - tree offset = gimple_call_arg (stmt, 1); > - tree ptr = gimple_call_arg (stmt, 2); > - if (TREE_TYPE (TREE_TYPE (ptr)) != vector_pair_type_node) > - ptr = build1 (VIEW_CONVERT_EXPR, > - build_pointer_type (vector_pair_type_node), ptr); > - tree mem = build_simple_mem_ref (build2 (POINTER_PLUS_EXPR, > - TREE_TYPE (ptr), ptr, offset)); > - gimplify_assign (mem, src, &new_seq); > - pop_gimplify_context (NULL); > - gsi_replace_with_seq (gsi, new_seq, true); > - return true; > - } > - > - /* Convert this built-in into an internal version that uses pass-by-value > - arguments. The internal built-in follows immediately after this one. */ > - new_decl = rs6000_builtin_decls[fncode + 1]; > - tree lhs, op[MAX_MMA_OPERANDS]; > - tree acc = gimple_call_arg (stmt, 0); > - push_gimplify_context (true); > - > - if ((attr & RS6000_BTC_QUAD) != 0) > - { > - /* This built-in has a pass-by-reference accumulator input, so load it > - into a temporary accumulator for use as a pass-by-value input. */ > - op[0] = create_tmp_reg_or_ssa_name (vector_quad_type_node); > - for (unsigned i = 1; i < nopnds; i++) > - op[i] = gimple_call_arg (stmt, i); > - gimplify_assign (op[0], build_simple_mem_ref (acc), &new_seq); > - } > - else > - { > - /* This built-in does not use its pass-by-reference accumulator argument > - as an input argument, so remove it from the input list. */ > - nopnds--; > - for (unsigned i = 0; i < nopnds; i++) > - op[i] = gimple_call_arg (stmt, i + 1); > - } > - > - switch (nopnds) > - { > - case 0: > - new_call = gimple_build_call (new_decl, 0); > - break; > - case 1: > - new_call = gimple_build_call (new_decl, 1, op[0]); > - break; > - case 2: > - new_call = gimple_build_call (new_decl, 2, op[0], op[1]); > - break; > - case 3: > - new_call = gimple_build_call (new_decl, 3, op[0], op[1], op[2]); > - break; > - case 4: > - new_call = gimple_build_call (new_decl, 4, op[0], op[1], op[2], op[3]); > - break; > - case 5: > - new_call = gimple_build_call (new_decl, 5, op[0], op[1], op[2], op[3], > - op[4]); > - break; > - case 6: > - new_call = gimple_build_call (new_decl, 6, op[0], op[1], op[2], op[3], > - op[4], op[5]); > - break; > - case 7: > - new_call = gimple_build_call (new_decl, 7, op[0], op[1], op[2], op[3], > - op[4], op[5], op[6]); > - break; > - default: > - gcc_unreachable (); > - } > - > - if (fncode == VSX_BUILTIN_BUILD_PAIR || fncode == VSX_BUILTIN_ASSEMBLE_PAIR) > - lhs = create_tmp_reg_or_ssa_name (vector_pair_type_node); > - else > - lhs = create_tmp_reg_or_ssa_name (vector_quad_type_node); > - gimple_call_set_lhs (new_call, lhs); > - gimple_seq_add_stmt (&new_seq, new_call); > - gimplify_assign (build_simple_mem_ref (acc), lhs, &new_seq); > - pop_gimplify_context (NULL); > - gsi_replace_with_seq (gsi, new_seq, true); > - > - return true; > -} > - > /* Fold a machine-dependent built-in in GIMPLE. (For folding into > a constant, use rs6000_fold_builtin.) */ > > @@ -7255,5 +6545,3 @@ rs6000_output_mi_thunk (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED, > reload_completed = 0; > epilogue_completed = 0; > } > - > -#include "gt-rs6000-call.h" > diff --git a/gcc/config/rs6000/rs6000-protos.h b/gcc/config/rs6000/rs6000-protos.h > index 14f6b313105..c01ae005d0b 100644 > --- a/gcc/config/rs6000/rs6000-protos.h > +++ b/gcc/config/rs6000/rs6000-protos.h > @@ -272,9 +272,6 @@ extern void rs6000_call_darwin (rtx, rtx, rtx, rtx); > extern void rs6000_sibcall_darwin (rtx, rtx, rtx, rtx); > extern void rs6000_aix_asm_output_dwarf_table_ref (char *); > extern void get_ppc476_thunk_name (char name[32]); > -extern bool rs6000_overloaded_builtin_p (enum rs6000_builtins); > -extern bool rs6000_builtin_is_supported_p (enum rs6000_builtins); > -extern const char *rs6000_overloaded_builtin_name (enum rs6000_builtins); > extern int rs6000_store_data_bypass_p (rtx_insn *, rtx_insn *); > extern HOST_WIDE_INT rs6000_builtin_mask_calculate (void); > extern void rs6000_asm_output_dwarf_pcrel (FILE *file, int size, > diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c > index 70df511ff98..4479c569476 100644 > --- a/gcc/config/rs6000/rs6000.c > +++ b/gcc/config/rs6000/rs6000.c > @@ -171,7 +171,6 @@ static int dbg_cost_ctrl; > > /* Built in types. */ > tree rs6000_builtin_types[RS6000_BTI_MAX]; > -tree rs6000_builtin_decls[RS6000_BUILTIN_COUNT]; > > /* Flag to say the TOC is initialized */ > int toc_initialized, need_toc_init; > @@ -2585,8 +2584,6 @@ rs6000_debug_reg_global (void) > (int)rs6000_sched_restricted_insns_priority); > fprintf (stderr, DEBUG_FMT_D, "Number of standard builtins", > (int)END_BUILTINS); > - fprintf (stderr, DEBUG_FMT_D, "Number of rs6000 builtins", > - (int)RS6000_BUILTIN_COUNT); > > fprintf (stderr, DEBUG_FMT_D, "Enable float128 on VSX", > (int)TARGET_FLOAT128_ENABLE_TYPE); > diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h > index b12ee8bfe5b..4d2f88d4218 100644 > --- a/gcc/config/rs6000/rs6000.h > +++ b/gcc/config/rs6000/rs6000.h > @@ -2344,62 +2344,6 @@ extern int frame_pointer_needed; > | RS6000_BTM_MMA \ > | RS6000_BTM_P10) > > -/* Define builtin enum index. */ > - > -#undef RS6000_BUILTIN_0 > -#undef RS6000_BUILTIN_1 > -#undef RS6000_BUILTIN_2 > -#undef RS6000_BUILTIN_3 > -#undef RS6000_BUILTIN_4 > -#undef RS6000_BUILTIN_A > -#undef RS6000_BUILTIN_D > -#undef RS6000_BUILTIN_H > -#undef RS6000_BUILTIN_M > -#undef RS6000_BUILTIN_P > -#undef RS6000_BUILTIN_X > - > -#define RS6000_BUILTIN_0(ENUM, NAME, MASK, ATTR, ICODE) ENUM, > -#define RS6000_BUILTIN_1(ENUM, NAME, MASK, ATTR, ICODE) ENUM, > -#define RS6000_BUILTIN_2(ENUM, NAME, MASK, ATTR, ICODE) ENUM, > -#define RS6000_BUILTIN_3(ENUM, NAME, MASK, ATTR, ICODE) ENUM, > -#define RS6000_BUILTIN_4(ENUM, NAME, MASK, ATTR, ICODE) ENUM, > -#define RS6000_BUILTIN_A(ENUM, NAME, MASK, ATTR, ICODE) ENUM, > -#define RS6000_BUILTIN_D(ENUM, NAME, MASK, ATTR, ICODE) ENUM, > -#define RS6000_BUILTIN_H(ENUM, NAME, MASK, ATTR, ICODE) ENUM, > -#define RS6000_BUILTIN_M(ENUM, NAME, MASK, ATTR, ICODE) ENUM, > -#define RS6000_BUILTIN_P(ENUM, NAME, MASK, ATTR, ICODE) ENUM, > -#define RS6000_BUILTIN_X(ENUM, NAME, MASK, ATTR, ICODE) ENUM, > - > -enum rs6000_builtins > -{ > -#include "rs6000-builtin.def" > - > - RS6000_BUILTIN_COUNT > -}; > - > -#undef RS6000_BUILTIN_0 > -#undef RS6000_BUILTIN_1 > -#undef RS6000_BUILTIN_2 > -#undef RS6000_BUILTIN_3 > -#undef RS6000_BUILTIN_4 > -#undef RS6000_BUILTIN_A > -#undef RS6000_BUILTIN_D > -#undef RS6000_BUILTIN_H > -#undef RS6000_BUILTIN_M > -#undef RS6000_BUILTIN_P > -#undef RS6000_BUILTIN_X > - > -/* Mappings for overloaded builtins. */ > -struct altivec_builtin_types > -{ > - enum rs6000_builtins code; > - enum rs6000_builtins overloaded_code; > - signed char ret_type; > - signed char op1; > - signed char op2; > - signed char op3; > -}; > - > enum rs6000_builtin_type_index > { > RS6000_BTI_NOT_OPAQUE, > @@ -2600,7 +2544,6 @@ enum rs6000_builtin_type_index > #define ptr_long_long_unsigned_type_node (rs6000_builtin_types[RS6000_BTI_ptr_long_long_unsigned]) > > extern GTY(()) tree rs6000_builtin_types[RS6000_BTI_MAX]; > -extern GTY(()) tree rs6000_builtin_decls[RS6000_BUILTIN_COUNT]; > > #ifndef USED_FOR_TARGET > extern GTY(()) tree builtin_mode_to_type[MAX_MACHINE_MODE][2]; > diff --git a/gcc/config/rs6000/t-rs6000 b/gcc/config/rs6000/t-rs6000 > index 3d3143a171d..98ddd977f96 100644 > --- a/gcc/config/rs6000/t-rs6000 > +++ b/gcc/config/rs6000/t-rs6000 > @@ -18,7 +18,6 @@ > # along with GCC; see the file COPYING3. If not see > # . > > -TM_H += $(srcdir)/config/rs6000/rs6000-builtin.def > TM_H += $(srcdir)/config/rs6000/rs6000-cpus.def > TM_H += $(srcdir)/config/rs6000/rs6000-modes.h > PASSES_EXTRA += $(srcdir)/config/rs6000/rs6000-passes.def