Message ID | AANLkTikZlURjKWhn8OQ_cGUx2I05DRkmQwo3AWhBr31g@mail.gmail.com |
---|---|
State | New |
Headers | show |
On Tue, Jun 29, 2010 at 7:26 PM, H.J. Lu <hjl.tools@gmail.com> wrote: > On Tue, Jun 29, 2010 at 5:43 PM, Andrew Pinski <pinskia@gmail.com> wrote: >> On Tue, Jun 29, 2010 at 5:41 PM, Andrew Pinski <pinskia@gmail.com> wrote: >>> On Tue, Jun 29, 2010 at 6:22 AM, Bernd Schmidt <bernds@codesourcery.com> wrote: >>>> No, those parts of the buffer that weren't part of the match remain >>>> unaffected, we keep both the insns and their life information. We only >>>> rebuild life for the new insns produced by the match. >>>> >>>> Here's a new version with a few more comments and a few remnants of old >>>> code removed. I've also removed some dead code found in genrecog.c (got >>>> sidetracked today into debugging the current peephole2 code again...); >>>> this was left in after your r34208 patch. >>> >>> I think this causes a bootstrap failure on x86_64-linux-gnu: >>> /home/apinski/src/gcc-fsf/local//gcc/gcc/coverage.c:151:1: error: >>> unrecognizable insn: >>> (insn 25 7 26 2 >>> /home/apinski/src/gcc-fsf/local//gcc/gcc/coverage.c:150 (set (reg:DI 1 >>> dx) >>> (mem/s:SI (plus:DI (reg/v/f:DI 5 di [orig:64 of ] [64]) >>> (const_int 4 [0x4])) [15 entry_2->ctr+0 S4 A32])) -1 (nil)) >>> /home/apinski/src/gcc-fsf/local//gcc/gcc/coverage.c:151:1: internal >>> compiler error: in extract_insn, at recog.c:2127 >> >> + [(match_scratch:SI 5 "r") >> >> I think the :SI part is incorrect, we need a DI mode on x86_64 rather >> than a SImode. >> > > Like this? > > -- > H.J. > --- > Index: gcc/config/i386/i386.md > =================================================================== > --- gcc/config/i386/i386.md (revision 161586) > +++ gcc/config/i386/i386.md (working copy) > @@ -17558,7 +17558,7 @@ > ;; leal (%edx,%eax,4), %eax > > (define_peephole2 > - [(match_scratch:SI 5 "r") > + [(match_scratch:P 5 "r") > (parallel [(set (match_operand 0 "register_operand" "") > (ashift (match_operand 1 "register_operand" "") > (match_operand 2 "const_int_operand" ""))) > It doesn't work.
Index: gcc/config/i386/i386.md =================================================================== --- gcc/config/i386/i386.md (revision 161586) +++ gcc/config/i386/i386.md (working copy) @@ -17558,7 +17558,7 @@ ;; leal (%edx,%eax,4), %eax (define_peephole2 - [(match_scratch:SI 5 "r") + [(match_scratch:P 5 "r") (parallel [(set (match_operand 0 "register_operand" "") (ashift (match_operand 1 "register_operand" "") (match_operand 2 "const_int_operand" "")))