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]

[PATCH] Power: Reorder a sign-extend RTL pattern for readability


Hi,

 While examining the Power MD file seeking the explanation for a problem I 
saw I have noticed a change in the past separated one of the instruction 
splitters from its corresponding instruction pattern.  Several unrelated 
patterns were inserted between the two, presumably by accident where the 
`patch' tool applied a diff made from an older or modified tree in the 
wrong place.

 I find this arrangement confusing, so I propose to move the splitter 
back, next to the other pattern.  Here's the intended update.  No 
functional change.  OK to apply?

2012-08-10  Maciej W. Rozycki  <macro@codesourcery.com>

	gcc/
	* config/rs6000/rs6000.md: Move a splitter next to its insn.

  Maciej

gcc-rs6000-sign-extend-reorder.diff
Index: gcc-fsf-trunk-quilt/gcc/config/rs6000/rs6000.md
===================================================================
--- gcc-fsf-trunk-quilt.orig/gcc/config/rs6000/rs6000.md	2012-05-13 13:50:31.000000000 +0100
+++ gcc-fsf-trunk-quilt/gcc/config/rs6000/rs6000.md	2012-08-10 03:13:05.030525435 +0100
@@ -1048,6 +1048,20 @@
    #"
   [(set_attr "type" "compare")
    (set_attr "length" "4,8")])
+
+(define_split
+  [(set (match_operand:CC 2 "cc_reg_not_micro_cr0_operand" "")
+	(compare:CC (sign_extend:SI (match_operand:HI 1 "gpc_reg_operand" ""))
+		    (const_int 0)))
+   (set (match_operand:SI 0 "gpc_reg_operand" "")
+	(sign_extend:SI (match_dup 1)))]
+  "reload_completed"
+  [(set (match_dup 0)
+	(sign_extend:SI (match_dup 1)))
+   (set (match_dup 2)
+	(compare:CC (match_dup 0)
+		    (const_int 0)))]
+  "")
 
 ;; IBM 405, 440, 464 and 476 half-word multiplication operations.
 
@@ -1580,20 +1594,6 @@
   DONE;
 })
 
-(define_split
-  [(set (match_operand:CC 2 "cc_reg_not_micro_cr0_operand" "")
-	(compare:CC (sign_extend:SI (match_operand:HI 1 "gpc_reg_operand" ""))
-		    (const_int 0)))
-   (set (match_operand:SI 0 "gpc_reg_operand" "")
-	(sign_extend:SI (match_dup 1)))]
-  "reload_completed"
-  [(set (match_dup 0)
-	(sign_extend:SI (match_dup 1)))
-   (set (match_dup 2)
-	(compare:CC (match_dup 0)
-		    (const_int 0)))]
-  "")
-
 ;; Fixed-point arithmetic insns.
 
 (define_expand "add<mode>3"


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