On Sat, May 31, 2025 at 8:41 PM Andrew Pinski <quic_apin...@quicinc.com> wrote: > > Currently gimple_folder::convert_and_fold calls create_tmp_var; that means > while in ssa form, > the pass which calls fold_stmt will always have to update the ssa (via > TODO_update_ssa or otherwise). > This seems not very useful since we know that this will always be a ssa name, > using create_tmp_reg_or_ssa_name > instead is better and don't need to depend on the ssa updater. Plus this > should have a small compile time performance > and memory usage improvement too since this uses an anonymous ssa name rather > than creating a full decl for this.
Note the gimple_in_ssa_p check in create_tmp_reg_or_ssa_name is superfluous these days given the gimplifier already creates SSA names for temporaries when not in SSA form (no PHI nodes, no CFG). So in principle we could switch create_tmp_reg to always yield a SSA name. Thus for the fixup here I'd suggest using make_ssa_name (type) instead. Richard. > Built and tested on aarch64-linux-gnu. > > gcc/ChangeLog: > > * config/aarch64/aarch64-sve-builtins.cc > (gimple_folder::convert_and_fold): Use create_tmp_reg_or_ssa_name > instead of create_tmp_var for the temporary. > > Signed-off-by: Andrew Pinski <quic_apin...@quicinc.com> > --- > gcc/config/aarch64/aarch64-sve-builtins.cc | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/gcc/config/aarch64/aarch64-sve-builtins.cc > b/gcc/config/aarch64/aarch64-sve-builtins.cc > index 36519262efd..329237b086d 100644 > --- a/gcc/config/aarch64/aarch64-sve-builtins.cc > +++ b/gcc/config/aarch64/aarch64-sve-builtins.cc > @@ -3675,7 +3675,7 @@ gimple_folder::convert_and_fold (tree type, > tree old_ty = TREE_TYPE (lhs); > gimple_seq stmts = NULL; > bool convert_lhs_p = !useless_type_conversion_p (type, old_ty); > - tree lhs_conv = convert_lhs_p ? create_tmp_var (type) : lhs; > + tree lhs_conv = convert_lhs_p ? create_tmp_reg_or_ssa_name (type) : lhs; > unsigned int num_args = gimple_call_num_args (call); > auto_vec<tree, 16> args_conv; > args_conv.safe_grow (num_args); > -- > 2.43.0 >