+2017-03-08 Andrew Haley <aph@redhat.com>
+
+ PR tree-optimization/79943
+ * tree-ssa-loop-split.c (compute_new_first_bound): When
+ calculating the new upper bound, (END-BEG) should be added, not
+ subtracted.
+
2017-03-08 Jakub Jelinek <jakub@redhat.com>
* config/avr/avr.md (setmemhi): Make sure match_dup
+2017-03-08 Andrew Haley <aph@redhat.com>
+
+ PR tree-optimization/79943
+ * gcc.dg/tree-ssa/pr79943.c: New test.
+
2017-03-08 Richard Biener <rguenther@suse.de>
PR tree-optimization/79920
--- /dev/null
+/* { dg-do run } */
+/* { dg-options "-O2 -fsplit-loops -fdump-tree-lsplit-details" } */
+/* { dg-require-effective-target int32plus } */
+
+#ifdef __cplusplus
+extern "C" void abort (void);
+#else
+extern void abort (void);
+#endif
+
+typedef struct {
+ int n;
+} region_t;
+
+void set (region_t *region) __attribute__((noinline));
+void doit (region_t *beg, region_t *end, region_t *limit)
+ __attribute__((noinline));
+
+region_t regions[10];
+
+void
+set (region_t *region) {
+ region->n = 1;
+}
+
+void
+doit (region_t *beg, region_t *end, region_t *limit) {
+ for (region_t *cur = beg; cur < end; cur++) {
+ if (cur < limit) {
+ set(cur);
+ }
+ }
+}
+
+int
+main (void) {
+ doit(®ions[0], ®ions[2], ®ions[10]);
+ if (regions[1].n != 1)
+ abort();
+}
if (POINTER_TYPE_P (TREE_TYPE (guard_init)))
{
enddiff = gimple_convert (stmts, sizetype, enddiff);
- enddiff = gimple_build (stmts, NEGATE_EXPR, sizetype, enddiff);
newbound = gimple_build (stmts, POINTER_PLUS_EXPR,
TREE_TYPE (guard_init),
guard_init, enddiff);