diff options
author | Jakub Jelinek <jakub@redhat.com> | 2008-10-09 22:04:10 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2008-10-09 22:04:10 +0200 |
commit | 1692ae7eda60ea567bcd8e8bae40b6f20db5d82a (patch) | |
tree | 0169af2955472328d5f862f7396b198dfc82b215 /gcc/cfgcleanup.c | |
parent | e81897731e2232b88f735bf8b8ce319d76983b51 (diff) | |
download | gcc-1692ae7eda60ea567bcd8e8bae40b6f20db5d82a.zip gcc-1692ae7eda60ea567bcd8e8bae40b6f20db5d82a.tar.gz gcc-1692ae7eda60ea567bcd8e8bae40b6f20db5d82a.tar.bz2 |
rtl.h (locator_eq): New decl.
* rtl.h (locator_eq): New decl.
* cfglayout.c (locator_scope): New function.
(insn_scope): Use it.
(locator_eq): New function.
(fixup_reorder_chain): Search for last insn in src bb
that has locator set or first insn in dest bb. Use
locator_eq instead of == to compare locators.
* cfgrtl.c (cfg_layout_merge_blocks): Likewise.
* cfgcleanup.c (try_forward_edges): Use locator_eq instead of
== to compare locators.
From-SVN: r141009
Diffstat (limited to 'gcc/cfgcleanup.c')
-rw-r--r-- | gcc/cfgcleanup.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/cfgcleanup.c b/gcc/cfgcleanup.c index 8b9756d..190bde6 100644 --- a/gcc/cfgcleanup.c +++ b/gcc/cfgcleanup.c @@ -483,7 +483,7 @@ try_forward_edges (int mode, basic_block b) blocks with different locus are not optimized out. */ int locus = single_succ_edge (target)->goto_locus; - if (locus && goto_locus && locus != goto_locus) + if (locus && goto_locus && !locator_eq (locus, goto_locus)) counter = n_basic_blocks; else if (locus) goto_locus = locus; @@ -492,7 +492,8 @@ try_forward_edges (int mode, basic_block b) { locus = INSN_LOCATOR (BB_END (target)); - if (locus && goto_locus && locus != goto_locus) + if (locus && goto_locus + && !locator_eq (locus, goto_locus)) counter = n_basic_blocks; else if (locus) goto_locus = locus; |