Massive SPEC failures on trunk
Vladimir Sysoev
vladimir.sysoev@gmail.com
Mon Mar 5 13:59:00 GMT 2007
Hi, All
Sorry for my previous post. It was into wrong place.
There is minimal reproducer for cpu2006/h264ref is attached
use
gcc -O2 -c ./image.c
Compiler from trunk produces:
image.c: In function 'UnifiedOneForthPix':
image.c:35: internal compiler error: in set_value_range, at tree-vrp.c:267
-Vladimir
On 3/4/07, Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com> wrote:
> Grigory Zagorodnev wrote:
> > Trunk GCC shows massive (2 compile-time and 6 run-time) failures on SPEC
> > CPU2000 and CPU2006 at i386 and x86_64 on -O2 optimization level.
> > Regression introduced somewhere between revision 122487 and 122478.
> >
> > http://gcc.gnu.org/viewcvs?view=rev&revision=122487
> Almost all regressions are due to r122487
> cpu2006: 403.gcc 416.gamess 434.zeusmp 464.h264ref 465.tonto
> cpu2000: 178.galgel 186.crafty
>
>
> > http://gcc.gnu.org/viewcvs?view=rev&revision=122484
> cpu2006/447.dealII is due to revision 122484.
>
> I'll bring more information and try to get minimal reproducers at Monday.
>
> - Grigory
>
-------------- next part --------------
typedef unsigned char byte; //!< byte type definition
#define max(a, b) (((a) > (b)) ? (a) : (b))
#define min(a, b) (((a) < (b)) ? (a) : (b))
typedef long long int64;
#define imgpel unsigned short
#define pel_t imgpel
#define IMG_PAD_SIZE 4 //!< Number of pixels padded around the reference frame (>=4)
#define MAX_LIST_SIZE 33
#define imgpel unsigned short
int **img4Y_tmp; //!< for quarter pel interpolation
typedef struct storable_picture
{
int size_x, size_y;
imgpel ** imgY; //!< Y picture component
} StorablePicture;
const int ONE_FOURTH_TAP[3][2] =
{
{20,20},
{-5,-4},
{ 1, 0},
};
void UnifiedOneForthPix (StorablePicture *s)
{
int i, j, jj,is;
imgpel **imgY = s->imgY;
for (i = -IMG_PAD_SIZE; i < s->size_x + IMG_PAD_SIZE; i++)
{
is =
(ONE_FOURTH_TAP[0][0] *
(imgY[jj][max (0, min (s->size_x - 1, i))] +
imgY[jj][max (0, min (s->size_x - 1, i + 1))]) +
ONE_FOURTH_TAP[1][0] *
(imgY[jj][max (0, min (s->size_x - 1, i - 1))] +
imgY[jj][max (0, min (s->size_x - 1, i + 2))]) +
ONE_FOURTH_TAP[2][0] *
(imgY[jj][max (0, min (s->size_x - 1, i - 2))] +
imgY[jj][max (0, min (s->size_x - 1, i + 3))]));
img4Y_tmp[j + IMG_PAD_SIZE][(i + IMG_PAD_SIZE) * 2 + 1] = is * 32; // 1/2 pix pos
}
}
More information about the Gcc
mailing list