Bug 13149 - build gcc-3.3.2 1305 error:unrecognizable insn on ia64-hpux
Summary: build gcc-3.3.2 1305 error:unrecognizable insn on ia64-hpux
Alias: None
Product: gcc
Classification: Unclassified
Component: rtl-optimization (show other bugs)
Version: 3.3.2
: P2 normal
Target Milestone: 3.3.3
Assignee: Not yet assigned to anyone
Keywords: build, ice-on-valid-code
Depends on:
Reported: 2003-11-21 05:59 UTC by xugenquan
Modified: 2005-07-23 22:49 UTC (History)
2 users (show)

See Also:
Host: ia64-hp-hpux11.22/hpux32
Target: ia64-hp-hpux11.22/hpux32
Build: ia64-hp-hpux11.22/hpux32
Known to work:
Known to fail:
Last reconfirmed:

preprocessed source ffitest.i (14.90 KB, text/plain)
2003-12-22 11:41 UTC, Benny Geys

Note You need to log in before you can comment on or make changes to this bug.
Description xugenquan 2003-11-21 05:59:16 UTC
/sunshine/develop/billing/gcc-3.3.2/libffi/src/ffitest.c: In function `main':
/sunshine/develop/billing/gcc-3.3.2/libffi/src/ffitest.c:1305: error: 
unrecognizable insn:
(call_insn 3977 3976 3978 124 7eb3cc40 (parallel [
            (set (reg:SI 8 r8)
                (call (mem:DI (symbol_ref:SI ("cl.0")) [0 S8 A64])
                    (const_int 1 [0x1])))
            (clobber (reg:DI 320 b0))
            (clobber (scratch:DI))
            (clobber (scratch:DI))
        ]) -1 (insn_list 3969 (insn_list 3970 (insn_list 3971 (insn_list 3972 
(insn_list 3973 (insn_list 3974 (insn_list 3975 (insn_list 3976 (nil)))))))))
    (expr_list:REG_DEAD (reg:DI 120 out0)
        (expr_list:REG_DEAD (reg:SI 121 out1)
            (expr_list:REG_DEAD (reg:DI 122 out2)
                (expr_list:REG_DEAD (reg:SI 123 out3)
                    (expr_list:REG_DEAD (reg:HI 124 out4)
                        (expr_list:REG_DEAD (reg:DI 125 out5)
                            (expr_list:REG_DEAD (reg:SI 126 out6)
                                (expr_list:REG_DEAD (reg:SI 127 out7)
                                    (expr_list:REG_DEAD (reg:DI 1 r1)
                                        (expr_list:REG_UNUSED (reg:DI 320 b0)
                                            (expr_list:REG_UNUSED (scratch:DI)
    (expr_list (use (reg:DI 1 r1))
        (expr_list (use (reg:SI 127 out7))
            (expr_list (use (reg:SI 126 out6))
                (expr_list (use (reg:DI 125 out5))
                    (expr_list (use (reg:HI 124 out4))
                        (expr_list (use (reg:SI 123 out3))
                            (expr_list (use (reg:DI 122 out2))
                                (expr_list (use (reg:SI 121 out1))
                                    (expr_list (use (reg:DI 120 out0))
/sunshine/develop/billing/gcc-3.3.2/libffi/src/ffitest.c:1305: internal 
compiler error: in extract_insn, at recog.c:2175
Comment 1 Andrew Pinski 2003-11-25 01:02:40 UTC
Can you provide the preprocessed source (see <http://gcc.gnu.org/bugs.html>) and the 
command line which is causing this?
Comment 2 Benny Geys 2003-12-19 11:32:36 UTC
I seem to have the same bug as the reporter.

- gcc 3.3.2 (downloaded the gcc-3.3.2.tar.gz from ftp.fu-

- IA64 architecture

- HPUX 11.23

- ../gcc-3.3.2/configure --prefix=/opt/gcc-3.3.2 --with-gnu-as --with-
as=/opt/binutils-2.14/ia64-hp-hpux11.23/bin/as --enable-threads=posix

- gmake bootstrap

- compiler output is the same as the reporter's

I have no idea how to get the preprocessed files.  I read that I needed to give 
the -save-temps options but 'gmake bootstrap -save-temps' doesn't work ofcourse.

Any help would be greatly appreciated.  Thank you for your time!
Comment 3 Andrew Pinski 2003-12-19 11:52:18 UTC
Note "compilation command" does not equal make command, it is the command which gets 
invoked by make.
Comment 4 Dara Hazeghi 2003-12-19 17:46:00 UTC
To get preprocessed source, rerun the last command that make invokes where it fails, adding -
save-temps. For instance, something like 'cd ia64-hp-hpux11.23/libffi; gcc -c -I../../../gcc/libffi 
... -save-temps ffitest.c' . 
Comment 5 Benny Geys 2003-12-22 11:41:46 UTC
Created attachment 5355 [details]
preprocessed source ffitest.i

This is the preprocessed source as you requested.  Thank's for the help!
Comment 6 Andrew Pinski 2003-12-28 03:23:43 UTC
Fixed for 3.3.3, most likely by:
2003-12-16  Zack Weinberg  <zack@codesourcery.com>

        Backport the following patches from mainline.

    2003-12-05  Mark Mitchell  <mark@codesourcery.com>

        * config/ia64/ia64.h (MUST_PASS_IN_STACK): Define.

    2003-12-01  James E Wilson  <wilson@specifixinc.com>

        * config/ia64/ia64.h (FUNCTION_ARG_REGNO_P): Use AR_REG_FIRST not

    2003-10-21  Zack Weinberg  <zack@codesourcery.com>

        * config/ia64/ia64.md (cmpxchg_acq_si): Mark operand 3 as DImode.
        * config/ia64/ia64.c (ia64_expand_fetch_and_op,
        ia64_expand_op_and_fetch): Make sure the REG for ar.ccv is
        DImode.   Use convert_move to load ar.ccv.
        (ia64_expand_compare_and_swap): Likewise.
        If expand_expr doesn't put 'old' and 'new' in the proper
        modes, run them through convert_to_mode.

    2003-10-14  Steve Ellcey  <sje@cup.hp.com>

        * config/ia64/ia64.c (ia64_expand_call): Force function address
        to DImode.
        * config/ia64/ia64.md (call_gp): Put DImode on operand 0.

    2003-06-11  Richard Henderson  <rth@redhat.com>

        * config/ia64/ia64.md (call_gp): Fix memory mode.

    2003-05-14  Eric Christopher  <echristo@redhat.com>

        * combine.c: Fix header comments.
        (distribute_notes): Remove usage of elim_i1, elim_i2. Propagate
        to all calls and prototype.