aboutsummaryrefslogtreecommitdiff
path: root/gcc/gcse.c
diff options
context:
space:
mode:
authorZdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>2003-09-15 03:55:53 +0200
committerAndrew Pinski <pinskia@gcc.gnu.org>2003-09-14 18:55:53 -0700
commitec6ec6aaabd93cd9018f73d5a9880466eb55b55c (patch)
tree5fc7d2c4a708b456af258e9327bbdd9d5d81f936 /gcc/gcse.c
parenta7e8c268ed44dd8f09259ba8000be311af7562e7 (diff)
downloadgcc-ec6ec6aaabd93cd9018f73d5a9880466eb55b55c.zip
gcc-ec6ec6aaabd93cd9018f73d5a9880466eb55b55c.tar.gz
gcc-ec6ec6aaabd93cd9018f73d5a9880466eb55b55c.tar.bz2
re PR rtl-optimization/10914 (unswitch loops does not work on powerpc)
2003-09-12 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> PR optimization/10914 * expr.h (get_condition, canonicalize_condition): Declaration changed. * cfgloopanal.c (simple_loop_exit_p): Add parameter to a get_condition and canonicalize_condition calls. * gcse.c (fis_get_condition, delete_null_pointer_checks_1, delete_null_pointer_checks): Ditto. * ifcvt.c (noce_get_alt_condition, noce_get_condition): Ditto. * predict.c (estimate_probability, expected_value_to_br_prob): Ditto. * loop.c (check_dbra_loop, get_condition_for_loop): Ditto. (canonicalize_condition, get_condition): Allow to return comparisons of cc mode registers. * loop-unswitch.c (may_unswitch_on_p, unswitch_single_loop): Allow cc mode registers comparison in condition. From-SVN: r71398
Diffstat (limited to 'gcc/gcse.c')
-rw-r--r--gcc/gcse.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/gcc/gcse.c b/gcc/gcse.c
index edc8a62..3ea5411 100644
--- a/gcc/gcse.c
+++ b/gcc/gcse.c
@@ -4480,7 +4480,8 @@ fis_get_condition (rtx jump)
/* Use canonicalize_condition to do the dirty work of manipulating
MODE_CC values and COMPARE rtx codes. */
- tmp = canonicalize_condition (jump, cond, reverse, &earliest, NULL_RTX);
+ tmp = canonicalize_condition (jump, cond, reverse, &earliest, NULL_RTX,
+ false);
if (!tmp)
return NULL_RTX;
@@ -4498,7 +4499,8 @@ fis_get_condition (rtx jump)
tmp = XEXP (tmp, 0);
if (!REG_P (tmp) || GET_MODE_CLASS (GET_MODE (tmp)) != MODE_INT)
return NULL_RTX;
- tmp = canonicalize_condition (jump, cond, reverse, &earliest, tmp);
+ tmp = canonicalize_condition (jump, cond, reverse, &earliest, tmp,
+ false);
if (!tmp)
return NULL_RTX;
@@ -5880,7 +5882,7 @@ delete_null_pointer_checks_1 (unsigned int *block_reg, sbitmap *nonnull_avin,
continue;
/* LAST_INSN is a conditional jump. Get its condition. */
- condition = get_condition (last_insn, &earliest);
+ condition = get_condition (last_insn, &earliest, false);
/* If we can't determine the condition then skip. */
if (! condition)
@@ -5994,7 +5996,7 @@ delete_null_pointer_checks (rtx f ATTRIBUTE_UNUSED)
continue;
/* LAST_INSN is a conditional jump. Get its condition. */
- condition = get_condition (last_insn, &earliest);
+ condition = get_condition (last_insn, &earliest, false);
/* If we were unable to get the condition, or it is not an equality
comparison against zero then there's nothing we can do. */