[Bug rtl-optimization/66207] Switch alpha to LRA
ubizjak at gmail dot com
gcc-bugzilla@gcc.gnu.org
Tue May 19 16:11:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66207
--- Comment #2 from Uroš Bizjak <ubizjak at gmail dot com> ---
The patched gcc (the patch from Comment #1) bootstrap went all the way to stage
2, where it crashed on attached source when building libcpp with:
/space/homedirs/uros/gcc-svn/trunk/libcpp/macro.c: In function ‘const
cpp_token* cpp_get_token_1(cpp_reader*, source_location*)’:
/space/homedirs/uros/gcc-svn/trunk/libcpp/macro.c:2568:1: internal compiler
error: Max. number of generated reload insns per insn is achieved (90)
}
^
0x120cfd257 lra_constraints(bool)
/space/homedirs/uros/gcc-svn/trunk/gcc/lra-constraints.c:4379
0x120cdd6fb lra(_IO_FILE*)
/space/homedirs/uros/gcc-svn/trunk/gcc/lra.c:2320
0x120c62b77 do_reload
/space/homedirs/uros/gcc-svn/trunk/gcc/ira.c:5418
0x120c632af execute
/space/homedirs/uros/gcc-svn/trunk/gcc/ira.c:5589
Please submit a full bug report,
The crash can be reproduced with a crosscompiler from x86_64-linux-gnu,
configured with "--target=alpha-linux-gnu --enable-languages=c,c++"
$ cc1plus -O2 -fpreprocessed -o macro.o macro.ii
/space/homedirs/uros/gcc-svn/trunk/libcpp/macro.c: In function ‘const
cpp_token* cpp_get_token_1(cpp_reader*, source_location*)’:
/space/homedirs/uros/gcc-svn/trunk/libcpp/macro.c:2568:1: internal compiler
error: Max. number of generated reload insns per insn is achieved (90)
0xa9b474 lra_constraints(bool)
/home/uros/gcc-svn/trunk/gcc/lra-constraints.c:4379
0xa87e4c lra(_IO_FILE*)
/home/uros/gcc-svn/trunk/gcc/lra.c:2320
0xa49929 do_reload
/home/uros/gcc-svn/trunk/gcc/ira.c:5418
0xa49929 execute
/home/uros/gcc-svn/trunk/gcc/ira.c:5589
Please submit a full bug report,
(gdb) up
#1 0x0000000000a9b475 in lra_constraints (first_p=true) at
/home/uros/gcc-svn/trunk/gcc/lra-constraints.c:4379
4379 MAX_RELOAD_INSNS_NUMBER);
(gdb) p curr_insn
$1 = (rtx_insn *) 0x7ffff13d5fc0
(gdb) p debug_rtx (curr_insn)
(insn 973 639 972 89 (set (reg:QI 539 [183])
(reg:QI 183))
/space/homedirs/uros/gcc-svn/trunk/libcpp/macro.c:2566 229 {*movqi}
(nil))
The end of reload dump shows this sequence:
Choosing alt 0 in insn 643: (0) =r (1) r {zero_extendqidi2}
Creating newreg=449 from oldreg=183, assigning class GENERAL_REGS to r449
643: r427:SI#0=zero_extend(r449:QI)
REG_DEAD r183:QI
Inserting insn reload before:
883: r449:QI=r183:QI
0 Non pseudo reload: reject++
alt=0,overall=607,losers=1,rld_nregs=1
0 Non pseudo reload: reject++
alt=1: Bad operand -- refuse
Choosing alt 0 in insn 883: (0) =r (1) rJ {*movqi}
Creating newreg=450 from oldreg=183, assigning class GENERAL_REGS to r450
883: r449:QI=r450:QI
Inserting insn reload before:
884: r450:QI=r183:QI
More information about the Gcc-bugs
mailing list