diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2012-09-02 10:36:27 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2012-09-02 10:36:27 +0000 |
commit | eaf23fc3d56f6aa63e24fe2951fc5ec76b39cbc6 (patch) | |
tree | 37f7caab339392c9226dbb570e377ccf9b688013 /gcc | |
parent | 51ad44fd6ba163c3945e4d20b2d8d63524d6a1ac (diff) | |
download | gcc-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/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/mips/mips.c | 5 | ||||
-rw-r--r-- | gcc/config/sparc/sparc.c | 5 |
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) |