aboutsummaryrefslogtreecommitdiff
path: root/gcc/cfgcleanup.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2008-10-09 22:04:10 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2008-10-09 22:04:10 +0200
commit1692ae7eda60ea567bcd8e8bae40b6f20db5d82a (patch)
tree0169af2955472328d5f862f7396b198dfc82b215 /gcc/cfgcleanup.c
parente81897731e2232b88f735bf8b8ce319d76983b51 (diff)
downloadgcc-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.c5
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;