[Bug ipa/63566] New: [5 Regression] i686 bootstrap fails: ICE RTL flag check: INSN_UID used with unexpected rtx code 'set' in INSN_UID, at rtl.h:1326
mliska at suse dot cz
gcc-bugzilla@gcc.gnu.org
Thu Oct 16 22:17:00 GMT 2014
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63566
Bug ID: 63566
Summary: [5 Regression] i686 bootstrap fails: ICE RTL flag
check: INSN_UID used with unexpected rtx code 'set' in
INSN_UID, at rtl.h:1326
Product: gcc
Version: 5.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: ipa
Assignee: unassigned at gcc dot gnu.org
Reporter: mliska at suse dot cz
After introduction of IPA ICF in r216305, i686 fails to bootstrap.
I reduced IPA ICF to just merge a single function:
Semantic equality hit:void mark_oprs_set(rtx_insn*)->void
make_set_regs_unavailable(rtx_insn*).
With this change applied, stage2 compiler is miscompiled and following error
occurs:
../../../libgcc/config/libbid/bid_round.c: In function ‘__bid_round64_2_18’:
../../../libgcc/config/libbid/bid_round.c:210:1: internal compiler error: RTL
flag check: INSN_UID used with unexpected rtx code 'set' in INSN_UID, at
rtl.h:1326
Comparison of object files (compiled with stage1 compiler with and w/o
-fipa-icf) show following difference:
With IPA ICF (cprop.o):
contains .set
_ZL25make_set_regs_unavailableP8rtx_insn,_ZL13mark_oprs_setP8rtx_insn
and the only difference is in usage of the function (IPA ICF):
.L633:
subl $12, %esp
.cfi_def_cfa_offset 108
pushl %ebx
.cfi_def_cfa_offset 112
call _ZL25make_set_regs_unavailableP8rtx_insn
movzwl (%ebx), %edx
addl $16, %esp
.cfi_def_cfa_offset 96
cmpb $0, rtx_length(%edx)
jne .L643
while original usage (-fno-ipa-icf) contains:
.L644:
movl %ebx, %eax
call _ZL25make_set_regs_unavailableP8rtx_insn
movzwl (%ebx), %edx
cmpb $0, rtx_length(%edx)
jne .L654
I am not familiar with x86 calling conventions for aliases, but I suspect this
chunk of code.
Does anyone can see a problem in this chunk?
Thank you for help,
Martin
More information about the Gcc-bugs
mailing list