arm: Fix parsecpu.awk for aliases [PR113030]

Message ID 20240121072953.2241859-1-quic_apinski@quicinc.com
State Accepted
Headers
Series arm: Fix parsecpu.awk for aliases [PR113030] |

Checks

Context Check Description
snail/gcc-patch-check success Github commit url

Commit Message

Andrew Pinski (QUIC) Jan. 21, 2024, 7:29 a.m. UTC
  So the problem here is the 2 functions check_cpu and check_arch use
the wrong variable to check if an alias is valid for that cpu/arch.
check_cpu uses cpu_optaliases instead of cpu_opt_alias. cpu_optaliases
is an array of index'ed by the cpuname that contains all of the valid aliases
for that cpu but cpu_opt_alias is an double index array which is index'ed
by cpuname and the alias which provides what is the alias for that option.
Similar thing happens for check_arch and arch_optaliases vs arch_optaliases.

Tested by running:
```
awk -f config/arm/parsecpu.awk -v cmd="chkarch armv7-a+simd" config/arm/arm-cpus.in
awk -f config/arm/parsecpu.awk -v cmd="chkarch armv7-a+neon" config/arm/arm-cpus.in
awk -f config/arm/parsecpu.awk -v cmd="chkarch armv7-a+neon-vfpv3" config/arm/arm-cpus.in
```
And they don't return error back.

gcc/ChangeLog:

	PR target/113030
	* config/arm/parsecpu.awk (check_cpu): Use cpu_opt_alias
	instead of cpu_optaliases.
	(check_arch): Use arch_opt_alias instead of arch_optaliases.

Signed-off-by: Andrew Pinski <quic_apinski@quicinc.com>
---
 gcc/config/arm/parsecpu.awk | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
  

Comments

Richard Earnshaw (lists) Jan. 22, 2024, 3:48 p.m. UTC | #1
On 21/01/2024 07:29, Andrew Pinski wrote:
> So the problem here is the 2 functions check_cpu and check_arch use
> the wrong variable to check if an alias is valid for that cpu/arch.
> check_cpu uses cpu_optaliases instead of cpu_opt_alias. cpu_optaliases
> is an array of index'ed by the cpuname that contains all of the valid aliases
> for that cpu but cpu_opt_alias is an double index array which is index'ed
> by cpuname and the alias which provides what is the alias for that option.
> Similar thing happens for check_arch and arch_optaliases vs arch_optaliases.
> 
> Tested by running:
> ```
> awk -f config/arm/parsecpu.awk -v cmd="chkarch armv7-a+simd" config/arm/arm-cpus.in
> awk -f config/arm/parsecpu.awk -v cmd="chkarch armv7-a+neon" config/arm/arm-cpus.in
> awk -f config/arm/parsecpu.awk -v cmd="chkarch armv7-a+neon-vfpv3" config/arm/arm-cpus.in
> ```
> And they don't return error back.
> 
> gcc/ChangeLog:
> 
> 	PR target/113030
> 	* config/arm/parsecpu.awk (check_cpu): Use cpu_opt_alias
> 	instead of cpu_optaliases.
> 	(check_arch): Use arch_opt_alias instead of arch_optaliases.

OK

Thanks,

R.

> 
> Signed-off-by: Andrew Pinski <quic_apinski@quicinc.com>
> ---
>  gcc/config/arm/parsecpu.awk | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/gcc/config/arm/parsecpu.awk b/gcc/config/arm/parsecpu.awk
> index ddd4f3b440a..384462bdb5b 100644
> --- a/gcc/config/arm/parsecpu.awk
> +++ b/gcc/config/arm/parsecpu.awk
> @@ -529,7 +529,7 @@ function check_cpu (name) {
>  
>      for (n = 2; n <= exts; n++) {
>  	if (!((cpu_name, extensions[n]) in cpu_opt_remove)	\
> -	    && !((cpu_name, extensions[n]) in cpu_optaliases)) {
> +	    && !((cpu_name, extensions[n]) in cpu_opt_alias)) {
>  	    return "error"
>  	}
>      }
> @@ -552,7 +552,7 @@ function check_arch (name) {
>  
>      for (n = 2; n <= exts; n++) {
>  	if (!((extensions[1], extensions[n]) in arch_opt_remove)	\
> -	    && !((extensions[1], extensions[n]) in arch_optaliases)) {
> +	    && !((extensions[1], extensions[n]) in arch_opt_alias)) {
>  	    return "error"
>  	}
>      }
  

Patch

diff --git a/gcc/config/arm/parsecpu.awk b/gcc/config/arm/parsecpu.awk
index ddd4f3b440a..384462bdb5b 100644
--- a/gcc/config/arm/parsecpu.awk
+++ b/gcc/config/arm/parsecpu.awk
@@ -529,7 +529,7 @@  function check_cpu (name) {
 
     for (n = 2; n <= exts; n++) {
 	if (!((cpu_name, extensions[n]) in cpu_opt_remove)	\
-	    && !((cpu_name, extensions[n]) in cpu_optaliases)) {
+	    && !((cpu_name, extensions[n]) in cpu_opt_alias)) {
 	    return "error"
 	}
     }
@@ -552,7 +552,7 @@  function check_arch (name) {
 
     for (n = 2; n <= exts; n++) {
 	if (!((extensions[1], extensions[n]) in arch_opt_remove)	\
-	    && !((extensions[1], extensions[n]) in arch_optaliases)) {
+	    && !((extensions[1], extensions[n]) in arch_opt_alias)) {
 	    return "error"
 	}
     }