Some minor modifications reflecting some changes in the peephole optimizer

This commit is contained in:
ceriel
1992-09-01 10:19:21 +00:00
parent 6f03cff48f
commit d18493b0ac
9 changed files with 162 additions and 190 deletions

View File

@@ -1468,14 +1468,14 @@ pat lol loc lol adu stl $1==$3 && $3==$5 && $4==WORD_SIZE
killreg %a
yields %a
pat lol lol loc sbu stl $1==$2 && $2==$5 && $4==WORD_SIZE && inreg($1)==reg_any
pat lol dup loc sbu stl $1==$5 && $2==WORD_SIZE && $4==WORD_SIZE && inreg($1)==reg_any
kills regvar($1, reg_any), use_index %xreg==regvar($1, reg_any)
uses DD_REG = {LOCAL, $1}
gen sub_i {const, $3}, {LOCAL, $1}
killreg %a
yields %a
pat lol lol loc sbu stl $1==$2 && $2==$5 && $4==WORD_SIZE
pat lol dup loc sbu stl $1==$5 && $2==WORD_SIZE && $4==WORD_SIZE
kills all_indir, LOCAL %bd==$1
uses DD_REG = {LOCAL, $1}
gen sub_i {const, $3}, {LOCAL, $1}
@@ -1489,7 +1489,7 @@ pat loe loc loe adu ste $1==$3 && $3==$5 && $4==WORD_SIZE
killreg %a
yields %a
pat loe loe loc sbu ste $1==$2 && $2==$5 && $4==WORD_SIZE
pat loe dup loc sbu ste $1==$5 && $2==WORD_SIZE && $4==WORD_SIZE
kills posextern
uses DD_REG = {absolute_int, $1}
gen sub_i {const,$3}, {absolute_int, $1}
@@ -1504,7 +1504,7 @@ pat lil loc lil adu sil $1==$3 && $3==$5 && $4==WORD_SIZE
killreg %a
yields %a
pat lil lil loc sbu sil $1==$2 && $2==$5 && $4==WORD_SIZE
pat lil dup loc sbu sil $1==$5 && $2==WORD_SIZE && $4==WORD_SIZE
&& inreg($1)==reg_pointer
kills allexceptcon
uses DD_REG = {indirect_int, regvar($1, reg_pointer)}
@@ -2500,14 +2500,14 @@ pat LLP ads SLP $1==$3 && $2==4 && inreg($1)==reg_pointer
kills regvar($1, reg_pointer), all_regind %reg==regvar($1, reg_pointer)
gen add_l %1, {DLOCAL, $1}
pat lil lil inc sil $1==$2 && $1==$4 && inreg($1)==reg_pointer
pat lil dup inc sil $1==$4 && $2==WORD_SIZE && inreg($1)==reg_pointer
kills allexceptcon
uses DD_REG = {indirect_int, regvar($1, reg_pointer)}
gen add_i {const, 1}, {indirect_int, regvar($1, reg_pointer)}
killreg %a
yields %a
pat lil lil dec sil $1==$2 && $1==$4 && inreg($1)==reg_pointer
pat lil dup dec sil $1==$4 && $2==WORD_SIZE && inreg($1)==reg_pointer
kills allexceptcon
uses DD_REG = {indirect_int, regvar($1, reg_pointer)}
gen sub_i {const, 1}, {indirect_int, regvar($1, reg_pointer)}
@@ -2608,25 +2608,25 @@ pat lil loi dup adp lil sti $3==4 && $1==$5 && $2==4 && $6==4
yields %b
#endif
pat LLP LLP adp SLP lae cmp $1==$2 && $2==$4 && inreg($1)==reg_pointer && $3 < 0
pat LLP dup adp SLP lae cmp $1==$4 && $2==4 && inreg($1)==reg_pointer && $3 < 0
kills regvar($1, reg_pointer), all_regind %reg==regvar($1, reg_pointer)
gen sub_l {const4,0-$3},{DLOCAL,$1}
yields {DLOCAL,$1} {ext_addr, $5+$3}
leaving cmu 4
pat LLP LLP adp SLP lae cmp $1==$2 && $2==$4 && inreg($1)==reg_pointer && $3 > 0
pat LLP dup adp SLP lae cmp $1==$4 && $2==4 && inreg($1)==reg_pointer && $3 > 0
kills regvar($1, reg_pointer), all_regind %reg==regvar($1, reg_pointer)
gen add_l {const4,$3},{DLOCAL,$1}
yields {DLOCAL,$1} {ext_addr, $5+$3}
leaving cmu 4
pat LLP LLP adp SLP loi $1==$2 && $1==$4 && $3==4 && $5==4 &&
pat LLP dup adp SLP loi $1==$4 && $2==4 && $3==4 && $5==4 &&
inreg($1)==reg_pointer
kills regvar($1, reg_pointer), all_regind %reg==regvar($1, reg_pointer)
yields {post_inc4, regvar($1, reg_pointer)}
pat LLP LLP adp SLP loi $1==$2 && $1==$4 && $3==$5 && inreg($1)==reg_pointer
leaving LLP $1 loi $5 LLP $2 adp $3 SLP $4
pat LLP dup adp SLP loi $1==$4 && $2==4 && $3==$5 && inreg($1)==reg_pointer
leaving LLP $1 loi $5 LLP $4 adp $3 SLP $4
pat LLP loi LLP adp SLP $1==$3 && $1==$5 && $2==1 && $4==1 &&
inreg($1)==reg_pointer
@@ -2648,8 +2648,8 @@ pat lil LLP adp SLP $1==$2 && $1==$4 && $3==WORD_SIZE && inreg($1)==reg_pointer
kills regvar($1, reg_pointer), all_regind %reg==regvar($1, reg_pointer)
yields {post_inc_int, regvar($1, reg_pointer)}
pat LLP LLP adp SLP sti $1==$2 && $1==$4 && $3==$5 && inreg($1)==reg_pointer
leaving LLP $1 sti $5 LLP $2 adp $3 SLP $4
pat LLP dup adp SLP sti $1==$4 && $2==4 && $3==$5 && inreg($1)==reg_pointer
leaving LLP $1 sti $5 LLP $4 adp $3 SLP $4
pat LLP sti LLP adp SLP $1==$3 && $1==$5 && $2==1 && $4==1 &&
inreg($1)==reg_pointer
@@ -2670,7 +2670,7 @@ with any4
kills allexceptcon, regvar($1, reg_pointer)
gen move %1, {post_inc4, regvar($1, reg_pointer)}
pat LLP LLP adp SLP sti $1==$2 && $1==$4 && $3==WORD_SIZE && $5==WORD_SIZE &&
pat LLP dup adp SLP sti $1==$4 && $2==4 && $3==WORD_SIZE && $5==WORD_SIZE &&
inreg($1)==reg_pointer
with any_int-sconsts
kills allexceptcon, regvar($1, reg_pointer)
@@ -2728,42 +2728,42 @@ with any_int-sconsts
kills allexceptcon, regvar($1, reg_pointer)
gen move %1, {pre_dec_int, regvar($1, reg_pointer)}
pat LLP LLP adp SLP $1==$2 && $1==$4 && inreg($1)==reg_pointer && directadd($3)
pat LLP dup adp SLP $1==$4 && $2==4 && inreg($1)==reg_pointer && directadd($3)
kills regvar($1, reg_pointer), all_regind %reg==regvar($1, reg_pointer)
uses AA_REG = {DLOCAL, $1}
gen add_l {const4, $3}, {DLOCAL, $1}
killreg %a
yields %a
pat LLP LLP adp SLP $1==$2 && $1==$4 && inreg($1)==reg_pointer && directsub($3)
pat LLP dup adp SLP $1==$4 && $2==4 && inreg($1)==reg_pointer && directsub($3)
kills regvar($1, reg_pointer), all_regind %reg==regvar($1, reg_pointer)
uses AA_REG = {DLOCAL, $1}
gen sub_l {const4, 0-$3}, {DLOCAL, $1}
killreg %a
yields %a
pat LLP LLP adp SLP $1==$2 && $1==$4 && inreg($1)==reg_pointer
pat LLP dup adp SLP $1==$4 && $2==4 && inreg($1)==reg_pointer
kills regvar($1, reg_pointer), all_regind %reg==regvar($1, reg_pointer)
uses AA_REG = {DLOCAL, $1}, DD_REG4 = {const4, $3}
gen add_l %b, {DLOCAL, $1}
killreg %a
yields %a
pat LLP LLP adp SLP $1==$2 && $1==$4 && directadd($3)
pat LLP dup adp SLP $1==$4 && $2==4 && directadd($3)
kills all_indir, DLOCAL %bd==$1
uses AA_REG = {DLOCAL, $1}
gen add_l {const4, $3}, {DLOCAL, $1}
killreg %a
yields %a
pat LLP LLP adp SLP $1==$2 && $1==$4 && directsub($3)
pat LLP dup adp SLP $1==$4 && $2==4 && directsub($3)
kills all_indir, DLOCAL %bd==$1
uses AA_REG = {DLOCAL, $1}
gen sub_l {const4, 0-$3}, {DLOCAL, $1}
killreg %a
yields %a
pat LLP LLP adp SLP $1==$2 && $1==$4
pat LLP dup adp SLP $1==$4 && $2==4
kills all_indir, DLOCAL %bd==$1
uses AA_REG = {DLOCAL, $1}, DD_REG4 = {const4, $3}
gen add_l %b, {DLOCAL, $1}
@@ -2797,7 +2797,7 @@ pat LLP adp SLP $1==$3
gen add_l %a, {DLOCAL, $1}
#if WORD_SIZE!=2
pat lil lil adp sil sti $1==$2 && $1==$4 && inreg($1)==reg_pointer && $5<=4
pat lil dup adp sil sti $1==$4 && $2==4 && inreg($1)==reg_pointer && $5<=4
with conreg
kills allexceptcon
uses AA_REG = {indirect4, regvar($1, reg_pointer)}
@@ -2805,14 +2805,14 @@ pat lil lil adp sil sti $1==$2 && $1==$4 && inreg($1)==reg_pointer && $5<=4
killreg %a
yields %1 %a leaving sti $5
pat lil lil adp sil $1==$2 && $1==$4 && inreg($1)==reg_pointer
pat lil dup adp sil $1==$4 && $2==4 && inreg($1)==reg_pointer
kills allexceptcon
uses AA_REG = {indirect4, regvar($1, reg_pointer)}
gen add_l {const, $3}, {indirect4, regvar($1, reg_pointer)}
killreg %a
yields %a
pat lil lil adp sil $1==$2 && $1==$4
pat lil dup adp sil $1==$4 && $2==4
kills allexceptcon
uses AA_REG, AA_REG = {LOCAL, $1}
gen move {indirect4, %b}, %a
@@ -2834,7 +2834,7 @@ pat lil adp sil $1==$3 && inreg($1)!=reg_any
#endif
#endif /* WORD_SIZE==2 */
pat LEP LEP adp SEP $1==$2 && $1==$4
pat LEP dup adp SEP $1==$4 && $2==4
kills posextern
uses AA_REG = {absolute4, $1}
gen add_l {const4, $3}, {absolute4, $1}
@@ -2895,8 +2895,6 @@ pat ldl yields {DLOCAL, $1}
pat loe yields {absolute_int, $1}
pat loe loe $1==$2 leaving loe $1 dup WORD_SIZE
/* replace ste loe by dup ste, but not if followed by a test ... */
proc steloezxx example ste loe zne
with any_int-sconsts