On Thu, 24 Apr 2025, Jakub Jelinek wrote: > On Tue, Apr 01, 2025 at 11:51:49AM +0200, Jakub Jelinek wrote: > > Here it is, ok if it passes bootstrap/regtest? I'll queue the interdiff > > between this patch and the previous one for GCC 16. > > Here is the interdiff to improve the tail recursion handling also for > non-musttail calls. > > Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?
OK > 2025-04-24 Jakub Jelinek <ja...@redhat.com> > > PR tree-optimization/119493 > * tree-tailcall.cc (find_tail_calls): Handle non-gimple_reg_type > arguments which aren't just passed through for tail recursions > even for non-musttail calls. > > --- gcc/tree-tailcall.cc.jj 2025-04-01 16:47:30.373502796 +0200 > +++ gcc/tree-tailcall.cc 2025-04-01 20:08:34.578787921 +0200 > @@ -685,8 +685,7 @@ find_tail_calls (basic_block bb, struct > ? !is_gimple_reg (param) > : (!is_gimple_variable (param) > || TREE_THIS_VOLATILE (param) > - || may_be_aliased (param) > - || !gimple_call_must_tail_p (call))) > + || may_be_aliased (param))) > break; > } > } > > > Jakub > > -- Richard Biener <rguent...@suse.de> SUSE Software Solutions Germany GmbH, Frankenstrasse 146, 90461 Nuernberg, Germany; GF: Ivo Totev, Andrew McDonald, Werner Knoblich; (HRB 36809, AG Nuernberg)