aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAaron Sawdey <acsawdey@linux.vnet.ibm.com>2017-04-08 16:10:26 +0000
committerAaron Sawdey <acsawdey@gcc.gnu.org>2017-04-08 11:10:26 -0500
commit27ba97a67a5e468317b3316224e82f4f7b680b71 (patch)
tree2440f4dc7cd048eef095a9d7f6375ec91f0af758 /gcc
parent38f540cb00704a9b5f9eab06ab9d45691a5665e1 (diff)
downloadgcc-27ba97a67a5e468317b3316224e82f4f7b680b71.zip
gcc-27ba97a67a5e468317b3316224e82f4f7b680b71.tar.gz
gcc-27ba97a67a5e468317b3316224e82f4f7b680b71.tar.bz2
re PR rtl-optimization/80358 (ICE (cc1 killed) building glib with -O3 on powerpc64le-linux-gnu)
2017-04-08 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> PR target/80358 * config/rs6000/rs6000.c (expand_block_compare): Fix boundary check. From-SVN: r246784
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/rs6000/rs6000.c5
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 99d78b4..b1e0345 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2017-04-08 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
+
+ PR target/80358
+ * config/rs6000/rs6000.c (expand_block_compare): Fix boundary check.
+
2017-04-07 Pat Haugen <pthaugen@us.ibm.com>
* rs6000/rs6000.c (vec_load_pendulum): Rename...
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index b3a3a7e..880c3ee 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -19672,8 +19672,9 @@ expand_block_compare (rtx operands[])
unsigned int load_mode_size = GET_MODE_SIZE (load_mode);
/* We don't want to generate too much code. */
- if (ROUND_UP (bytes, load_mode_size) / load_mode_size
- > (unsigned HOST_WIDE_INT) rs6000_block_compare_inline_limit)
+ unsigned HOST_WIDE_INT max_bytes =
+ load_mode_size * (unsigned HOST_WIDE_INT) rs6000_block_compare_inline_limit;
+ if (!IN_RANGE (bytes, 1, max_bytes))
return false;
bool generate_6432_conversion = false;