Hi, I tried to compile the new MPlayer-1.0pre4 on hpux 11.00, but this fails with a gcc error message: error with gcc-3.3.3: /usr/local/pa20_32/bin/gcc -I../libvo/ -I../../libvo -O4 -pipe -ffast-math - fomit-frame-pointer -D HPUX -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/local/include - I/usr/local/include/gtk-1.2 -I /usr/local/include/glib-1.2 -I/usr/local/lib/glib/include -DHAVE_AV_CONFIG_H - I.. -D_FILE_OFFSET_BIT S=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -c -o motion_est.o motion_est.c motion_est.c: In function `ff_estimate_p_frame_motion': motion_est.c:1369: error: insn does not satisfy its constraints: (insn 33808 33807 31116 771 00000000 (set (reg:SI 22 %r22) (reg:SI 88 SAR [19146])) 37 {*pa.md:2265} (nil) (nil)) motion_est.c:1369: internal compiler error: in reload_cse_simplify_operands, at reload1.c:8353 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. error message with gcc-3.4: /usr/local/gcc-3.4.0_32/pa20_32/bin/gcc -I../libvo/ -I../../libvo -O4 -pipe - ffast-math -fomit-fra me-pointer -DHPUX -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 - I/usr/local/include -I/usr/local/inclu de/gtk-1.2 -I/usr/local/include/glib-1.2 -I/usr/local/lib/glib/include - DHAVE_AV_CONFIG_H -I.. -D_FI LE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -c -o motion_est.o motion_est.c motion_est_template.c: In function `hpel_motion_search': motion_est_template.c:220: error: insn does not satisfy its constraints: (insn 22118 22117 21385 69 (set (reg:SI 21 %r21) (reg:SI 88 SAR [829])) 37 {*pa.md:2265} (nil) (nil)) motion_est_template.c:220: internal compiler error: in reload_cse_simplify_operands, at postreload.c :378 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. # /usr/local/pa20_32/bin/gcc -v Reading specs from /usr/local/pa20_32/lib/gcc-lib/hppa2.0w-hp- hpux11.00/3.3.3/specs Configured with: ../src/configure --enable-languages=c,c++ -- prefix=/usr/local/pa20_32 --with-local- prefix=/usr/local/pa20_32 --with-gnu-as --with-as=/usr/local/pa20_32/bin/as -- with-ld=/usr/ccs/bin/ld --disable-shared --disable-nls Thread model: single gcc version 3.3.3 # /usr/local/gcc-3.4.0_32/pa20_32/bin/gcc -v Reading specs from /usr/local/gcc-3.4.0_32/pa20_32/lib/gcc/hppa2.0w-hp- hpux11.00/3.4.0/specs Configured with: ../src/configure --enable-languages=c,c++ -- prefix=/usr/local/pa20_32 --with-local- prefix=/usr/local/pa20_32 --with-gnu-as --with-as=/usr/local/pa20_32/bin/as -- with-ld=/usr/ccs/bin/ld --disable-shared --disable-nls Thread model: single gcc version 3.4.0
Can you attach the preprocessed source?
I have compiled the source with 'CFLAGS -save-temps'. Do you need motion_est.i and motion_est.s ?
Just motion_est.i would be fine.
Created attachment 6195 [details] preprocessed source from motion_est.i.bz2
Moving to invalid to move to ...
Uncinfirmed state.
I can confirm this on the mainline but have not reduced it fully yet (it is hard as it depends on an inline function).
Created attachment 6205 [details] reduced testcase (45 lines) Here's the somewhat reduced testcase of this crash.
Confirmed with 3.4 branch.
Here is something slightly more reduced (31 lines), removing typedefs and unneeded functions and unneeded agruments: typedef struct MotionEstContext { void (**hpel_avg)(int *block , const int pixels); int xmin, xmax, ymin, ymax; } MotionEstContext; typedef struct MpegEncContext { int mv_type; MotionEstContext me; } MpegEncContext; int cmp(MpegEncContext *s, const int x, const int y, const int subx, const int suby, const int flags) { MotionEstContext * const c = &s->me; const int qpel = flags; const int hx = subx + (x<<(1+qpel)); const int hy = suby + (y<<(1+qpel)); if(flags) if(x >= c->xmin && hx <= c->xmax<<(qpel+1) && y >= c->ymin && hy <= c->ymax<< (qpel+1)) if(s->mv_type==1) { int i; for(i=0; i<4; i++) { int by = hy ? 2 : 3; int bxy= (3) + ((by&3)<<(qpel+1)); c->hpel_avg[bxy](&bxy,by); } } return 0; }
Subject: Bug 15202 CVSROOT: /cvs/gcc Module name: gcc Changes by: danglin@gcc.gnu.org 2004-05-07 03:09:15 Modified files: gcc : ChangeLog gcc/config/pa : pa.md Log message: PR target/15202 * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount register to general register. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.3592&r2=2.3593 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/pa/pa.md.diff?cvsroot=gcc&r1=1.145&r2=1.146
Martin, Can you provide feedback on whether or not the patch resolves the ICE compiling MPlayer-1.0pre4. The patch should apply to 3.3 and 3.4.
John, i applied the patch to gcc-3.4.0 pa.md. MPlayer compiles now w/o problem. thanks Martin
Thanks. David can you try to get this into 3.4.1?
Subject: Re: [3.4 only] ICE in reload_cse_simplify_operands > David can you try to get this into 3.4.1? I was going test the patch with 3.3 and 3.4, but I haven't had a chance to do it yet. Dave
Subject: Bug 15202 CVSROOT: /cvs/gcc Module name: gcc Branch: gcc-3_4-branch Changes by: danglin@gcc.gnu.org 2004-05-18 15:11:56 Modified files: gcc : ChangeLog gcc/config/pa : pa.md Log message: PR target/15202 * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount register to general register for DI, SI, HI and QI modes. Remove move to shift amount register in DF mode. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=2.2326.2.445&r2=2.2326.2.446 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/pa/pa.md.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.138.4.5&r2=1.138.4.6
Fixed for 3.4.1.
Created attachment 6601 [details] Fix for 3.3 branch
(In reply to comment #18) > Created an attachment (id=6601) > Fix for 3.3 branch This OK for 3.3.x Thanks, -- Gaby
Subject: Bug 15202 CVSROOT: /cvs/gcc Module name: gcc Branch: gcc-3_3-branch Changes by: danglin@gcc.gnu.org 2004-07-25 21:19:29 Modified files: gcc : ChangeLog gcc/config/pa : pa.md Log message: PR target/15202 * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount register to general register for DI, SI, HI and QI modes. Remove move to shift amount register in DF mode. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.16114.2.1005&r2=1.16114.2.1006 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/pa/pa.md.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.116.2.12&r2=1.116.2.13
Fixed also for 3.3.5.