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".