This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[lno] PATCH rs6000.md fix
- From: Mostafa Hagog <MUSTAFA at il dot ibm dot com>
- To: gcc-patches at gcc dot gnu dot org
- Cc: dje at watson dot ibm dot com, geoffk at desire dot geoffk dot org
- Date: Tue, 30 Mar 2004 16:53:18 +0200
- Subject: [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"))