diff options
author | Ulrich Weigand <uweigand@de.ibm.com> | 2003-10-17 13:38:52 +0000 |
---|---|---|
committer | Ulrich Weigand <uweigand@gcc.gnu.org> | 2003-10-17 13:38:52 +0000 |
commit | 51a785a03619403e4dec65d83553edb5bdff0f75 (patch) | |
tree | 75d377706c5bda2c9430d089ea6e0d131fae5352 | |
parent | 2051c897803c7632570b098abc8a2b8fb4c42144 (diff) | |
download | gcc-51a785a03619403e4dec65d83553edb5bdff0f75.zip gcc-51a785a03619403e4dec65d83553edb5bdff0f75.tar.gz gcc-51a785a03619403e4dec65d83553edb5bdff0f75.tar.bz2 |
* ifcvt.c (noce_try_addcc): Handle ifs with 'else' case.
From-SVN: r72603
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/ifcvt.c | 6 |
2 files changed, 6 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8f5c802..2b8fc81 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2003-10-17 Ulrich Weigand <uweigand@de.ibm.com> + * ifcvt.c (noce_try_addcc): Handle ifs with 'else' case. + +2003-10-17 Ulrich Weigand <uweigand@de.ibm.com> + * combine.c (simplify_set): Do not clear out undobuf.other_insn already set elsewhere. diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c index 21794b3..fe38060 100644 --- a/gcc/ifcvt.c +++ b/gcc/ifcvt.c @@ -884,10 +884,8 @@ noce_try_addcc (struct noce_if_info *if_info) int subtract, normalize; if (! no_new_pseudos - /* Should be no `else' case to worry about. */ - && if_info->b == if_info->x && GET_CODE (if_info->a) == PLUS - && rtx_equal_p (XEXP (if_info->a, 0), if_info->x) + && rtx_equal_p (XEXP (if_info->a, 0), if_info->b) && (reversed_comparison_code (if_info->cond, if_info->jump) != UNKNOWN)) { @@ -942,7 +940,7 @@ noce_try_addcc (struct noce_if_info *if_info) if (target) target = expand_simple_binop (GET_MODE (if_info->x), subtract ? MINUS : PLUS, - if_info->x, target, if_info->x, + if_info->b, target, if_info->x, 0, OPTAB_WIDEN); if (target) { |