aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom de Vries <tom@codesourcery.com>2012-08-06 08:32:20 +0000
committerTom de Vries <vries@gcc.gnu.org>2012-08-06 08:32:20 +0000
commitd9e408ded1129fa823d55137eb1cb2c1a9979adb (patch)
tree2c74e3ba5c2b04f9ab84a79275a8686e2d8be698
parentd7f41b2d87214f6e014f3091a2956f0170a8b41e (diff)
downloadgcc-d9e408ded1129fa823d55137eb1cb2c1a9979adb.zip
gcc-d9e408ded1129fa823d55137eb1cb2c1a9979adb.tar.gz
gcc-d9e408ded1129fa823d55137eb1cb2c1a9979adb.tar.bz2
tree-switch-conversion.c (emit_case_bit_tests): Generate MINUS_EXPR in unsigned type.
2012-08-06 Tom de Vries <tom@codesourcery.com> * tree-switch-conversion.c (emit_case_bit_tests): Generate MINUS_EXPR in unsigned type. From-SVN: r190168
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/tree-switch-conversion.c8
2 files changed, 9 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e228bfb..2169ca5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2012-08-06 Tom de Vries <tom@codesourcery.com>
+
+ * tree-switch-conversion.c (emit_case_bit_tests): Generate MINUS_EXPR in
+ unsigned type.
+
2012-08-05 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
* doc/invoke.texi: Document AMD btver2.
diff --git a/gcc/tree-switch-conversion.c b/gcc/tree-switch-conversion.c
index 0630f1a..6c61eca 100644
--- a/gcc/tree-switch-conversion.c
+++ b/gcc/tree-switch-conversion.c
@@ -384,10 +384,10 @@ emit_case_bit_tests (gimple swtch, tree index_expr,
gsi = gsi_last_bb (switch_bb);
- /* idx = (unsigned) (x - minval) */
- idx = fold_build2 (MINUS_EXPR, index_type, index_expr,
- fold_convert (index_type, minval));
- idx = fold_convert (unsigned_index_type, idx);
+ /* idx = (unsigned)x - minval. */
+ idx = fold_convert (unsigned_index_type, index_expr);
+ idx = fold_build2 (MINUS_EXPR, unsigned_index_type, idx,
+ fold_convert (unsigned_index_type, minval));
idx = force_gimple_operand_gsi (&gsi, idx,
/*simple=*/true, NULL_TREE,
/*before=*/true, GSI_SAME_STMT);