aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2025-04-28 09:22:50 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2025-04-28 09:22:50 +0200
commitb0120fa9838f8fbeb13301d03b01cad282941569 (patch)
treee90a0b5a31b607f684c406e2d7abc072bd59e341 /gcc
parent78673484b4055b93207eee0efd60a434b0bf96ab (diff)
downloadgcc-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.cc3
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;
}
}