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