aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-tailcall.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2014-02-07 03:11:27 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2014-02-07 02:11:27 +0000
commite2f0f5f70455606bf951e22457184e6bf18d580f (patch)
tree1b375a4749d5db755163291df7cd94b2113f649e /gcc/tree-tailcall.c
parent44afe5e47bfc9397159fb0de15ff394960063661 (diff)
downloadgcc-e2f0f5f70455606bf951e22457184e6bf18d580f.zip
gcc-e2f0f5f70455606bf951e22457184e6bf18d580f.tar.gz
gcc-e2f0f5f70455606bf951e22457184e6bf18d580f.tar.bz2
re PR target/60077 (gcc.target/i386/pr35767-5.c FAILs)
PR target/60077 * expr.c (emit_move_resolve_push): Export; be bit more selective on when to clear alias set. * expr.h (emit_move_resolve_push): Declare. * function.h (struct function): Add tail_call_marked. * tree-tailcall.c (optimize_tail_call): Set tail_call_marked. * config/i386/i386-protos.h (ix86_expand_push): Remove. * config/i386/i386.md (TImode move expander): De not call ix86_expand_push. (FP push expanders): Preserve memory attributes. * config/i386/sse.md (push<mode>1): Remove. * config/i386/i386.c (ix86_expand_vector_move): Handle push operation. (ix86_expand_push): Remove. * config/i386/mmx.md (push<mode>1): Remove. From-SVN: r207587
Diffstat (limited to 'gcc/tree-tailcall.c')
-rw-r--r--gcc/tree-tailcall.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/tree-tailcall.c b/gcc/tree-tailcall.c
index ff19f63..3488c2f 100644
--- a/gcc/tree-tailcall.c
+++ b/gcc/tree-tailcall.c
@@ -909,6 +909,7 @@ optimize_tail_call (struct tailcall *t, bool opt_tailcalls)
gimple stmt = gsi_stmt (t->call_gsi);
gimple_call_set_tail (stmt, true);
+ cfun->tail_call_marked = true;
if (dump_file && (dump_flags & TDF_DETAILS))
{
fprintf (dump_file, "Found tail call ");