re PR rtl-optimization/88331 (ICE in rtl_verify_bb_layout, at cfgrtl.c:2987)

PR rtl-optimization/88331
	* function.c (assign_stack_local_1): Don't set dynamic_align_addr if
	not currently_expanding_to_rtl.

	* gcc.target/i386/pr88331.c: New test.

From-SVN: r267758
This commit is contained in:
Jakub Jelinek 2019-01-09 11:16:10 +01:00 committed by Jakub Jelinek
parent c86fab9d08
commit a811a0a881
4 changed files with 44 additions and 1 deletions

View file

@ -1,3 +1,9 @@
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.

View file

@ -400,7 +400,9 @@ assign_stack_local_1 (machine_mode mode, poly_int64 size,
{
/* 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
{

View file

@ -1,3 +1,8 @@
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.

View file

@ -0,0 +1,30 @@
/* 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;
}