This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[lno] PATCH rs6000.md fix


The following patch fixes an inconsistency in doloop related patterns of
rs6000.md.
Dorit Naishlos has pointed out to me that the gap benchmark fails on the
lno branch when
gcse-after-reload is specified. It turned that this is due to the same
problem that appeared
in s390 port (http://gcc.gnu.org/ml/gcc-patches/2004-03/msg01803.html).

Bootstraps on powerpc-apple-darwin7.2.0, no new regressions. Ok to commit
to lno?
IMO this should go also to mainline.

2004-03-28 Mostafa Hagog  <mustafa@il.ibm.com>

      * config/rs6000/rs6000.md ("*ctrsi_internal1", "*ctrsi_internal2",
      "*ctrdi_internal1", "*ctrdi_internal2", "*ctrsi_internal3",
      "*ctrsi_internal4", "*ctrdi_internal3", "*ctrdi_internal4",
      "*ctrsi_internal5", "*ctrsi_internal6", "*ctrdi_internal5",
      "*ctrdi_internal6"): Replace register_operand with
nonimmediate_operand


Index: rs6000.md
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/rs6000.md,v
retrieving revision 1.190.2.35.2.3
diff -c -p -r1.190.2.35.2.3 rs6000.md
*** rs6000.md     21 Mar 2004 03:21:23 -0000    1.190.2.35.2.3
--- rs6000.md     28 Mar 2004 09:20:59 -0000
***************
*** 13900,13906 ****
                    (const_int 1))
                  (label_ref (match_operand 0 "" ""))
                  (pc)))
!    (set (match_operand:SI 2 "register_operand" "=1,*r,m,*q*c*l")
      (plus:SI (match_dup 1)
             (const_int -1)))
     (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
--- 13900,13906 ----
                    (const_int 1))
                  (label_ref (match_operand 0 "" ""))
                  (pc)))
!    (set (match_operand:SI 2 "nonimmediate_operand" "=1,*r,m,*q*c*l")
      (plus:SI (match_dup 1)
             (const_int -1)))
     (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
***************
*** 13924,13930 ****
                    (const_int 1))
                  (pc)
                  (label_ref (match_operand 0 "" ""))))
!    (set (match_operand:SI 2 "register_operand" "=1,*r,m,*q*c*l")
      (plus:SI (match_dup 1)
             (const_int -1)))
     (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
--- 13924,13930 ----
                    (const_int 1))
                  (pc)
                  (label_ref (match_operand 0 "" ""))))
!    (set (match_operand:SI 2 "nonimmediate_operand" "=1,*r,m,*q*c*l")
      (plus:SI (match_dup 1)
             (const_int -1)))
     (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
***************
*** 13948,13954 ****
                    (const_int 1))
                  (label_ref (match_operand 0 "" ""))
                  (pc)))
!    (set (match_operand:DI 2 "register_operand" "=1,*r,m,*c*l")
      (plus:DI (match_dup 1)
             (const_int -1)))
     (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
--- 13948,13954 ----
                    (const_int 1))
                  (label_ref (match_operand 0 "" ""))
                  (pc)))
!    (set (match_operand:DI 2 "nonimmediate_operand" "=1,*r,m,*c*l")
      (plus:DI (match_dup 1)
             (const_int -1)))
     (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
***************
*** 13972,13978 ****
                    (const_int 1))
                  (pc)
                  (label_ref (match_operand 0 "" ""))))
!    (set (match_operand:DI 2 "register_operand" "=1,*r,m,*c*l")
      (plus:DI (match_dup 1)
             (const_int -1)))
     (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
--- 13972,13978 ----
                    (const_int 1))
                  (pc)
                  (label_ref (match_operand 0 "" ""))))
!    (set (match_operand:DI 2 "nonimmediate_operand" "=1,*r,m,*c*l")
      (plus:DI (match_dup 1)
             (const_int -1)))
     (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
***************
*** 13998,14004 ****
                    (const_int 0))
                  (label_ref (match_operand 0 "" ""))
                  (pc)))
!    (set (match_operand:SI 2 "register_operand" "=1,*r,m,*q*c*l")
      (plus:SI (match_dup 1)
             (const_int -1)))
     (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
--- 13998,14004 ----
                    (const_int 0))
                  (label_ref (match_operand 0 "" ""))
                  (pc)))
!    (set (match_operand:SI 2 "nonimmediate_operand" "=1,*r,m,*q*c*l")
      (plus:SI (match_dup 1)
             (const_int -1)))
     (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
***************
*** 14022,14028 ****
                    (const_int 0))
                  (pc)
                  (label_ref (match_operand 0 "" ""))))
!    (set (match_operand:SI 2 "register_operand" "=1,*r,m,*q*c*l")
      (plus:SI (match_dup 1)
             (const_int -1)))
     (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
--- 14022,14028 ----
                    (const_int 0))
                  (pc)
                  (label_ref (match_operand 0 "" ""))))
!    (set (match_operand:SI 2 "nonimmediate_operand" "=1,*r,m,*q*c*l")
      (plus:SI (match_dup 1)
             (const_int -1)))
     (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
***************
*** 14046,14052 ****
                    (const_int 0))
                  (label_ref (match_operand 0 "" ""))
                  (pc)))
!    (set (match_operand:DI 2 "register_operand" "=1,*r,m,*c*l")
      (plus:DI (match_dup 1)
             (const_int -1)))
     (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
--- 14046,14052 ----
                    (const_int 0))
                  (label_ref (match_operand 0 "" ""))
                  (pc)))
!    (set (match_operand:DI 2 "nonimmediate_operand" "=1,*r,m,*c*l")
      (plus:DI (match_dup 1)
             (const_int -1)))
     (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
***************
*** 14070,14076 ****
                    (const_int 0))
                  (pc)
                  (label_ref (match_operand 0 "" ""))))
!    (set (match_operand:DI 2 "register_operand" "=1,*r,m,*c*l")
      (plus:DI (match_dup 1)
             (const_int -1)))
     (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
--- 14070,14076 ----
                    (const_int 0))
                  (pc)
                  (label_ref (match_operand 0 "" ""))))
!    (set (match_operand:DI 2 "nonimmediate_operand" "=1,*r,m,*c*l")
      (plus:DI (match_dup 1)
             (const_int -1)))
     (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
***************
*** 14096,14102 ****
                    (const_int 1))
                  (label_ref (match_operand 0 "" ""))
                  (pc)))
!    (set (match_operand:SI 2 "register_operand" "=1,*r,m,*q*c*l")
      (plus:SI (match_dup 1)
             (const_int -1)))
     (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
--- 14096,14102 ----
                    (const_int 1))
                  (label_ref (match_operand 0 "" ""))
                  (pc)))
!    (set (match_operand:SI 2 "nonimmediate_operand" "=1,*r,m,*q*c*l")
      (plus:SI (match_dup 1)
             (const_int -1)))
     (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
***************
*** 14120,14126 ****
                    (const_int 1))
                  (pc)
                  (label_ref (match_operand 0 "" ""))))
!    (set (match_operand:SI 2 "register_operand" "=1,*r,m,*q*c*l")
      (plus:SI (match_dup 1)
             (const_int -1)))
     (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
--- 14120,14126 ----
                    (const_int 1))
                  (pc)
                  (label_ref (match_operand 0 "" ""))))
!    (set (match_operand:SI 2 "nonimmediate_operand" "=1,*r,m,*q*c*l")
      (plus:SI (match_dup 1)
             (const_int -1)))
     (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
***************
*** 14144,14150 ****
                    (const_int 1))
                  (label_ref (match_operand 0 "" ""))
                  (pc)))
!    (set (match_operand:DI 2 "register_operand" "=1,*r,m,*c*l")
      (plus:DI (match_dup 1)
             (const_int -1)))
     (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
--- 14144,14150 ----
                    (const_int 1))
                  (label_ref (match_operand 0 "" ""))
                  (pc)))
!    (set (match_operand:DI 2 "nonimmediate_operand" "=1,*r,m,*c*l")
      (plus:DI (match_dup 1)
             (const_int -1)))
     (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
***************
*** 14168,14174 ****
                    (const_int 1))
                  (pc)
                  (label_ref (match_operand 0 "" ""))))
!    (set (match_operand:DI 2 "register_operand" "=1,*r,m,*c*l")
      (plus:DI (match_dup 1)
             (const_int -1)))
     (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))
--- 14168,14174 ----
                    (const_int 1))
                  (pc)
                  (label_ref (match_operand 0 "" ""))))
!    (set (match_operand:DI 2 "nonimmediate_operand" "=1,*r,m,*c*l")
      (plus:DI (match_dup 1)
             (const_int -1)))
     (clobber (match_scratch:CC 3 "=X,&x,&x,&x"))




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]