https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93877
Oleg Endo <olegendo at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |vmakarov at gcc dot gnu.org
--- Comment #12 from Oleg Endo <olegendo at gcc dot gnu.org> ---
This looks to be an LRA related issue (checking with GCC 10). Without -mlra it
actually compiles fine. Adding -mlra causes some issues:
sh-elf-g++ -m4 -ml -matomic-model=soft-gusa -O2 -fno-strict-aliasing
-fno-exceptions -fno-rtti -fPIC -fstack-protector-strong -std=c++17 -mlra
../Source/ThirdParty/ANGLE/src/compiler/translator/IntermNode.cpp: In static
member function 'static sh::TConstantUnion*
sh::TIntermConstantUnion::FoldAggregateBuiltIn(sh::TIntermAggregate*,
sh::TDiagnostics*)':
../Source/ThirdParty/ANGLE/src/compiler/translator/IntermNode.cpp:3747:1:
error: insn does not satisfy its constraints:
(insn 9652 9651 3240 388 (parallel [
(set (reg:SF 66 fr2 [orig:662 _764 ] [662])
(reg:SF 0 r0 [3347]))
(use (reg:SI 154 fpscr0))
(clobber (scratch:SI))
])
"../Source/ThirdParty/ANGLE/src/compiler/translator/IntermNode.cpp":3568:60 214
{movsf_ie}
(expr_list:REG_DEAD (reg:SF 0 r0 [3347])
(nil)))
during RTL pass: cprop_hardreg
../Source/ThirdParty/ANGLE/src/compiler/translator/IntermNode.cpp:3747:1:
internal compiler error: in extract_constrain_insn, at recog.c:2195
0x5dee99 _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
../../gcc/gcc/rtl-error.c:108
0x5deec2 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
../../gcc/gcc/rtl-error.c:118
0xe46907 extract_constrain_insn(rtx_insn*)
../../gcc/gcc/recog.c:2195
0xe4a204 copyprop_hardreg_forward_1
../../gcc/gcc/regcprop.c:802
0xe4b212 execute
../../gcc/gcc/regcprop.c:1367
sh-elf-g++ -m4 -ml -matomic-model=soft-gusa -O2 -std=c++17 -mlra
during RTL pass: reload
../Source/ThirdParty/ANGLE/src/compiler/translator/IntermNode.cpp: In member
function 'sh::TConstantUnion*
sh::TIntermConstantUnion::foldUnaryComponentWise(TOperator,
sh::TDiagnostics*)':
../Source/ThirdParty/ANGLE/src/compiler/translator/IntermNode.cpp:3047:1:
internal compiler error: in lra_set_insn_recog_data, at lra.c:1000
0xd1f5f1 lra_set_insn_recog_data(rtx_insn*)
../../gcc/gcc/lra.c:998
0xd2218f lra_get_insn_recog_data
../../gcc/gcc/lra-int.h:488
0xd2218f remove_scratches_1
../../gcc/gcc/lra.c:2058
0xd22247 lra_emit_move(rtx_def*, rtx_def*)
../../gcc/gcc/lra.c:503
0xd399bb curr_insn_transform
../../gcc/gcc/lra-constraints.c:4434
0xd3b20d lra_constraints(bool)
../../gcc/gcc/lra-constraints.c:5025
0xd227d4 lra(_IO_FILE*)
../../gcc/gcc/lra.c:2437
0xcd20c9 do_reload
../../gcc/gcc/ira.c:5523
0xcd20c9 execute
../../gcc/gcc/ira.c:5709
Vlad, maybe you have some hint where to look?