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 <[EMAIL PROTECTED]> 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
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
}
}