i386.md: Add peephole to merge successive stack adjusts.
* config/i386/i386.md: Add peephole to merge successive stack adjusts. From-SVN: r31443
This commit is contained in:
parent
f83611476f
commit
08439bec5f
2 changed files with 24 additions and 0 deletions
|
@ -1,3 +1,8 @@
|
|||
2000-01-16 Zack Weinberg <zack@wolery.cumb.org>
|
||||
|
||||
* config/i386/i386.md: Add peephole to merge successive stack
|
||||
adjusts.
|
||||
|
||||
Sat Jan 15 15:41:14 EST 2000 John Wehle (john@feith.com)
|
||||
|
||||
* gcse.c (insert_insn_end_bb): Use emit_block_insn_before
|
||||
|
|
|
@ -8947,6 +8947,25 @@
|
|||
[(parallel [(set (match_dup 0) (ashift:SI (match_dup 0) (match_dup 2)))
|
||||
(clobber (reg:CC 17))])]
|
||||
"operands[2] = GEN_INT (exact_log2 (INTVAL (operands[1])));")
|
||||
|
||||
;; Merge two successive stack adjusts. The combiner doesn't know how
|
||||
;; to do this, and doesn't see all of them.
|
||||
;; (reg:SI 7) is %esp.
|
||||
(define_peephole2
|
||||
[(parallel[
|
||||
(set (reg:SI 7)
|
||||
(plus:SI (reg:SI 7) (match_operand:SI 0 "const_int_operand" "")))
|
||||
(clobber (reg:CC 17))])
|
||||
(parallel[
|
||||
(set (reg:SI 7)
|
||||
(plus:SI (reg:SI 7) (match_operand:SI 1 "const_int_operand" "")))
|
||||
(clobber (reg:CC 17))])]
|
||||
""
|
||||
[(parallel[
|
||||
(set (reg:SI 7)
|
||||
(plus:SI (reg:SI 7) (match_dup 2)))
|
||||
(clobber (reg:CC 17))])]
|
||||
"operands[2] = GEN_INT (INTVAL (operands[0]) + INTVAL (operands[1]));")
|
||||
|
||||
;; Call-value patterns last so that the wildcard operand does not
|
||||
;; disrupt insn-recog's switch tables.
|
||||
|
|
Loading…
Add table
Reference in a new issue