diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/cfgrtl.c | 4 |
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8c75c47..488fac9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2017-01-12 Jakub Jelinek <jakub@redhat.com> + + PR bootstrap/79069 + * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't + be removed due to side-effects, don't remove following barrier nor + turn the successor edge into fallthru edge. + 2017-01-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com> PR target/79044 diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c index 7604346..bba4a99 100644 --- a/gcc/cfgrtl.c +++ b/gcc/cfgrtl.c @@ -1794,6 +1794,10 @@ rtl_tidy_fallthru_edge (edge e) q = PREV_INSN (q); } + /* Unconditional jumps with side-effects (i.e. which we can't just delete + together with the barrier) should never have a fallthru edge. */ + else if (JUMP_P (q) && any_uncondjump_p (q)) + return; /* Selectively unlink the sequence. */ if (q != PREV_INSN (BB_HEAD (c))) |