This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [AArch64] Emit division using the Newton series
- From: James Greenhalgh <james dot greenhalgh at arm dot com>
- To: Evandro Menezes <e dot menezes at samsung dot com>
- Cc: Wilco Dijkstra <Wilco dot Dijkstra at arm dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>, Andrew Pinski <pinskia at gmail dot com>, nd <nd at arm dot com>
- Date: Wed, 27 Apr 2016 15:15:49 +0100
- Subject: Re: [AArch64] Emit division using the Newton series
- Authentication-results: sourceware.org; auth=none
- Nodisclaimer: True
- References: <56EB0EDF dot 3060401 at samsung dot com> <56F2C329 dot 10405 at samsung dot com> <56FDA311 dot 7090309 at samsung dot com> <AM3PR08MB0088DDE6EA428B37CE090953839A0 at AM3PR08MB0088 dot eurprd08 dot prod dot outlook dot com> <56FED036 dot 2070405 at samsung dot com> <AM3PR08MB00884DBC29E8F0651E1ECEC6839A0 at AM3PR08MB0088 dot eurprd08 dot prod dot outlook dot com> <56FEEE90 dot 3070707 at samsung dot com> <AM3PR08MB008804766694273167F6E8C5839A0 at AM3PR08MB0088 dot eurprd08 dot prod dot outlook dot com> <56FEFBC1 dot 1060308 at samsung dot com> <5702BB44 dot 8000907 at samsung dot com>
- Spamdiagnosticmetadata: NSPM
- Spamdiagnosticoutput: 1:23
> diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
> index b7086dd..21af809 100644
> --- a/gcc/config/aarch64/aarch64.c
> +++ b/gcc/config/aarch64/aarch64.c
> @@ -414,7 +414,8 @@ static const struct tune_params generic_tunings =
> 0, /* max_case_values. */
> 0, /* cache_line_size. */
> tune_params::AUTOPREFETCHER_OFF, /* autoprefetcher_model. */
> - (AARCH64_EXTRA_TUNE_NONE) /* tune_flags. */
> + (AARCH64_EXTRA_TUNE_NONE), /* tune_flags. */
> + (AARCH64_APPROX_NONE) /* approx_div_modes. */
> };
>
> static const struct tune_params cortexa35_tunings =
> @@ -439,7 +440,8 @@ static const struct tune_params cortexa35_tunings =
> 0, /* max_case_values. */
> 0, /* cache_line_size. */
> tune_params::AUTOPREFETCHER_WEAK, /* autoprefetcher_model. */
> - (AARCH64_EXTRA_TUNE_NONE) /* tune_flags. */
> + (AARCH64_EXTRA_TUNE_NONE), /* tune_flags. */
> + (AARCH64_APPROX_NONE) /* approx_div_modes. */
> };
>
> static const struct tune_params cortexa53_tunings =
> @@ -464,7 +466,8 @@ static const struct tune_params cortexa53_tunings =
> 0, /* max_case_values. */
> 0, /* cache_line_size. */
> tune_params::AUTOPREFETCHER_WEAK, /* autoprefetcher_model. */
> - (AARCH64_EXTRA_TUNE_NONE) /* tune_flags. */
> + (AARCH64_EXTRA_TUNE_NONE), /* tune_flags. */
> + (AARCH64_APPROX_NONE) /* approx_div_modes. */
> };
>
> static const struct tune_params cortexa57_tunings =
> @@ -489,7 +492,8 @@ static const struct tune_params cortexa57_tunings =
> 0, /* max_case_values. */
> 0, /* cache_line_size. */
> tune_params::AUTOPREFETCHER_WEAK, /* autoprefetcher_model. */
> - (AARCH64_EXTRA_TUNE_RENAME_FMA_REGS) /* tune_flags. */
> + (AARCH64_EXTRA_TUNE_RENAME_FMA_REGS), /* tune_flags. */
> + (AARCH64_APPROX_NONE) /* approx_div_modes. */
> };
>
> static const struct tune_params cortexa72_tunings =
> @@ -514,7 +518,8 @@ static const struct tune_params cortexa72_tunings =
> 0, /* max_case_values. */
> 0, /* cache_line_size. */
> tune_params::AUTOPREFETCHER_OFF, /* autoprefetcher_model. */
> - (AARCH64_EXTRA_TUNE_NONE) /* tune_flags. */
> + (AARCH64_EXTRA_TUNE_NONE), /* tune_flags. */
> + (AARCH64_APPROX_NONE) /* approx_div_modes. */
> };
>
> static const struct tune_params exynosm1_tunings =
> @@ -538,7 +543,8 @@ static const struct tune_params exynosm1_tunings =
> 48, /* max_case_values. */
> 64, /* cache_line_size. */
> tune_params::AUTOPREFETCHER_WEAK, /* autoprefetcher_model. */
> - (AARCH64_EXTRA_TUNE_APPROX_RSQRT) /* tune_flags. */
> + (AARCH64_EXTRA_TUNE_APPROX_RSQRT), /* tune_flags. */
> + (AARCH64_APPROX_NONE) /* approx_div_modes. */
> };
>
> static const struct tune_params thunderx_tunings =
> @@ -562,7 +568,8 @@ static const struct tune_params thunderx_tunings =
> 0, /* max_case_values. */
> 0, /* cache_line_size. */
> tune_params::AUTOPREFETCHER_OFF, /* autoprefetcher_model. */
> - (AARCH64_EXTRA_TUNE_NONE) /* tune_flags. */
> + (AARCH64_EXTRA_TUNE_NONE), /* tune_flags. */
> + (AARCH64_APPROX_NONE) /* approx_div_modes. */
> };
>
> static const struct tune_params xgene1_tunings =
> @@ -586,7 +593,8 @@ static const struct tune_params xgene1_tunings =
> 0, /* max_case_values. */
> 0, /* cache_line_size. */
> tune_params::AUTOPREFETCHER_OFF, /* autoprefetcher_model. */
> - (AARCH64_EXTRA_TUNE_APPROX_RSQRT) /* tune_flags. */
> + (AARCH64_EXTRA_TUNE_APPROX_RSQRT), /* tune_flags. */
> + (AARCH64_APPROX_NONE) /* approx_div_modes. */
> };
So this is off for all cores currently supported by GCC?
I'm not sure I understand why we should take this if it will immediately
be dead code?
Thanks,
James