aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWalter Lee <walt@tilera.com>2016-11-19 02:34:17 +0000
committerWalter Lee <walt@gcc.gnu.org>2016-11-19 02:34:17 +0000
commitaa8df486e8b539609f9fcd6579a3dba6fa3f4267 (patch)
tree6e4703ff5b636ed28c4837991c061bb532614da9
parent814049be46390dc4fb5c938abf13619b38e696d8 (diff)
downloadgcc-aa8df486e8b539609f9fcd6579a3dba6fa3f4267.zip
gcc-aa8df486e8b539609f9fcd6579a3dba6fa3f4267.tar.gz
gcc-aa8df486e8b539609f9fcd6579a3dba6fa3f4267.tar.bz2
TILE-Gx: Fix bundling when encountering consecutive barriers.
* config/tilegx/tilegx.c (tilegx_gen_bundles): Preserve end-of-bundle marker for consecutive barriers. From-SVN: r242617
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/tilegx/tilegx.c7
2 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 13b60c2..1efd5fa 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2016-11-18 Walter Lee <walt@tilera.com>
+ * config/tilegx/tilegx.c (tilegx_gen_bundles): Preserve
+ end-of-bundle marker for consecutive barriers.
+
+2016-11-18 Walter Lee <walt@tilera.com>
+
* config/tilegx/tilegx.md (clzsi2): Fix for big-endian.
2016-11-18 Jakub Jelinek <jakub@redhat.com>
diff --git a/gcc/config/tilegx/tilegx.c b/gcc/config/tilegx/tilegx.c
index 76a7455..0403e8e 100644
--- a/gcc/config/tilegx/tilegx.c
+++ b/gcc/config/tilegx/tilegx.c
@@ -4469,8 +4469,7 @@ tilegx_gen_bundles (void)
rtx_insn *end = NEXT_INSN (BB_END (bb));
prev = NULL;
- for (insn = next_insn_to_bundle (BB_HEAD (bb), end); insn;
- prev = insn, insn = next)
+ for (insn = next_insn_to_bundle (BB_HEAD (bb), end); insn; insn = next)
{
next = next_insn_to_bundle (NEXT_INSN (insn), end);
@@ -4506,7 +4505,11 @@ tilegx_gen_bundles (void)
PUT_MODE (prev, QImode);
}
delete_insn (insn);
+
+ // Note: prev remains the same for next iteration.
}
+ else
+ prev = insn;
}
}
}