From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7294 invoked by alias); 4 Aug 2014 10:14:15 -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 7271 invoked by uid 89); 4 Aug 2014 10:14:13 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.1 required=5.0 tests=AWL,BAYES_00,SPF_PASS autolearn=ham version=3.3.2 X-HELO: service87.mimecast.com Received: from service87.mimecast.com (HELO service87.mimecast.com) (91.220.42.44) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 04 Aug 2014 10:14:03 +0000 Received: from cam-owa2.Emea.Arm.com (fw-tnat.cambridge.arm.com [217.140.96.21]) by service87.mimecast.com; Mon, 04 Aug 2014 11:14:00 +0100 Received: from e106375-lin.cambridge.arm.com ([10.1.255.212]) by cam-owa2.Emea.Arm.com with Microsoft SMTPSVC(6.0.3790.3959); Mon, 4 Aug 2014 11:13:57 +0100 From: James Greenhalgh To: gcc-patches@gcc.gnu.org Cc: marcus.shawcroft@arm.com, richard.earnshaw@arm.com Subject: [AArch64] Some aarch64-builtins.c cleanup. Date: Mon, 04 Aug 2014 10:14:00 -0000 Message-Id: <1407147232-16806-1-git-send-email-james.greenhalgh@arm.com> MIME-Version: 1.0 X-MC-Unique: 114080411140000101 Content-Type: multipart/mixed; boundary="------------1.8.3-rc0" X-IsSubscribed: yes X-SW-Source: 2014-08/txt/msg00221.txt.bz2 This is a multi-part message in MIME format. --------------1.8.3-rc0 Content-Type: text/plain; charset=UTF-8; format=fixed Content-Transfer-Encoding: quoted-printable Content-length: 1330 This patch removes the aarch64_simd_builtin_type enum. This is only really used for indexing in to an array of strings and an array of machine_mode. We don't need that. Given all the macro pasting we presently do in this file, just add another. Then we can store a proper machine_mode for each builtin and save the headache of keeping everything in sync. Regression tested for aarch64-none-elf. OK? Thanks, James --- gcc/ 2014-08-04 James Greenhalgh * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_type_mode): Delete. (v8qi_UP): Remap to V8QImode. (v4hi_UP): Remap to V4HImode. (v2si_UP): Remap to V2SImode. (v2sf_UP): Remap to V2SFmode. (v1df_UP): Remap to V1DFmode. (di_UP): Remap to DImode. (df_UP): Remap to DFmode. (v16qi_UP):V16QImode. (v8hi_UP): Remap to V8HImode. (v4si_UP): Remap to V4SImode. (v4sf_UP): Remap to V4SFmode. (v2di_UP): Remap to V2DImode. (v2df_UP): Remap to V2DFmode. (ti_UP): Remap to TImode. (ei_UP): Remap to EImode. (oi_UP): Remap to OImode. (ci_UP): Map to CImode. (xi_UP): Remap to XImode. (si_UP): Remap to SImode. (sf_UP): Remap to SFmode. (hi_UP): Remap to HImode. (qi_UP): Remap to QImode. (aarch64_simd_builtin_datum): Make mode a machine_mode. (VAR1): Build builtin name. (aarch64_init_simd_builtins): Remove dead code. --------------1.8.3-rc0 Content-Type: text/x-patch; name=0001-AArch64-Some-aarch64-builtins.c-cleanup.patch Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0001-AArch64-Some-aarch64-builtins.c-cleanup.patch" Content-length: 4205 diff --git a/gcc/config/aarch64/aarch64-builtins.c b/gcc/config/aarch64/aar= ch64-builtins.c index 58db77e..ba58a99 100644 --- a/gcc/config/aarch64/aarch64-builtins.c +++ b/gcc/config/aarch64/aarch64-builtins.c @@ -47,54 +47,28 @@ #include "gimple.h" #include "gimple-iterator.h" =20 -enum aarch64_simd_builtin_type_mode -{ - T_V8QI, - T_V4HI, - T_V2SI, - T_V2SF, - T_V1DF, - T_DI, - T_DF, - T_V16QI, - T_V8HI, - T_V4SI, - T_V4SF, - T_V2DI, - T_V2DF, - T_TI, - T_EI, - T_OI, - T_XI, - T_SI, - T_SF, - T_HI, - T_QI, - T_MAX -}; - -#define v8qi_UP T_V8QI -#define v4hi_UP T_V4HI -#define v2si_UP T_V2SI -#define v2sf_UP T_V2SF -#define v1df_UP T_V1DF -#define di_UP T_DI -#define df_UP T_DF -#define v16qi_UP T_V16QI -#define v8hi_UP T_V8HI -#define v4si_UP T_V4SI -#define v4sf_UP T_V4SF -#define v2di_UP T_V2DI -#define v2df_UP T_V2DF -#define ti_UP T_TI -#define ei_UP T_EI -#define oi_UP T_OI -#define xi_UP T_XI -#define si_UP T_SI -#define sf_UP T_SF -#define hi_UP T_HI -#define qi_UP T_QI - +#define v8qi_UP V8QImode +#define v4hi_UP V4HImode +#define v2si_UP V2SImode +#define v2sf_UP V2SFmode +#define v1df_UP V1DFmode +#define di_UP DImode +#define df_UP DFmode +#define v16qi_UP V16QImode +#define v8hi_UP V8HImode +#define v4si_UP V4SImode +#define v4sf_UP V4SFmode +#define v2di_UP V2DImode +#define v2df_UP V2DFmode +#define ti_UP TImode +#define ei_UP EImode +#define oi_UP OImode +#define ci_UP CImode +#define xi_UP XImode +#define si_UP SImode +#define sf_UP SFmode +#define hi_UP HImode +#define qi_UP QImode #define UP(X) X##_UP =20 #define SIMD_MAX_BUILTIN_ARGS 5 @@ -134,7 +108,7 @@ enum aarch64_type_qualifiers typedef struct { const char *name; - enum aarch64_simd_builtin_type_mode mode; + enum machine_mode mode; const enum insn_code code; unsigned int fcode; enum aarch64_type_qualifiers *qualifiers; @@ -288,7 +262,7 @@ aarch64_types_storestruct_lane_qualifiers[SIMD_MAX_BUIL= TIN_ARGS] #define CF10(N, X) CODE_FOR_##N##X =20 #define VAR1(T, N, MAP, A) \ - {#N, UP (A), CF##MAP (N, A), 0, TYPES_##T}, + {#N #A, UP (A), CF##MAP (N, A), 0, TYPES_##T}, #define VAR2(T, N, MAP, A, B) \ VAR1 (T, N, MAP, A) \ VAR1 (T, N, MAP, B) @@ -731,25 +705,10 @@ aarch64_init_simd_builtins (void) bool print_type_signature_p =3D false; char type_signature[SIMD_MAX_BUILTIN_ARGS] =3D { 0 }; aarch64_simd_builtin_datum *d =3D &aarch64_simd_builtin_data[i]; - const char *const modenames[] =3D - { - "v8qi", "v4hi", "v2si", "v2sf", "v1df", "di", "df", - "v16qi", "v8hi", "v4si", "v4sf", "v2di", "v2df", - "ti", "ei", "oi", "xi", "si", "sf", "hi", "qi" - }; - const enum machine_mode modes[] =3D - { - V8QImode, V4HImode, V2SImode, V2SFmode, V1DFmode, DImode, DFmode, - V16QImode, V8HImode, V4SImode, V4SFmode, V2DImode, - V2DFmode, TImode, EImode, OImode, XImode, SImode, - SFmode, HImode, QImode - }; char namebuf[60]; tree ftype =3D NULL; tree fndecl =3D NULL; =20 - gcc_assert (ARRAY_SIZE (modenames) =3D=3D T_MAX); - d->fcode =3D fcode; =20 /* We must track two variables here. op_num is @@ -797,7 +756,7 @@ aarch64_init_simd_builtins (void) /* Some builtins have different user-facing types for certain arguments, encoded in d->mode. */ if (qualifiers & qualifier_map_mode) - op_mode =3D modes[d->mode]; + op_mode =3D d->mode; =20 /* For pointers, we want a pointer to the basic type of the vector. */ @@ -829,11 +788,11 @@ aarch64_init_simd_builtins (void) gcc_assert (ftype !=3D NULL); =20 if (print_type_signature_p) - snprintf (namebuf, sizeof (namebuf), "__builtin_aarch64_%s%s_%s", - d->name, modenames[d->mode], type_signature); + snprintf (namebuf, sizeof (namebuf), "__builtin_aarch64_%s_%s", + d->name, type_signature); else - snprintf (namebuf, sizeof (namebuf), "__builtin_aarch64_%s%s", - d->name, modenames[d->mode]); + snprintf (namebuf, sizeof (namebuf), "__builtin_aarch64_%s", + d->name); =20 fndecl =3D add_builtin_function (namebuf, ftype, fcode, BUILT_IN_MD, NULL, NULL_TREE);= --------------1.8.3-rc0--