[v1] LoongArch: Remove duplicate definition of CLZ_DEFINED_VALUE_AT_ZERO.

Message ID 20231128075635.2484351-1-liwei@loongson.cn
State Committed
Commit 3266091741bbcca27ed1a315214cb82c8f912009
Headers
Series [v1] LoongArch: Remove duplicate definition of CLZ_DEFINED_VALUE_AT_ZERO. |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_gcc_build--master-arm success Testing passed
linaro-tcwg-bot/tcwg_gcc_check--master-arm success Testing passed
linaro-tcwg-bot/tcwg_gcc_build--master-aarch64 success Testing passed
linaro-tcwg-bot/tcwg_gcc_check--master-aarch64 success Testing passed

Commit Message

Li Wei Nov. 28, 2023, 7:56 a.m. UTC
  In the r14-5547 commit, C[LT]Z_DEFINED_VALUE_AT_ZERO were defined at
the same time, but in fact, CLZ_DEFINED_VALUE_AT_ZERO has already been
defined, so remove the duplicate definition.

gcc/ChangeLog:

	* config/loongarch/loongarch.h (CTZ_DEFINED_VALUE_AT_ZERO): Add
	  description.
	(CLZ_DEFINED_VALUE_AT_ZERO): Remove duplicate definition.
---
 gcc/config/loongarch/loongarch.h | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)
  

Comments

Xi Ruoyao Nov. 29, 2023, 1:53 a.m. UTC | #1
On Tue, 2023-11-28 at 15:56 +0800, Li Wei wrote:
> In the r14-5547 commit, C[LT]Z_DEFINED_VALUE_AT_ZERO were defined at
> the same time, but in fact, CLZ_DEFINED_VALUE_AT_ZERO has already been
> defined, so remove the duplicate definition.
> 
> gcc/ChangeLog:
> 
> 	* config/loongarch/loongarch.h (CTZ_DEFINED_VALUE_AT_ZERO): Add
> 	  description.
> 	(CLZ_DEFINED_VALUE_AT_ZERO): Remove duplicate definition.

LGTM.

Interestingly the compiler does not give any warning when a macro is
redefined but with exactly same definition.

> ---
>  gcc/config/loongarch/loongarch.h | 9 +++------
>  1 file changed, 3 insertions(+), 6 deletions(-)
> 
> diff --git a/gcc/config/loongarch/loongarch.h b/gcc/config/loongarch/loongarch.h
> index 115222e70fd..fa8a3f5582f 100644
> --- a/gcc/config/loongarch/loongarch.h
> +++ b/gcc/config/loongarch/loongarch.h
> @@ -288,10 +288,12 @@ along with GCC; see the file COPYING3.  If not see
>  /* Define if loading short immediate values into registers sign extends.  */
>  #define SHORT_IMMEDIATES_SIGN_EXTEND 1
>  
> -/* The clz.{w/d} instructions have the natural values at 0.  */
> +/* The clz.{w/d}, ctz.{w/d} instructions have the natural values at 0.  */
>  
>  #define CLZ_DEFINED_VALUE_AT_ZERO(MODE, VALUE) \
>    ((VALUE) = GET_MODE_UNIT_BITSIZE (MODE), 2)
> +#define CTZ_DEFINED_VALUE_AT_ZERO(MODE, VALUE) \
> +  ((VALUE) = GET_MODE_UNIT_BITSIZE (MODE), 2)
>  
>  /* Standard register usage.  */
>  
> @@ -1239,8 +1241,3 @@ struct GTY (()) machine_function
>  
>  #define TARGET_EXPLICIT_RELOCS \
>    (la_opt_explicit_relocs == EXPLICIT_RELOCS_ALWAYS)
> -
> -#define CLZ_DEFINED_VALUE_AT_ZERO(MODE, VALUE) \
> -  ((VALUE) = GET_MODE_UNIT_BITSIZE (MODE), 2)
> -#define CTZ_DEFINED_VALUE_AT_ZERO(MODE, VALUE) \
> -  ((VALUE) = GET_MODE_UNIT_BITSIZE (MODE), 2)
  
Lulu Cheng Dec. 2, 2023, 8:45 a.m. UTC | #2
Pushed to r14-6070.

在 2023/11/29 上午9:53, Xi Ruoyao 写道:
> On Tue, 2023-11-28 at 15:56 +0800, Li Wei wrote:
>> In the r14-5547 commit, C[LT]Z_DEFINED_VALUE_AT_ZERO were defined at
>> the same time, but in fact, CLZ_DEFINED_VALUE_AT_ZERO has already been
>> defined, so remove the duplicate definition.
>>
>> gcc/ChangeLog:
>>
>> 	* config/loongarch/loongarch.h (CTZ_DEFINED_VALUE_AT_ZERO): Add
>> 	  description.
>> 	(CLZ_DEFINED_VALUE_AT_ZERO): Remove duplicate definition.
> LGTM.
>
> Interestingly the compiler does not give any warning when a macro is
> redefined but with exactly same definition.
>
>> ---
>>   gcc/config/loongarch/loongarch.h | 9 +++------
>>   1 file changed, 3 insertions(+), 6 deletions(-)
>>
>> diff --git a/gcc/config/loongarch/loongarch.h b/gcc/config/loongarch/loongarch.h
>> index 115222e70fd..fa8a3f5582f 100644
>> --- a/gcc/config/loongarch/loongarch.h
>> +++ b/gcc/config/loongarch/loongarch.h
>> @@ -288,10 +288,12 @@ along with GCC; see the file COPYING3.  If not see
>>   /* Define if loading short immediate values into registers sign extends.  */
>>   #define SHORT_IMMEDIATES_SIGN_EXTEND 1
>>   
>> -/* The clz.{w/d} instructions have the natural values at 0.  */
>> +/* The clz.{w/d}, ctz.{w/d} instructions have the natural values at 0.  */
>>   
>>   #define CLZ_DEFINED_VALUE_AT_ZERO(MODE, VALUE) \
>>     ((VALUE) = GET_MODE_UNIT_BITSIZE (MODE), 2)
>> +#define CTZ_DEFINED_VALUE_AT_ZERO(MODE, VALUE) \
>> +  ((VALUE) = GET_MODE_UNIT_BITSIZE (MODE), 2)
>>   
>>   /* Standard register usage.  */
>>   
>> @@ -1239,8 +1241,3 @@ struct GTY (()) machine_function
>>   
>>   #define TARGET_EXPLICIT_RELOCS \
>>     (la_opt_explicit_relocs == EXPLICIT_RELOCS_ALWAYS)
>> -
>> -#define CLZ_DEFINED_VALUE_AT_ZERO(MODE, VALUE) \
>> -  ((VALUE) = GET_MODE_UNIT_BITSIZE (MODE), 2)
>> -#define CTZ_DEFINED_VALUE_AT_ZERO(MODE, VALUE) \
>> -  ((VALUE) = GET_MODE_UNIT_BITSIZE (MODE), 2)
  

Patch

diff --git a/gcc/config/loongarch/loongarch.h b/gcc/config/loongarch/loongarch.h
index 115222e70fd..fa8a3f5582f 100644
--- a/gcc/config/loongarch/loongarch.h
+++ b/gcc/config/loongarch/loongarch.h
@@ -288,10 +288,12 @@  along with GCC; see the file COPYING3.  If not see
 /* Define if loading short immediate values into registers sign extends.  */
 #define SHORT_IMMEDIATES_SIGN_EXTEND 1
 
-/* The clz.{w/d} instructions have the natural values at 0.  */
+/* The clz.{w/d}, ctz.{w/d} instructions have the natural values at 0.  */
 
 #define CLZ_DEFINED_VALUE_AT_ZERO(MODE, VALUE) \
   ((VALUE) = GET_MODE_UNIT_BITSIZE (MODE), 2)
+#define CTZ_DEFINED_VALUE_AT_ZERO(MODE, VALUE) \
+  ((VALUE) = GET_MODE_UNIT_BITSIZE (MODE), 2)
 
 /* Standard register usage.  */
 
@@ -1239,8 +1241,3 @@  struct GTY (()) machine_function
 
 #define TARGET_EXPLICIT_RELOCS \
   (la_opt_explicit_relocs == EXPLICIT_RELOCS_ALWAYS)
-
-#define CLZ_DEFINED_VALUE_AT_ZERO(MODE, VALUE) \
-  ((VALUE) = GET_MODE_UNIT_BITSIZE (MODE), 2)
-#define CTZ_DEFINED_VALUE_AT_ZERO(MODE, VALUE) \
-  ((VALUE) = GET_MODE_UNIT_BITSIZE (MODE), 2)