aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2015-12-04 17:40:05 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2015-12-04 17:40:05 +0100
commit5c24689633f109abfc2b9b6c62f327c805c49fa4 (patch)
tree92967007f7e1f4591a804ffb3cde326a0431b58b /gcc
parent6b2e46bf85e0da961c9006111c8d309bb7a70973 (diff)
downloadgcc-5c24689633f109abfc2b9b6c62f327c805c49fa4.zip
gcc-5c24689633f109abfc2b9b6c62f327c805c49fa4.tar.gz
gcc-5c24689633f109abfc2b9b6c62f327c805c49fa4.tar.bz2
* tree-tailcall.c (find_tail_calls): Ignore GIMPLE_NOPs.
From-SVN: r231282
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog2
-rw-r--r--gcc/tree-tailcall.c6
2 files changed, 6 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b6ff6e1..d9a0bf8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,7 @@
2015-12-04 Jakub Jelinek <jakub@redhat.com>
+ * tree-tailcall.c (find_tail_calls): Ignore GIMPLE_NOPs.
+
PR tree-optimization/68680
* calls.c (special_function_p): Return ECF_MAY_BE_ALLOCA for
BUILT_IN_ALLOCA{,_WITH_ALIGN}. Don't check for __builtin_alloca
diff --git a/gcc/tree-tailcall.c b/gcc/tree-tailcall.c
index bbd1b29..a2585fb 100644
--- a/gcc/tree-tailcall.c
+++ b/gcc/tree-tailcall.c
@@ -412,9 +412,10 @@ find_tail_calls (basic_block bb, struct tailcall **ret)
{
stmt = gsi_stmt (gsi);
- /* Ignore labels, returns, clobbers and debug stmts. */
+ /* Ignore labels, returns, nops, clobbers and debug stmts. */
if (gimple_code (stmt) == GIMPLE_LABEL
|| gimple_code (stmt) == GIMPLE_RETURN
+ || gimple_code (stmt) == GIMPLE_NOP
|| gimple_clobber_p (stmt)
|| is_gimple_debug (stmt))
continue;
@@ -532,7 +533,8 @@ find_tail_calls (basic_block bb, struct tailcall **ret)
stmt = gsi_stmt (agsi);
- if (gimple_code (stmt) == GIMPLE_LABEL)
+ if (gimple_code (stmt) == GIMPLE_LABEL
+ || gimple_code (stmt) == GIMPLE_NOP)
continue;
if (gimple_code (stmt) == GIMPLE_RETURN)