> On 24 Jul 2024, at 18:50, Richard Sandiford <richard.sandif...@arm.com> wrote:
> 
> External email: Use caution opening links or attachments
> 
> 
> Jennifer Schmitz <jschm...@nvidia.com> writes:
>> As suggested in the review of
>> https://gcc.gnu.org/pipermail/gcc-patches/2024-July/657474.html,
>> this patch changes the return type of gimple_folder::redirect_call from
>> gimple * to gcall *. The motivation for this is that so far, most callers of
>> the function had been casting the result of the function to gcall. These
>> call sites were updated.
>> 
>> The patch was bootstrapped and regtested on aarch64-linux-gnu, no regression.
>> OK for mainline?
>> 
>> Signed-off-by: Jennifer Schmitz <jschm...@nvidia.com>
>> 
>> gcc/
>> 
>>      * config/aarch64/aarch64-sve-builtins.cc
>>      (gimple_folder::redirect_call): Update return type.
>>      * config/aarch64/aarch64-sve-builtins.h: Likewise.
>>      * config/aarch64/aarch64-sve-builtins-sve2.cc (svqshl_impl::fold):
>>      Remove cast to gcall.
>>      (svrshl_impl::fold): Likewise.
> 
> OK, thanks.

I’ve pushed the patch for Jennifer with 3adfcc58022
Thanks,
Kyrill


> 
> And sorry for my hypocrisy.  It looks like I was responsible for the
> existing instances of as_a<gcall *>, so I should have done this myself
> when adding SVE2.
> 
> Richard
> 
>> From 54bbe7cbcbc1c26171301726ff489c9f0a730e80 Mon Sep 17 00:00:00 2001
>> From: Jennifer Schmitz <jschm...@nvidia.com>
>> Date: Tue, 23 Jul 2024 03:54:50 -0700
>> Subject: [PATCH] SVE Intrinsics: Change return type of redirect_call to 
>> gcall.
>> 
>> As suggested in the review of
>> https://gcc.gnu.org/pipermail/gcc-patches/2024-July/657474.html,
>> this patch changes the return type of gimple_folder::redirect_call from
>> gimple * to gcall *. The motivation for this is that so far, most callers of
>> the function had been casting the result of the function to gcall. These
>> call sites were updated.
>> 
>> The patch was bootstrapped and regtested on aarch64-linux-gnu, no regression.
>> OK for mainline?
>> 
>> Signed-off-by: Jennifer Schmitz <jschm...@nvidia.com>
>> 
>> gcc/
>> 
>>      * config/aarch64/aarch64-sve-builtins.cc
>>      (gimple_folder::redirect_call): Update return type.
>>      * config/aarch64/aarch64-sve-builtins.h: Likewise.
>>      * config/aarch64/aarch64-sve-builtins-sve2.cc (svqshl_impl::fold):
>>      Remove cast to gcall.
>>      (svrshl_impl::fold): Likewise.
>> ---
>> gcc/config/aarch64/aarch64-sve-builtins-sve2.cc | 6 +++---
>> gcc/config/aarch64/aarch64-sve-builtins.cc      | 2 +-
>> gcc/config/aarch64/aarch64-sve-builtins.h       | 2 +-
>> 3 files changed, 5 insertions(+), 5 deletions(-)
>> 
>> diff --git a/gcc/config/aarch64/aarch64-sve-builtins-sve2.cc 
>> b/gcc/config/aarch64/aarch64-sve-builtins-sve2.cc
>> index 4f25cc68028..dc591551682 100644
>> --- a/gcc/config/aarch64/aarch64-sve-builtins-sve2.cc
>> +++ b/gcc/config/aarch64/aarch64-sve-builtins-sve2.cc
>> @@ -349,7 +349,7 @@ public:
>>              instance.base_name = "svlsr";
>>              instance.base = functions::svlsr;
>>            }
>> -         gcall *call = as_a <gcall *> (f.redirect_call (instance));
>> +         gcall *call = f.redirect_call (instance);
>>          gimple_call_set_arg (call, 2, amount);
>>          return call;
>>        }
>> @@ -379,7 +379,7 @@ public:
>>          function_instance instance ("svlsl", functions::svlsl,
>>                                      shapes::binary_uint_opt_n, MODE_n,
>>                                      f.type_suffix_ids, GROUP_none, f.pred);
>> -         gcall *call = as_a <gcall *> (f.redirect_call (instance));
>> +         gcall *call = f.redirect_call (instance);
>>          gimple_call_set_arg (call, 2, amount);
>>          return call;
>>        }
>> @@ -392,7 +392,7 @@ public:
>>          function_instance instance ("svrshr", functions::svrshr,
>>                                      shapes::shift_right_imm, MODE_n,
>>                                      f.type_suffix_ids, GROUP_none, f.pred);
>> -         gcall *call = as_a <gcall *> (f.redirect_call (instance));
>> +         gcall *call = f.redirect_call (instance);
>>          gimple_call_set_arg (call, 2, amount);
>>          return call;
>>        }
>> diff --git a/gcc/config/aarch64/aarch64-sve-builtins.cc 
>> b/gcc/config/aarch64/aarch64-sve-builtins.cc
>> index f3983a123e3..0a560eaedca 100644
>> --- a/gcc/config/aarch64/aarch64-sve-builtins.cc
>> +++ b/gcc/config/aarch64/aarch64-sve-builtins.cc
>> @@ -3592,7 +3592,7 @@ gimple_folder::load_store_cookie (tree type)
>> }
>> 
>> /* Fold the call to a call to INSTANCE, with the same arguments.  */
>> -gimple *
>> +gcall *
>> gimple_folder::redirect_call (const function_instance &instance)
>> {
>>   registered_function *rfn
>> diff --git a/gcc/config/aarch64/aarch64-sve-builtins.h 
>> b/gcc/config/aarch64/aarch64-sve-builtins.h
>> index 9cc07d5fa3d..9ab6f202c30 100644
>> --- a/gcc/config/aarch64/aarch64-sve-builtins.h
>> +++ b/gcc/config/aarch64/aarch64-sve-builtins.h
>> @@ -629,7 +629,7 @@ public:
>>   tree fold_contiguous_base (gimple_seq &, tree);
>>   tree load_store_cookie (tree);
>> 
>> -  gimple *redirect_call (const function_instance &);
>> +  gcall *redirect_call (const function_instance &);
>>   gimple *redirect_pred_x ();
>> 
>>   gimple *fold_to_cstu (poly_uint64);

Reply via email to