Re: FIx riscv port building with the trunk

2017-03-13 Thread Palmer Dabbelt
Thanks Kito -- this had broken my build too, I'd just gotten distracted by
another bug and had forgotten to commit it.  It's now in as

commit 6ca48c85b40db96f01d49f37afb19100b4a6b75b
Author: palmer 
Date:   Tue Mar 14 03:51:24 2017 +

Use gcc_fallthrough() instead of __attribute__((fallthrough)

Without this my build breaks on older compilers like GCC-5.4.

gcc/ChangeLog:

2017-03-13  Kito Cheng  

   * config/riscv/riscv.c (riscv_emit_float_compare>: Use
   gcc_fallthrough() instead of __attribute__((fallthrough));

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@246116 
138bc75d-0d04-0410-961f-82ee72b054a4

On Mon, 13 Mar 2017 20:00:36 PDT (-0700), kito.ch...@gmail.com wrote:
> Hi Jeff:
>
> It's make older gcc version can't build RISC-V port, how about use
> gcc_fallthrough instead?
>
> diff --git a/gcc/config/riscv/riscv.c b/gcc/config/riscv/riscv.c
> index f4c1f23..d1af07f5 100644
> --- a/gcc/config/riscv/riscv.c
> +++ b/gcc/config/riscv/riscv.c
> @@ -2089,13 +2089,13 @@ riscv_emit_float_compare (enum rtx_code *code,
> rtx *op0, rtx *op1)
>
>  case UNLT:
>std::swap (cmp_op0, cmp_op1);
> -  __attribute__((fallthrough));
> +  gcc_fallthrough ();
>
>  UNORDERED_COMPARISON(UNGT, le)
>
>  case UNLE:
>std::swap (cmp_op0, cmp_op1);
> -  __attribute__((fallthrough));
> +  gcc_fallthrough ();
>
>  UNORDERED_COMPARISON(UNGE, lt)
>  #undef UNORDERED_COMPARISON
>
> On Tue, Mar 14, 2017 at 2:22 AM, Palmer Dabbelt  wrote:
>> On Mon, 13 Mar 2017 10:50:28 PDT (-0700), l...@redhat.com wrote:
>>>
>>> RISCV targets were failing to build due to implicit-fallthru warnings.
>>>
>>> This changes comments which indicated expected fallthru to use the
>>> attribute and the port builds again.   I assume something about the use
>>> of the cpp macro is causing the comment to not have the intended effect.
>>>   I didn't dig into that.  Nor did I try to change all the fallthru
>>> comments to use the attribute -- just the two that implicit-fallthru was
>>> complaining about.
>>>
>>> Verified that after this patch the two riscv targets build.  Installed
>>> on the trunk.
>>>
>>> Jeff
>>>
>>> commit 448373f1f2912228dc72605fb6f3343fd57023ee
>>> Author: law 
>>> Date:   Mon Mar 13 17:49:40 2017 +
>>>
>>> * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
>>> attribute rather than comments.
>>>
>>> git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@246101 
>>> 138bc75d-0d04-0410-961f-82ee72b054a4
>>>
>>> diff --git a/gcc/ChangeLog b/gcc/ChangeLog
>>> index 124dca3..e863cdf 100644
>>> --- a/gcc/ChangeLog
>>> +++ b/gcc/ChangeLog
>>> @@ -1,5 +1,8 @@
>>>  2017-03-13  Jeff Law  
>>>
>>> + * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
>>> + attribute rather than comments.
>>> +
>>>   * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to
>>>   match_scratch operand is highest.
>>>
>>> diff --git a/gcc/config/riscv/riscv.c b/gcc/config/riscv/riscv.c
>>> index 89567f7..e5044ba 100644
>>> --- a/gcc/config/riscv/riscv.c
>>> +++ b/gcc/config/riscv/riscv.c
>>> @@ -2089,13 +2089,13 @@ riscv_emit_float_compare (enum rtx_code *code, rtx 
>>> *op0, rtx *op1)
>>>
>>>  case UNLT:
>>>std::swap (cmp_op0, cmp_op1);
>>> -  /* Fall through.  */
>>> +  __attribute__((fallthrough));
>>>
>>>  UNORDERED_COMPARISON(UNGT, le)
>>>
>>>  case UNLE:
>>>std::swap (cmp_op0, cmp_op1);
>>> -  /* Fall through.  */
>>> +  __attribute__((fallthrough));
>>>
>>>  UNORDERED_COMPARISON(UNGE, lt)
>>>  #undef UNORDERED_COMPARISON
>>
>> Thanks!


Re: FIx riscv port building with the trunk

2017-03-13 Thread Kito Cheng
Hi Jeff:

It's make older gcc version can't build RISC-V port, how about use
gcc_fallthrough instead?

diff --git a/gcc/config/riscv/riscv.c b/gcc/config/riscv/riscv.c
index f4c1f23..d1af07f5 100644
--- a/gcc/config/riscv/riscv.c
+++ b/gcc/config/riscv/riscv.c
@@ -2089,13 +2089,13 @@ riscv_emit_float_compare (enum rtx_code *code,
rtx *op0, rtx *op1)

 case UNLT:
   std::swap (cmp_op0, cmp_op1);
-  __attribute__((fallthrough));
+  gcc_fallthrough ();

 UNORDERED_COMPARISON(UNGT, le)

 case UNLE:
   std::swap (cmp_op0, cmp_op1);
-  __attribute__((fallthrough));
+  gcc_fallthrough ();

 UNORDERED_COMPARISON(UNGE, lt)
 #undef UNORDERED_COMPARISON

On Tue, Mar 14, 2017 at 2:22 AM, Palmer Dabbelt  wrote:
> On Mon, 13 Mar 2017 10:50:28 PDT (-0700), l...@redhat.com wrote:
>>
>> RISCV targets were failing to build due to implicit-fallthru warnings.
>>
>> This changes comments which indicated expected fallthru to use the
>> attribute and the port builds again.   I assume something about the use
>> of the cpp macro is causing the comment to not have the intended effect.
>>   I didn't dig into that.  Nor did I try to change all the fallthru
>> comments to use the attribute -- just the two that implicit-fallthru was
>> complaining about.
>>
>> Verified that after this patch the two riscv targets build.  Installed
>> on the trunk.
>>
>> Jeff
>>
>> commit 448373f1f2912228dc72605fb6f3343fd57023ee
>> Author: law 
>> Date:   Mon Mar 13 17:49:40 2017 +
>>
>> * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
>> attribute rather than comments.
>>
>> git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@246101 
>> 138bc75d-0d04-0410-961f-82ee72b054a4
>>
>> diff --git a/gcc/ChangeLog b/gcc/ChangeLog
>> index 124dca3..e863cdf 100644
>> --- a/gcc/ChangeLog
>> +++ b/gcc/ChangeLog
>> @@ -1,5 +1,8 @@
>>  2017-03-13  Jeff Law  
>>
>> + * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
>> + attribute rather than comments.
>> +
>>   * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to
>>   match_scratch operand is highest.
>>
>> diff --git a/gcc/config/riscv/riscv.c b/gcc/config/riscv/riscv.c
>> index 89567f7..e5044ba 100644
>> --- a/gcc/config/riscv/riscv.c
>> +++ b/gcc/config/riscv/riscv.c
>> @@ -2089,13 +2089,13 @@ riscv_emit_float_compare (enum rtx_code *code, rtx 
>> *op0, rtx *op1)
>>
>>  case UNLT:
>>std::swap (cmp_op0, cmp_op1);
>> -  /* Fall through.  */
>> +  __attribute__((fallthrough));
>>
>>  UNORDERED_COMPARISON(UNGT, le)
>>
>>  case UNLE:
>>std::swap (cmp_op0, cmp_op1);
>> -  /* Fall through.  */
>> +  __attribute__((fallthrough));
>>
>>  UNORDERED_COMPARISON(UNGE, lt)
>>  #undef UNORDERED_COMPARISON
>
> Thanks!


Re: FIx riscv port building with the trunk

2017-03-13 Thread Palmer Dabbelt
On Mon, 13 Mar 2017 10:50:28 PDT (-0700), l...@redhat.com wrote:
>
> RISCV targets were failing to build due to implicit-fallthru warnings.
>
> This changes comments which indicated expected fallthru to use the
> attribute and the port builds again.   I assume something about the use
> of the cpp macro is causing the comment to not have the intended effect.
>   I didn't dig into that.  Nor did I try to change all the fallthru
> comments to use the attribute -- just the two that implicit-fallthru was
> complaining about.
>
> Verified that after this patch the two riscv targets build.  Installed
> on the trunk.
>
> Jeff
>
> commit 448373f1f2912228dc72605fb6f3343fd57023ee
> Author: law 
> Date:   Mon Mar 13 17:49:40 2017 +
>
> * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
> attribute rather than comments.
>
> git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@246101 
> 138bc75d-0d04-0410-961f-82ee72b054a4
>
> diff --git a/gcc/ChangeLog b/gcc/ChangeLog
> index 124dca3..e863cdf 100644
> --- a/gcc/ChangeLog
> +++ b/gcc/ChangeLog
> @@ -1,5 +1,8 @@
>  2017-03-13  Jeff Law  
>
> + * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
> + attribute rather than comments.
> +
>   * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to
>   match_scratch operand is highest.
>
> diff --git a/gcc/config/riscv/riscv.c b/gcc/config/riscv/riscv.c
> index 89567f7..e5044ba 100644
> --- a/gcc/config/riscv/riscv.c
> +++ b/gcc/config/riscv/riscv.c
> @@ -2089,13 +2089,13 @@ riscv_emit_float_compare (enum rtx_code *code, rtx 
> *op0, rtx *op1)
>
>  case UNLT:
>std::swap (cmp_op0, cmp_op1);
> -  /* Fall through.  */
> +  __attribute__((fallthrough));
>
>  UNORDERED_COMPARISON(UNGT, le)
>
>  case UNLE:
>std::swap (cmp_op0, cmp_op1);
> -  /* Fall through.  */
> +  __attribute__((fallthrough));
>
>  UNORDERED_COMPARISON(UNGE, lt)
>  #undef UNORDERED_COMPARISON

Thanks!