diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1994-10-06 06:57:08 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1994-10-06 06:57:08 -0400 |
commit | ce15adaa116fa31401863c4d2f94dd507e935af2 (patch) | |
tree | 28ca4a185141bb183fa46a77dd2bfd1d73398a16 /gcc | |
parent | af5b53ed8d64db12ab1c684f86f5b44077616068 (diff) | |
download | gcc-ce15adaa116fa31401863c4d2f94dd507e935af2.zip gcc-ce15adaa116fa31401863c4d2f94dd507e935af2.tar.gz gcc-ce15adaa116fa31401863c4d2f94dd507e935af2.tar.bz2 |
(try_merge_delay_insns): Update THREAD if it is split.
From-SVN: r8226
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/reorg.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/reorg.c b/gcc/reorg.c index 2cff2c9..430bc7d 100644 --- a/gcc/reorg.c +++ b/gcc/reorg.c @@ -1762,6 +1762,7 @@ try_merge_delay_insns (insn, thread) for (trial = thread; !stop_search_p (trial, 1); trial = next_trial) { rtx pat = PATTERN (trial); + rtx oldtrial = trial; next_trial = next_nonnote_insn (trial); @@ -1781,6 +1782,8 @@ try_merge_delay_insns (insn, thread) && (trial = try_split (pat, trial, 0)) != 0 /* Update next_trial, in case try_split succeeded. */ && (next_trial = next_nonnote_insn (trial)) + /* Likewise THREAD. */ + && (thread = oldtrial == thread ? trial : thread) && rtx_equal_p (PATTERN (next_to_match), PATTERN (trial)) /* Have to test this condition if annul condition is different from (and less restrictive than) non-annulling one. */ |