diff options
author | rakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-08-05 08:41:57 +0000 |
---|---|---|
committer | rakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-08-05 08:41:57 +0000 |
commit | 8bf71901fab1df87a505e7d4540de31ac3f87462 (patch) | |
tree | 6050fa494643615f796ada88dc8112f74b9e730c /gcc/tree-tailcall.c | |
parent | 31d1d680bb7f175a1accad38f08e13fb90129370 (diff) | |
download | gcc-8bf71901fab1df87a505e7d4540de31ac3f87462.tar.gz |
PR tree-optimization/16864
* tree-tailcall.c (eliminate_tail_call): Do not create phi nodes
for ssa names without default_def.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@85597 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-tailcall.c')
-rw-r--r-- | gcc/tree-tailcall.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/gcc/tree-tailcall.c b/gcc/tree-tailcall.c index 6599cbd09e2..6e1957c597d 100644 --- a/gcc/tree-tailcall.c +++ b/gcc/tree-tailcall.c @@ -730,7 +730,17 @@ eliminate_tail_call (struct tailcall *t) if (!phi) { tree name = var_ann (param)->default_def; - tree new_name = make_ssa_name (param, SSA_NAME_DEF_STMT (name)); + tree new_name; + + if (!name) + { + /* It may happen that the tag does not have a default_def in case + when all uses of it are dominated by a MUST_DEF. This however + means that it is not necessary to add a phi node for this + tag. */ + continue; + } + new_name = make_ssa_name (param, SSA_NAME_DEF_STMT (name)); var_ann (param)->default_def = new_name; phi = create_phi_node (name, first); |