https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55212

--- Comment #378 from John Paul Adrian Glaubitz <glaubitz at physik dot 
fu-berlin.de> ---
(In reply to Oleg Endo from comment #375)
> (In reply to Kazumoto Kojima from comment #374)
> > Created attachment 59286 [details]
> > a patch for c#367
> > 
> > We use movsf_ie as a fall-back for for moving fp-reg from/to multiword
> > subreg in 59190.  Looks this confuses LRA with the SI mode scratch
> > constrained to "y".
> > 
> > The patch uses a new pattern instead of movsf_ie.  It's a mini movsf_ie in a
> > sense but with the SFmode scratch.
> > 
> > Tested only with target libgcc/libstdc++v3 build and c testsuite.
> 
> I've updated my branch https://github.com/olegendo/gcc/commits/devel/sh-lra/
> 
> * Merged the patch from comment #374 into the commit "SH: Try to workaround
> fp-reg related move insns pt.2".
> 
> * Tidied up the other patches on the stash a bit (add/fix commit messages,
> ..)
> 
> * The patch "SH: Tighten memory predicates and constraints" now seems to
> work without LRA.  At least the testsuite on sh-sim for the common variants
> shows no new failures.  My plan is to merge this commit into mainline soon,
> as a start.
> 
> Briefly confirmed that the previous problematic cases mentioned here still
> work with it (will add them to the testsuite eventually).  Also confirmed
> that sh-elf / newlib toolchain and target libs can build OK.  Testsuite
> results pending.  Hope I didn't miss anything, please re-confirm if you have
> a chance.

I just tried a full bootstrap using that tree with all languages but Rust and
Go enabled and it fails with:

during RTL pass: subreg3
../../gcc/ipa-sra.cc: In function 'void
{anonymous}::isra_read_edge_summary(lto_input_block*, cgraph_edge*)':
../../gcc/ipa-sra.cc:2933:1: internal compiler error: in
decompose_multiword_subregs, at lower-subreg.cc:1731
 2933 | }
      | ^
/home/glaubitz/gcc-oleg/build/./prev-gcc/xg++
-B/home/glaubitz/gcc-oleg/build/./prev-gcc/
-B/usr/local/sh4-unknown-linux-gnu/bin/ -nostdinc++
-B/home/glaubitz/gcc-oleg/build/prev-sh4-unknown-linux-gnu/libstdc++-v3/src/.libs
-B/home/glaubitz/gcc-oleg/build/prev-sh4-unknown-linux-gnu/libstdc++-v3/libsupc++/.libs

-I/home/glaubitz/gcc-oleg/build/prev-sh4-unknown-linux-gnu/libstdc++-v3/include/sh4-unknown-linux-gnu

-I/home/glaubitz/gcc-oleg/build/prev-sh4-unknown-linux-gnu/libstdc++-v3/include
 -I/home/glaubitz/gcc-oleg/libstdc++-v3/libsupc++
-L/home/glaubitz/gcc-oleg/build/prev-sh4-unknown-linux-gnu/libstdc++-v3/src/.libs
-L/home/glaubitz/gcc-oleg/build/prev-sh4-unknown-linux-gnu/libstdc++-v3/libsupc++/.libs
 -fPIC -c   -g -O2 -fno-checking -gtoggle -DIN_GCC    -fno-exceptions -fno-rtti
-fasynchronous-unwind-tables -W -Wall -Wno-error=narrowing -Wwrite-strings
-Wcast-qual -Wmissing-format-attribute -Wconditionally-supported
-Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros
-Wno-overlength-strings  -DHAVE_CONFIG_H -fPIC -I. -Irtl-ssa -I../../gcc
-I../../gcc/rtl-ssa -I../../gcc/../include  -I../../gcc/../libcpp/include
-I../../gcc/../libcody  -I../../gcc/../libdecnumber
-I../../gcc/../libdecnumber/dpd -I../libdecnumber -I../../gcc/../libbacktrace  
-o rtl-ssa/functions.o -MT rtl-ssa/functions.o -MMD -MP -MF
rtl-ssa/.deps/functions.TPo ../../gcc/rtl-ssa/functions.cc
0x3560f93 internal_error(char const*, ...)
        ../../gcc/diagnostic-global-context.cc:517
0x35261e3 fancy_abort(char const*, int, char const*)
        ../../gcc/diagnostic.cc:1512
0x32a5bcf decompose_multiword_subregs
        ../../gcc/lower-subreg.cc:1731
0x32a625f execute
        ../../gcc/lower-subreg.cc:1894
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.

Will test Kaz's patch seprately applied to sh-lra-take3.

Reply via email to