aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorBernd Schmidt <bernd.schmidt@analog.com>2009-04-29 15:40:06 +0000
committerBernd Schmidt <bernds@gcc.gnu.org>2009-04-29 15:40:06 +0000
commit4e5d521bb552991496445f0303ef84a95f67ba41 (patch)
treeef1a1a1c9242c17f4efd56fa3c8c721fe3e70cda /gcc
parent70b70ce8ca44e0be23f7d0d455bd5eb96b4d8bdc (diff)
downloadgcc-4e5d521bb552991496445f0303ef84a95f67ba41.zip
gcc-4e5d521bb552991496445f0303ef84a95f67ba41.tar.gz
gcc-4e5d521bb552991496445f0303ef84a95f67ba41.tar.bz2
bfin.c (bfin_optimize_loop): When looking for the last insn before the loop_end instruction...
* config/bfin/bfin.c (bfin_optimize_loop): When looking for the last insn before the loop_end instruction, don't look past labels. From-SVN: r146980
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/config/bfin/bfin.c1
2 files changed, 4 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8f8e05d..a2d280f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -3,6 +3,9 @@
* config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
scan backwards to try to find a constant to initialize it.
+ * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
+ insn before the loop_end instruction, don't look past labels.
+
2009-04-29 Richard Guenther <rguenther@suse.de>
PR middle-end/39937
diff --git a/gcc/config/bfin/bfin.c b/gcc/config/bfin/bfin.c
index 0808522..63f60e1 100644
--- a/gcc/config/bfin/bfin.c
+++ b/gcc/config/bfin/bfin.c
@@ -4012,6 +4012,7 @@ bfin_optimize_loop (loop_info loop)
break;
if (single_pred_p (bb)
+ && single_pred_edge (bb)->flags & EDGE_FALLTHRU
&& single_pred (bb) != ENTRY_BLOCK_PTR)
{
bb = single_pred (bb);