On Sun, Jun 1, 2025 at 3:54 AM Richard Biener <richard.guent...@gmail.com> wrote: > > 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.
yes that worked, I submitted https://gcc.gnu.org/pipermail/gcc-patches/2025-June/685263.html for that. I am waiting on this being approved before pushing the CCP patch that removes update_ssa since the CCP exposes this issue. Thanks, Andrew > > 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 > >