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:
parent
c86fab9d08
commit
a811a0a881
4 changed files with 44 additions and 1 deletions
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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.
|
||||
|
|
30
gcc/testsuite/gcc.target/i386/pr88331.c
Normal file
30
gcc/testsuite/gcc.target/i386/pr88331.c
Normal 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;
|
||||
}
|
Loading…
Add table
Reference in a new issue