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

--- Comment #269 from Kazumoto Kojima <kkojima at gcc dot gnu.org> ---
(In reply to Kazumoto Kojima from comment #267)
> (In reply to Oleg Endo from comment #264)
> > Very nice!  So it seems indeed, splitting up the "mega move patterns" into
> > simpler ones where predicates are more closer to the actual constraints give
> > better results (if I'm not mistaken).  Have you also tried using these
> > patterns without LRA?  I'm just wondering if we need to distinguish between
> > LRA/non-LRA case at all.
> 
> I'll give it a try and report back.

Unfortunately, it doesn't seem to work.  It can build target libgcc/libstdc++v3
libs, but I got the our old friend when compiling
gcc.c-torture/compile/20031220-2.c with -O2

... error: unable to find a register to spill in class 'R0_REGS'
... error: this is the insn:
(insn 4 27 158 6 (parallel [
            (set (reg/v:SF 174 [ h ])
                (const_double:SF 5.0e-1 [0x0.8p+0]))
            (use (reg:SI 154 fpscr0))
            (clobber (reg:SI 0 r0))
        ]) "/git/gcc/gcc/testsuite/gcc.c-torture/compile/20031220-2.c":27:11
233
 {movsf_ie}

Reply via email to