diff options
author | Richard Henderson <rth@redhat.com> | 2001-02-18 12:06:51 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2001-02-18 12:06:51 -0800 |
commit | 3bd241172417b6329baf196858143269c4b362e5 (patch) | |
tree | 166893fdd6431288bb5d979f1e74ce8ff1f392ac /gcc | |
parent | e0fff4b3a7312cd08165c9a010dbafc1a4c98316 (diff) | |
download | gcc-3bd241172417b6329baf196858143269c4b362e5.zip gcc-3bd241172417b6329baf196858143269c4b362e5.tar.gz gcc-3bd241172417b6329baf196858143269c4b362e5.tar.bz2 |
ifcvt.c (dead_or_predicable): Don't move code if eh regions would be disrupted.
* ifcvt.c (dead_or_predicable): Don't move code if eh regions
would be disrupted.
From-SVN: r39843
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/ifcvt.c | 9 |
2 files changed, 14 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b6e2a47..3e663b3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2001-02-18 Richard Henderson <rth@redhat.com> + * ifcvt.c (dead_or_predicable): Don't move code if eh regions + would be disrupted. + +2001-02-18 Richard Henderson <rth@redhat.com> + * config/ns32k/ns32k.h (ADJSP): Upcase arguments. * config/alpha/alpha.md (movsi_fix): Fix typo in pattern name. diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c index 652814e..a5494b8 100644 --- a/gcc/ifcvt.c +++ b/gcc/ifcvt.c @@ -1855,6 +1855,15 @@ dead_or_predicable (test_bb, merge_bb, other_bb, new_dest, reversep) { rtx head, end, jump, earliest, old_dest; + /* No code movement can occur if we'd be scrogging EH regions. + Within MERGE_BB, ensure that we've not got stray EH_BEG or EH_END + notes within the block. Between the blocks, checking that the end + region numbers match ensures that we won't disrupt the nesting + between regions. */ + if (merge_bb->eh_beg != merge_bb->eh_end + || merge_bb->eh_end != test_bb->eh_end) + return FALSE; + jump = test_bb->end; /* Find the extent of the real code in the merge block. */ |