Resubmit/ping: peephole2 vs cond-exec vs df

Bernd Schmidt bernds@codesourcery.com
Wed Jun 30 11:52:00 GMT 2010


On 06/30/2010 12:00 PM, Richard Guenther wrote:

> We're peepholing in circles after your patch.  The peephole2
> dump isn't very informative - how can I see which peephole2s
> matched?

Not easily.  Maybe breakpoints on all the gen_peephole2_ functions; we
should probably add that to the dumps.

Seems to be something involving FIX insns, I suspect

;; Shorten x87->SSE reload sequences of fix_trunc?f?i_sse patterns.
(define_peephole2
  [(set (match_operand:MODEF 0 "register_operand" "")
	(match_operand:MODEF 1 "memory_operand" ""))
   (set (match_operand:SSEMODEI24 2 "register_operand" "")
	(fix:SSEMODEI24 (match_dup 0)))]
  "TARGET_SHORTEN_X87_SSE
   && peep2_reg_dead_p (2, operands[0])"
  [(set (match_dup 2) (fix:SSEMODEI24 (match_dup 1)))]
  "")

and

(define_peephole2
  [(match_scratch:SF 2 "x")
   (set (match_operand:SSEMODEI24 0 "register_operand" "")
	(fix:SSEMODEI24 (match_operand:SF 1 "memory_operand" "")))]
  "TARGET_AVOID_VECTOR_DECODE && optimize_insn_for_speed_p ()"
  [(set (match_dup 2) (match_dup 1))
   (set (match_dup 0) (fix:SSEMODEI24 (match_dup 2)))]
  "")

are a loop.


Bernd



More information about the Gcc-patches mailing list