obsolette peep2s

Jan Hubicka jh@suse.cz
Thu Aug 23 09:53:00 GMT 2001


Hi,
now when combine cleanups noop moves, following peep2 should be obsolette.

Bootstrapped/regtested Athlon.

Honza

Thu Aug 23 18:50:05 CEST 2001  Jan Hubicka  <jh@suse.cz>
	* i386.md (cmpstr peep2): Delete.

*** i386.md.old	Wed Aug 22 15:21:39 2001
--- i386.md	Wed Aug 22 15:22:04 2001
***************
*** 15409,15499 ****
    [(set_attr "type" "str")
     (set_attr "mode" "QI")
     (set_attr "prefix_rep" "1")])
- 
- ;; Peephole optimizations to clean up after cmpstr*.  This should be
- ;; handled in combine, but it is not currently up to the task.
- ;; When used for their truth value, the cmpstr* expanders generate
- ;; code like this:
- ;;
- ;;   repz cmpsb
- ;;   seta 	%al
- ;;   setb 	%dl
- ;;   cmpb 	%al, %dl
- ;;   jcc	label
- ;;
- ;; The intermediate three instructions are unnecessary.
- 
- ;; This one handles cmpstr*_nz_1...
- (define_peephole2
-   [(parallel[
-      (set (reg:CC 17)
- 	  (compare:CC (mem:BLK (match_operand 4 "register_operand" ""))
- 		      (mem:BLK (match_operand 5 "register_operand" ""))))
-      (use (match_operand 6 "register_operand" ""))
-      (use (match_operand:SI 3 "immediate_operand" ""))
-      (use (reg:SI 19))
-      (clobber (match_operand 0 "register_operand" ""))
-      (clobber (match_operand 1 "register_operand" ""))
-      (clobber (match_operand 2 "register_operand" ""))])
-    (set (match_operand:QI 7 "register_operand" "")
- 	(gtu:QI (reg:CC 17) (const_int 0)))
-    (set (match_operand:QI 8 "register_operand" "")
- 	(ltu:QI (reg:CC 17) (const_int 0)))
-    (set (reg 17)
- 	(compare (match_dup 7) (match_dup 8)))
-   ]
-   "peep2_reg_dead_p (4, operands[7]) && peep2_reg_dead_p (4, operands[8])"
-   [(parallel[
-      (set (reg:CC 17)
- 	  (compare:CC (mem:BLK (match_dup 4))
- 		      (mem:BLK (match_dup 5))))
-      (use (match_dup 6))
-      (use (match_dup 3))
-      (use (reg:SI 19))
-      (clobber (match_dup 0))
-      (clobber (match_dup 1))
-      (clobber (match_dup 2))])]
-   "")
- 
- ;; ...and this one handles cmpstr*_1.
- (define_peephole2
-   [(parallel[
-      (set (reg:CC 17)
- 	  (if_then_else:CC (ne (match_operand 6 "register_operand" "")
- 			       (const_int 0))
- 	    (compare:CC (mem:BLK (match_operand 4 "register_operand" ""))
- 		        (mem:BLK (match_operand 5 "register_operand" "")))
- 	    (const_int 0)))
-      (use (match_operand:SI 3 "immediate_operand" ""))
-      (use (reg:CC 17))
-      (use (reg:SI 19))
-      (clobber (match_operand 0 "register_operand" ""))
-      (clobber (match_operand 1 "register_operand" ""))
-      (clobber (match_operand 2 "register_operand" ""))])
-    (set (match_operand:QI 7 "register_operand" "")
- 	(gtu:QI (reg:CC 17) (const_int 0)))
-    (set (match_operand:QI 8 "register_operand" "")
- 	(ltu:QI (reg:CC 17) (const_int 0)))
-    (set (reg 17)
- 	(compare (match_dup 7) (match_dup 8)))
-   ]
-   "peep2_reg_dead_p (4, operands[7]) && peep2_reg_dead_p (4, operands[8])"
-   [(parallel[
-      (set (reg:CC 17)
- 	  (if_then_else:CC (ne (match_dup 6)
- 			       (const_int 0))
- 	    (compare:CC (mem:BLK (match_dup 4))
- 			(mem:BLK (match_dup 5)))
- 	    (const_int 0)))
-      (use (match_dup 3))
-      (use (reg:CC 17))
-      (use (reg:SI 19))
-      (clobber (match_dup 0))
-      (clobber (match_dup 1))
-      (clobber (match_dup 2))])]
-   "")
- 
- 
  
  ;; Conditional move instructions.
  
--- 15408,15413 ----



More information about the Gcc-patches mailing list