11693 – [3.3 regression] [ia64] ICE in gen_nop_type (original) (raw)

Description Andreas Schwab 2003-07-28 13:34:51 UTC

gen_nop_type aborts because it gets called with TYPE_L. Dropping -frename- registers causes the ICE to go away.

$ ./cc1 -fpreprocessed -quiet -O2 -version -frename-registers ia64_mmu_init.c
GNU C version 3.3.1 20030728 (prerelease) (ia64-suse-linux) compiled by GNU C version 3.3.1 20030728 (prerelease). GGC heuristics: --param ggc-min-expand=65 --param ggc-min-heapsize=65536 ia64_mmu_init.c: In function `ia64_mmu_init': ia64_mmu_init.c:61: internal compiler error: in gen_nop_type, at config/ia64/ ia64.c:7006

Comment 2 Drea Pinski 2003-07-28 13:49:43 UTC

Note this does not fail on the mainline (20030705).

Comment 3 Drea Pinski 2003-07-28 15:34:35 UTC

Also in the mainline (20030728), this test does not fail.

Comment 4 Drea Pinski 2003-07-28 15:38:04 UTC

This was fixed on the mainline by: 2003-01-09 Vladimir Makarov

    The following changes are merged from itanium-sched-branch:
       a lot of changes.

Comment 5 Drea Pinski 2003-07-28 15:56:06 UTC

I can confirm this on 3.3.1 (20030714). TYPE_L is not implemented in gen_nop_type (;; L long immediate, takes two syllables).

Comment 6 Andreas Schwab 2003-07-28 17:45:06 UTC

nop.l does not exist, you rather put a nop.x in the next slot.

Comment 7 janis187 2003-08-01 23:19:33 UTC

The regression in PR 11693 was introduced or exposed with this patch:

--- gcc/gcc/ChangeLog ---

2001-08-18 Richard Henderson <rth@redhat.com> * config/ia64/ia64.c (ia64_internal_sched_reorder): Emit stop bit before asm as needed.

The regression hunt used a cross cc1 configured for ia64-linux on i686-pc-linux-gnu and compiled the test case from comment #1 with "-O2 -frename-registers".