diff options
author | Kazu Hirata <kazu@codesourcery.com> | 2006-05-17 21:34:57 +0000 |
---|---|---|
committer | Kazu Hirata <kazu@gcc.gnu.org> | 2006-05-17 21:34:57 +0000 |
commit | c89833429b5b5b63c8ff243ce9abd84efc0c1ec7 (patch) | |
tree | 15c52851e5d2a59555251f2ed6c4bbb75ec3404a | |
parent | 95dc56a4c7c08d7cf429942aba4f8a72316db7a3 (diff) | |
download | gcc-c89833429b5b5b63c8ff243ce9abd84efc0c1ec7.zip gcc-c89833429b5b5b63c8ff243ce9abd84efc0c1ec7.tar.gz gcc-c89833429b5b5b63c8ff243ce9abd84efc0c1ec7.tar.bz2 |
re PR rtl-optimization/27477 (The H8 port doesn't build)
PR rtl-optimization/27477
* combine.c (try_combine): Don't split a parallel consisting
of two sets into two individual sets if both sets reference
cc0.
From-SVN: r113872
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/combine.c | 9 |
2 files changed, 15 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d71b1b4..ff616dc 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2006-05-17 Kazu Hirata <kazu@codesourcery.com> + + PR rtl-optimization/27477 + * combine.c (try_combine): Don't split a parallel consisting + of two sets into two individual sets if both sets reference + cc0. + 2006-05-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> * unwind-dw2.c: Add declarations for uw_update_context and diff --git a/gcc/combine.c b/gcc/combine.c index 33512ec..c570ea6 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -2896,7 +2896,14 @@ try_combine (rtx i3, rtx i2, rtx i1, int *new_direct_jump_p) && ! reg_referenced_p (SET_DEST (XVECEXP (newpat, 0, 0)), XVECEXP (newpat, 0, 1)) && ! (contains_muldiv (SET_SRC (XVECEXP (newpat, 0, 0))) - && contains_muldiv (SET_SRC (XVECEXP (newpat, 0, 1))))) + && contains_muldiv (SET_SRC (XVECEXP (newpat, 0, 1)))) +#ifdef HAVE_cc0 + /* We cannot split the parallel into two sets if both sets + reference cc0. */ + && ! (reg_referenced_p (cc0_rtx, XVECEXP (newpat, 0, 0)) + && reg_referenced_p (cc0_rtx, XVECEXP (newpat, 0, 1))) +#endif + ) { /* Normally, it doesn't matter which of the two is done first, but it does if one references cc0. In that case, it has to |