re PR rtl-optimization/66076 (ICE: in vec_safe_grow, at vec.h:618 with -funroll-loops -mno-prefer-avx128 -march=bdver4)
gcc/ PR rtl-optimization/66076 * rtlanal.c (generic_subrtx_iterator <T>::add_single_to_queue): Don't grow the heap array if it is already big enough from a previous iteration. gcc/testsuite/ PR rtl-optimization/66076 * gcc.dg/torture/pr66076.c: New test. From-SVN: r222999
This commit is contained in:
parent
258619bb2d
commit
cb6f459119
|
@ -1,3 +1,10 @@
|
|||
2015-05-11 Richard Sandiford <richard.sandiford@arm.com>
|
||||
|
||||
PR rtl-optimization/66076
|
||||
* rtlanal.c (generic_subrtx_iterator <T>::add_single_to_queue):
|
||||
Don't grow the heap array if it is already big enough from a
|
||||
previous iteration.
|
||||
|
||||
2015-05-11 Christian Bruel <christian.bruel@st.com>
|
||||
|
||||
* config/arm/arm-protos.h (arm_declare_function_name): Declare.
|
||||
|
|
|
@ -104,7 +104,10 @@ generic_subrtx_iterator <T>::add_single_to_queue (array_type &array,
|
|||
return base;
|
||||
}
|
||||
gcc_checking_assert (i == LOCAL_ELEMS);
|
||||
vec_safe_grow (array.heap, i + 1);
|
||||
/* A previous iteration might also have moved from the stack to the
|
||||
heap, in which case the heap array will already be big enough. */
|
||||
if (vec_safe_length (array.heap) <= i)
|
||||
vec_safe_grow (array.heap, i + 1);
|
||||
base = array.heap->address ();
|
||||
memcpy (base, array.stack, sizeof (array.stack));
|
||||
base[LOCAL_ELEMS] = x;
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2015-05-11 Richard Sandiford <richard.sandiford@arm.com>
|
||||
|
||||
PR rtl-optimization/66076
|
||||
* gcc.dg/torture/pr66076.c: New test.
|
||||
|
||||
2015-05-10 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||||
|
||||
PR fortran/66041
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "" } */
|
||||
/* { dg-options "-mno-prefer-avx128 -march=bdver4" { target i?86-*-* x86_64-*-* } } */
|
||||
|
||||
void
|
||||
f0a (char *result, char *arg1, char *arg4, char temp_6)
|
||||
{
|
||||
int idx = 0;
|
||||
for (idx = 0; idx < 416; idx += 1)
|
||||
result[idx] = (arg1[idx] + arg4[idx]) * temp_6;
|
||||
}
|
Loading…
Reference in New Issue