+2019-01-09 Jakub Jelinek <jakub@redhat.com>
+
+ PR rtl-optimization/88331
+ * function.c (assign_stack_local_1): Don't set dynamic_align_addr if
+ not currently_expanding_to_rtl.
+
2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
* doc/invoke.texi (-Os): Remove trailing spaces.
{
/* If the required alignment exceeds MAX_SUPPORTED_STACK_ALIGNMENT and
it is not OK to reduce it. Align the slot dynamically. */
- if (mode == BLKmode && (kind & ASLK_REDUCE_ALIGN) == 0)
+ if (mode == BLKmode
+ && (kind & ASLK_REDUCE_ALIGN) == 0
+ && currently_expanding_to_rtl)
dynamic_align_addr = true;
else
{
+2019-01-09 Jakub Jelinek <jakub@redhat.com>
+
+ PR rtl-optimization/88331
+ * gcc.target/i386/pr88331.c: New test.
+
2019-01-08 Paolo Carlini <paolo.carlini@oracle.com>
* g++.dg/diagnostic/constexpr2.C: New.
--- /dev/null
+/* PR rtl-optimization/88331 */
+/* { dg-do compile } */
+/* { dg-options "-O3 -march=core-avx2" } */
+
+int b, d, e, g, i, j, l, m;
+int *c, *h, *n, *o;
+long f, k;
+
+void
+foo (void)
+{
+ long p = i;
+ int *a = o;
+ while (p)
+ {
+ n = (int *) (__UINTPTR_TYPE__) a[0];
+ for (; f; f += 4)
+ for (; m <= d;)
+ {
+ for (; g <= e; ++g)
+ l = (int) (__UINTPTR_TYPE__) (n + l);
+ c[m] = (int) (__UINTPTR_TYPE__) n;
+ }
+ }
+ int q = 0;
+ k = 0;
+ for (; k < j; k++)
+ q += o[k] * h[k];
+ b = q;
+}