aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRoger Sayle <roger@eyesopen.com>2003-09-05 18:28:48 +0000
committerRoger Sayle <sayle@gcc.gnu.org>2003-09-05 18:28:48 +0000
commit31ff3e0b7728ede11862345df0347fc3403a5259 (patch)
tree4f8c8733dce80e667975dc779eceec8402fb4842 /gcc
parentceeae2d125cce0f03ad7d47f62c3f82ff2af78fd (diff)
downloadgcc-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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/expmed.c2
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,