aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2012-09-02 10:36:27 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2012-09-02 10:36:27 +0000
commiteaf23fc3d56f6aa63e24fe2951fc5ec76b39cbc6 (patch)
tree37f7caab339392c9226dbb570e377ccf9b688013 /gcc
parent51ad44fd6ba163c3945e4d20b2d8d63524d6a1ac (diff)
downloadgcc-eaf23fc3d56f6aa63e24fe2951fc5ec76b39cbc6.zip
gcc-eaf23fc3d56f6aa63e24fe2951fc5ec76b39cbc6.tar.gz
gcc-eaf23fc3d56f6aa63e24fe2951fc5ec76b39cbc6.tar.bz2
re PR rtl-optimization/54369 (delayed-branch pass removes too many instructions)
PR rtl-optimization/54369 * config/mips/mips.c (mips_reorg): Invoke cleanup_barriers before calling dbr_schedule. * config/sparc/sparc.c (sparc_reorg): Likewise. From-SVN: r190858
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/mips/mips.c5
-rw-r--r--gcc/config/sparc/sparc.c5
3 files changed, 15 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c9790e8..19c3645 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2012-09-02 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR rtl-optimization/54369
+ * config/mips/mips.c (mips_reorg): Invoke cleanup_barriers before
+ calling dbr_schedule.
+ * config/sparc/sparc.c (sparc_reorg): Likewise.
+
2012-09-01 Jakub Jelinek <jakub@redhat.com>
PR target/54436
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c
index 7721a7c..06b2ff4 100644
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -15729,7 +15729,10 @@ mips_reorg (void)
}
if (optimize > 0 && flag_delayed_branch)
- dbr_schedule (get_insns ());
+ {
+ cleanup_barriers ();
+ dbr_schedule (get_insns ());
+ }
mips_reorg_process_insns ();
if (!TARGET_MIPS16
&& TARGET_EXPLICIT_RELOCS
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c
index 59ce3d01..140332e 100644
--- a/gcc/config/sparc/sparc.c
+++ b/gcc/config/sparc/sparc.c
@@ -10691,7 +10691,10 @@ sparc_reorg (void)
/* We need to have the (essentially) final form of the insn stream in order
to properly detect the various hazards. Run delay slot scheduling. */
if (optimize > 0 && flag_delayed_branch)
- dbr_schedule (get_insns ());
+ {
+ cleanup_barriers ();
+ dbr_schedule (get_insns ());
+ }
/* Now look for specific patterns in the insn stream. */
for (insn = get_insns (); insn; insn = next)