diff options
| author | Jakub Jelinek <jakub@redhat.com> | 2025-04-28 09:22:50 +0200 |
|---|---|---|
| committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2025-04-28 09:22:50 +0200 |
| commit | b0120fa9838f8fbeb13301d03b01cad282941569 (patch) | |
| tree | e90a0b5a31b607f684c406e2d7abc072bd59e341 /gcc | |
| parent | 78673484b4055b93207eee0efd60a434b0bf96ab (diff) | |
| download | gcc-b0120fa9838f8fbeb13301d03b01cad282941569.zip gcc-b0120fa9838f8fbeb13301d03b01cad282941569.tar.gz gcc-b0120fa9838f8fbeb13301d03b01cad282941569.tar.bz2 | |
tailc: Improve tail recursion handling [PR119493]
Here is a patch to improve the tail recursion handling also for
non-musttail calls.
2025-04-28 Jakub Jelinek <jakub@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.
Diffstat (limited to 'gcc')
| -rw-r--r-- | gcc/tree-tailcall.cc | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/gcc/tree-tailcall.cc b/gcc/tree-tailcall.cc index f593363..fc05928 100644 --- a/gcc/tree-tailcall.cc +++ b/gcc/tree-tailcall.cc @@ -827,8 +827,7 @@ find_tail_calls (basic_block bb, struct tailcall **ret, bool only_musttail, ? !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; } } |
