diff options
author | Roger Sayle <roger@eyesopen.com> | 2003-09-05 18:28:48 +0000 |
---|---|---|
committer | Roger Sayle <sayle@gcc.gnu.org> | 2003-09-05 18:28:48 +0000 |
commit | 31ff3e0b7728ede11862345df0347fc3403a5259 (patch) | |
tree | 4f8c8733dce80e667975dc779eceec8402fb4842 | |
parent | ceeae2d125cce0f03ad7d47f62c3f82ff2af78fd (diff) | |
download | gcc-31ff3e0b7728ede11862345df0347fc3403a5259.zip gcc-31ff3e0b7728ede11862345df0347fc3403a5259.tar.gz gcc-31ff3e0b7728ede11862345df0347fc3403a5259.tar.bz2 |
re PR rtl-optimization/1823 (-ftrapv aborts with pointer difference due to division optimization)
PR optimization/1823
* expmed.c (expand_divmod <EXACT_DIV_EXPR>): Use an unsigned
multiplication to implement division by constant integer.
Co-Authored-By: Richard Henderson <rth@redhat.com>
From-SVN: r71116
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/expmed.c | 2 |
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fe1f21b..c0b2e2b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2003-09-05 Roger Sayle <roger@eyesopen.com> + Richard Henderson <rth@redhat.com> + + PR optimization/1823 + * expmed.c (expand_divmod <EXACT_DIV_EXPR>): Use an unsigned + multiplication to implement division by constant integer. + Fri Sep 5 07:35:16 CEST 2003 Jan Hubicka <jh@suse.cz> * opts.c (decode_options): Enable unit-at-a-time at -O2. diff --git a/gcc/expmed.c b/gcc/expmed.c index 8ccd238..c59f865 100644 --- a/gcc/expmed.c +++ b/gcc/expmed.c @@ -3824,7 +3824,7 @@ expand_divmod (int rem_flag, enum tree_code code, enum machine_mode mode, build_int_2 (pre_shift, 0), NULL_RTX, unsignedp); quotient = expand_mult (compute_mode, t1, gen_int_mode (ml, compute_mode), - NULL_RTX, 0); + NULL_RTX, 1); insn = get_last_insn (); set_unique_reg_note (insn, |