mirror of https://github.com/golang/go.git
cmd/compile: remove chunking of rewrite rules
We added chunking of rewrite rules to speed up compiling package SSA. This series of changes has significantly shrunk the number of rewrite rules, and they are no longer being added nearly as fast. Now that we are sharing v.Args across multiple rewrite rules, there is additional benefit to having more rules in a single function. Removing chunking now has an incidental impact on compiling package SSA, marginally speeds up other compilation, shrinks the cmd/compile binary, and simplifies the code. name old time/op new time/op delta Template 211ms ± 2% 210ms ± 2% -0.50% (p=0.000 n=91+97) Unicode 81.9ms ± 3% 81.8ms ± 3% ~ (p=0.179 n=96+91) GoTypes 731ms ± 2% 731ms ± 1% ~ (p=0.442 n=94+96) Compiler 3.43s ± 2% 3.41s ± 2% -0.36% (p=0.001 n=98+94) SSA 8.30s ± 2% 8.32s ± 2% +0.19% (p=0.034 n=94+95) Flate 135ms ± 2% 134ms ± 1% -0.30% (p=0.006 n=98+94) GoParser 167ms ± 1% 167ms ± 1% -0.22% (p=0.001 n=92+94) Reflect 453ms ± 2% 453ms ± 3% ~ (p=0.306 n=98+97) Tar 184ms ± 2% 183ms ± 2% -0.31% (p=0.012 n=94+94) XML 249ms ± 2% 248ms ± 1% -0.26% (p=0.002 n=96+92) [Geo mean] 419ms 418ms -0.21% name old user-time/op new user-time/op delta Template 273ms ± 2% 272ms ± 2% -0.46% (p=0.000 n=93+96) Unicode 116ms ± 4% 117ms ± 4% ~ (p=0.433 n=98+98) GoTypes 977ms ± 2% 977ms ± 1% ~ (p=0.971 n=92+99) Compiler 4.56s ± 6% 4.53s ± 6% ~ (p=0.081 n=100+100) SSA 11.1s ± 2% 11.1s ± 2% ~ (p=0.064 n=99+96) Flate 167ms ± 2% 167ms ± 1% -0.24% (p=0.004 n=95+96) GoParser 203ms ± 1% 203ms ± 2% -0.14% (p=0.049 n=96+97) Reflect 595ms ± 2% 595ms ± 2% ~ (p=0.544 n=95+92) Tar 225ms ± 2% 224ms ± 2% ~ (p=0.562 n=99+99) XML 312ms ± 2% 311ms ± 1% ~ (p=0.050 n=97+93) [Geo mean] 543ms 542ms -0.13% Change-Id: I8d34ab59f154b28f20c6f9e416b976bfce339baa Reviewed-on: https://go-review.googlesource.com/c/go/+/216220 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
This commit is contained in:
parent
1bc116b73c
commit
6dd11bcb35
|
|
@ -170,7 +170,6 @@ func genRulesSuffix(arch arch, suff string) {
|
|||
sort.Strings(ops)
|
||||
|
||||
genFile := &File{arch: arch, suffix: suff}
|
||||
const chunkSize = 10
|
||||
// Main rewrite routine is a switch on v.Op.
|
||||
fn := &Func{kind: "Value", arglen: -1}
|
||||
|
||||
|
|
@ -185,12 +184,8 @@ func genRulesSuffix(arch arch, suff string) {
|
|||
continue
|
||||
}
|
||||
|
||||
var ors []string
|
||||
for chunk := 0; chunk < len(oprules[op]); chunk += chunkSize {
|
||||
ors = append(ors, fmt.Sprintf("rewriteValue%s%s_%s_%d(v)", arch.name, suff, op, chunk))
|
||||
}
|
||||
swc := &Case{expr: exprf(op)}
|
||||
swc.add(stmtf("return %s", strings.Join(ors, " || ")))
|
||||
swc.add(stmtf("return rewriteValue%s%s_%s(v)", arch.name, suff, op))
|
||||
sw.add(swc)
|
||||
}
|
||||
fn.add(sw)
|
||||
|
|
@ -206,48 +201,41 @@ func genRulesSuffix(arch arch, suff string) {
|
|||
continue
|
||||
}
|
||||
|
||||
// rr is kept between chunks, so that a following chunk checks
|
||||
// that the previous one ended with a rule that wasn't
|
||||
// unconditional.
|
||||
// rr is kept between iterations, so that each rule can check
|
||||
// that the previous rule wasn't unconditional.
|
||||
var rr *RuleRewrite
|
||||
for chunk := 0; chunk < len(rules); chunk += chunkSize {
|
||||
endchunk := chunk + chunkSize
|
||||
if endchunk > len(rules) {
|
||||
endchunk = len(rules)
|
||||
}
|
||||
fn := &Func{
|
||||
kind: "Value",
|
||||
suffix: fmt.Sprintf("_%s_%d", op, chunk),
|
||||
arglen: opByName(arch, op).argLength,
|
||||
}
|
||||
fn.add(declf("b", "v.Block"))
|
||||
fn.add(declf("config", "b.Func.Config"))
|
||||
fn.add(declf("fe", "b.Func.fe"))
|
||||
fn.add(declf("typ", "&b.Func.Config.Types"))
|
||||
for _, rule := range rules[chunk:endchunk] {
|
||||
if rr != nil && !rr.canFail {
|
||||
log.Fatalf("unconditional rule %s is followed by other rules", rr.match)
|
||||
}
|
||||
rr = &RuleRewrite{loc: rule.loc}
|
||||
rr.match, rr.cond, rr.result = rule.parse()
|
||||
pos, _ := genMatch(rr, arch, rr.match, fn.arglen >= 0)
|
||||
if pos == "" {
|
||||
pos = "v.Pos"
|
||||
}
|
||||
if rr.cond != "" {
|
||||
rr.add(breakf("!(%s)", rr.cond))
|
||||
}
|
||||
genResult(rr, arch, rr.result, pos)
|
||||
if *genLog {
|
||||
rr.add(stmtf("logRule(%q)", rule.loc))
|
||||
}
|
||||
fn.add(rr)
|
||||
}
|
||||
if rr.canFail {
|
||||
fn.add(stmtf("return false"))
|
||||
}
|
||||
genFile.add(fn)
|
||||
fn := &Func{
|
||||
kind: "Value",
|
||||
suffix: fmt.Sprintf("_%s", op),
|
||||
arglen: opByName(arch, op).argLength,
|
||||
}
|
||||
fn.add(declf("b", "v.Block"))
|
||||
fn.add(declf("config", "b.Func.Config"))
|
||||
fn.add(declf("fe", "b.Func.fe"))
|
||||
fn.add(declf("typ", "&b.Func.Config.Types"))
|
||||
for _, rule := range rules {
|
||||
if rr != nil && !rr.canFail {
|
||||
log.Fatalf("unconditional rule %s is followed by other rules", rr.match)
|
||||
}
|
||||
rr = &RuleRewrite{loc: rule.loc}
|
||||
rr.match, rr.cond, rr.result = rule.parse()
|
||||
pos, _ := genMatch(rr, arch, rr.match, fn.arglen >= 0)
|
||||
if pos == "" {
|
||||
pos = "v.Pos"
|
||||
}
|
||||
if rr.cond != "" {
|
||||
rr.add(breakf("!(%s)", rr.cond))
|
||||
}
|
||||
genResult(rr, arch, rr.result, pos)
|
||||
if *genLog {
|
||||
rr.add(stmtf("logRule(%q)", rule.loc))
|
||||
}
|
||||
fn.add(rr)
|
||||
}
|
||||
if rr.canFail {
|
||||
fn.add(stmtf("return false"))
|
||||
}
|
||||
genFile.add(fn)
|
||||
}
|
||||
|
||||
// Generate block rewrite function. There are only a few block types
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -6,21 +6,21 @@ package ssa
|
|||
func rewriteValue386splitload(v *Value) bool {
|
||||
switch v.Op {
|
||||
case Op386CMPBconstload:
|
||||
return rewriteValue386splitload_Op386CMPBconstload_0(v)
|
||||
return rewriteValue386splitload_Op386CMPBconstload(v)
|
||||
case Op386CMPBload:
|
||||
return rewriteValue386splitload_Op386CMPBload_0(v)
|
||||
return rewriteValue386splitload_Op386CMPBload(v)
|
||||
case Op386CMPLconstload:
|
||||
return rewriteValue386splitload_Op386CMPLconstload_0(v)
|
||||
return rewriteValue386splitload_Op386CMPLconstload(v)
|
||||
case Op386CMPLload:
|
||||
return rewriteValue386splitload_Op386CMPLload_0(v)
|
||||
return rewriteValue386splitload_Op386CMPLload(v)
|
||||
case Op386CMPWconstload:
|
||||
return rewriteValue386splitload_Op386CMPWconstload_0(v)
|
||||
return rewriteValue386splitload_Op386CMPWconstload(v)
|
||||
case Op386CMPWload:
|
||||
return rewriteValue386splitload_Op386CMPWload_0(v)
|
||||
return rewriteValue386splitload_Op386CMPWload(v)
|
||||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValue386splitload_Op386CMPBconstload_0(v *Value) bool {
|
||||
func rewriteValue386splitload_Op386CMPBconstload(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -43,7 +43,7 @@ func rewriteValue386splitload_Op386CMPBconstload_0(v *Value) bool {
|
|||
return true
|
||||
}
|
||||
}
|
||||
func rewriteValue386splitload_Op386CMPBload_0(v *Value) bool {
|
||||
func rewriteValue386splitload_Op386CMPBload(v *Value) bool {
|
||||
v_2 := v.Args[2]
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
|
|
@ -68,7 +68,7 @@ func rewriteValue386splitload_Op386CMPBload_0(v *Value) bool {
|
|||
return true
|
||||
}
|
||||
}
|
||||
func rewriteValue386splitload_Op386CMPLconstload_0(v *Value) bool {
|
||||
func rewriteValue386splitload_Op386CMPLconstload(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -91,7 +91,7 @@ func rewriteValue386splitload_Op386CMPLconstload_0(v *Value) bool {
|
|||
return true
|
||||
}
|
||||
}
|
||||
func rewriteValue386splitload_Op386CMPLload_0(v *Value) bool {
|
||||
func rewriteValue386splitload_Op386CMPLload(v *Value) bool {
|
||||
v_2 := v.Args[2]
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
|
|
@ -116,7 +116,7 @@ func rewriteValue386splitload_Op386CMPLload_0(v *Value) bool {
|
|||
return true
|
||||
}
|
||||
}
|
||||
func rewriteValue386splitload_Op386CMPWconstload_0(v *Value) bool {
|
||||
func rewriteValue386splitload_Op386CMPWconstload(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -139,7 +139,7 @@ func rewriteValue386splitload_Op386CMPWconstload_0(v *Value) bool {
|
|||
return true
|
||||
}
|
||||
}
|
||||
func rewriteValue386splitload_Op386CMPWload_0(v *Value) bool {
|
||||
func rewriteValue386splitload_Op386CMPWload(v *Value) bool {
|
||||
v_2 := v.Args[2]
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -6,25 +6,25 @@ package ssa
|
|||
func rewriteValueAMD64splitload(v *Value) bool {
|
||||
switch v.Op {
|
||||
case OpAMD64CMPBconstload:
|
||||
return rewriteValueAMD64splitload_OpAMD64CMPBconstload_0(v)
|
||||
return rewriteValueAMD64splitload_OpAMD64CMPBconstload(v)
|
||||
case OpAMD64CMPBload:
|
||||
return rewriteValueAMD64splitload_OpAMD64CMPBload_0(v)
|
||||
return rewriteValueAMD64splitload_OpAMD64CMPBload(v)
|
||||
case OpAMD64CMPLconstload:
|
||||
return rewriteValueAMD64splitload_OpAMD64CMPLconstload_0(v)
|
||||
return rewriteValueAMD64splitload_OpAMD64CMPLconstload(v)
|
||||
case OpAMD64CMPLload:
|
||||
return rewriteValueAMD64splitload_OpAMD64CMPLload_0(v)
|
||||
return rewriteValueAMD64splitload_OpAMD64CMPLload(v)
|
||||
case OpAMD64CMPQconstload:
|
||||
return rewriteValueAMD64splitload_OpAMD64CMPQconstload_0(v)
|
||||
return rewriteValueAMD64splitload_OpAMD64CMPQconstload(v)
|
||||
case OpAMD64CMPQload:
|
||||
return rewriteValueAMD64splitload_OpAMD64CMPQload_0(v)
|
||||
return rewriteValueAMD64splitload_OpAMD64CMPQload(v)
|
||||
case OpAMD64CMPWconstload:
|
||||
return rewriteValueAMD64splitload_OpAMD64CMPWconstload_0(v)
|
||||
return rewriteValueAMD64splitload_OpAMD64CMPWconstload(v)
|
||||
case OpAMD64CMPWload:
|
||||
return rewriteValueAMD64splitload_OpAMD64CMPWload_0(v)
|
||||
return rewriteValueAMD64splitload_OpAMD64CMPWload(v)
|
||||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValueAMD64splitload_OpAMD64CMPBconstload_0(v *Value) bool {
|
||||
func rewriteValueAMD64splitload_OpAMD64CMPBconstload(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -47,7 +47,7 @@ func rewriteValueAMD64splitload_OpAMD64CMPBconstload_0(v *Value) bool {
|
|||
return true
|
||||
}
|
||||
}
|
||||
func rewriteValueAMD64splitload_OpAMD64CMPBload_0(v *Value) bool {
|
||||
func rewriteValueAMD64splitload_OpAMD64CMPBload(v *Value) bool {
|
||||
v_2 := v.Args[2]
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
|
|
@ -72,7 +72,7 @@ func rewriteValueAMD64splitload_OpAMD64CMPBload_0(v *Value) bool {
|
|||
return true
|
||||
}
|
||||
}
|
||||
func rewriteValueAMD64splitload_OpAMD64CMPLconstload_0(v *Value) bool {
|
||||
func rewriteValueAMD64splitload_OpAMD64CMPLconstload(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -95,7 +95,7 @@ func rewriteValueAMD64splitload_OpAMD64CMPLconstload_0(v *Value) bool {
|
|||
return true
|
||||
}
|
||||
}
|
||||
func rewriteValueAMD64splitload_OpAMD64CMPLload_0(v *Value) bool {
|
||||
func rewriteValueAMD64splitload_OpAMD64CMPLload(v *Value) bool {
|
||||
v_2 := v.Args[2]
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
|
|
@ -120,7 +120,7 @@ func rewriteValueAMD64splitload_OpAMD64CMPLload_0(v *Value) bool {
|
|||
return true
|
||||
}
|
||||
}
|
||||
func rewriteValueAMD64splitload_OpAMD64CMPQconstload_0(v *Value) bool {
|
||||
func rewriteValueAMD64splitload_OpAMD64CMPQconstload(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -143,7 +143,7 @@ func rewriteValueAMD64splitload_OpAMD64CMPQconstload_0(v *Value) bool {
|
|||
return true
|
||||
}
|
||||
}
|
||||
func rewriteValueAMD64splitload_OpAMD64CMPQload_0(v *Value) bool {
|
||||
func rewriteValueAMD64splitload_OpAMD64CMPQload(v *Value) bool {
|
||||
v_2 := v.Args[2]
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
|
|
@ -168,7 +168,7 @@ func rewriteValueAMD64splitload_OpAMD64CMPQload_0(v *Value) bool {
|
|||
return true
|
||||
}
|
||||
}
|
||||
func rewriteValueAMD64splitload_OpAMD64CMPWconstload_0(v *Value) bool {
|
||||
func rewriteValueAMD64splitload_OpAMD64CMPWconstload(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -191,7 +191,7 @@ func rewriteValueAMD64splitload_OpAMD64CMPWconstload_0(v *Value) bool {
|
|||
return true
|
||||
}
|
||||
}
|
||||
func rewriteValueAMD64splitload_OpAMD64CMPWload_0(v *Value) bool {
|
||||
func rewriteValueAMD64splitload_OpAMD64CMPWload(v *Value) bool {
|
||||
v_2 := v.Args[2]
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -8,31 +8,31 @@ import "cmd/compile/internal/types"
|
|||
func rewriteValuedec(v *Value) bool {
|
||||
switch v.Op {
|
||||
case OpComplexImag:
|
||||
return rewriteValuedec_OpComplexImag_0(v)
|
||||
return rewriteValuedec_OpComplexImag(v)
|
||||
case OpComplexReal:
|
||||
return rewriteValuedec_OpComplexReal_0(v)
|
||||
return rewriteValuedec_OpComplexReal(v)
|
||||
case OpIData:
|
||||
return rewriteValuedec_OpIData_0(v)
|
||||
return rewriteValuedec_OpIData(v)
|
||||
case OpITab:
|
||||
return rewriteValuedec_OpITab_0(v)
|
||||
return rewriteValuedec_OpITab(v)
|
||||
case OpLoad:
|
||||
return rewriteValuedec_OpLoad_0(v)
|
||||
return rewriteValuedec_OpLoad(v)
|
||||
case OpSliceCap:
|
||||
return rewriteValuedec_OpSliceCap_0(v)
|
||||
return rewriteValuedec_OpSliceCap(v)
|
||||
case OpSliceLen:
|
||||
return rewriteValuedec_OpSliceLen_0(v)
|
||||
return rewriteValuedec_OpSliceLen(v)
|
||||
case OpSlicePtr:
|
||||
return rewriteValuedec_OpSlicePtr_0(v)
|
||||
return rewriteValuedec_OpSlicePtr(v)
|
||||
case OpStore:
|
||||
return rewriteValuedec_OpStore_0(v)
|
||||
return rewriteValuedec_OpStore(v)
|
||||
case OpStringLen:
|
||||
return rewriteValuedec_OpStringLen_0(v)
|
||||
return rewriteValuedec_OpStringLen(v)
|
||||
case OpStringPtr:
|
||||
return rewriteValuedec_OpStringPtr_0(v)
|
||||
return rewriteValuedec_OpStringPtr(v)
|
||||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec_OpComplexImag_0(v *Value) bool {
|
||||
func rewriteValuedec_OpComplexImag(v *Value) bool {
|
||||
v_0 := v.Args[0]
|
||||
// match: (ComplexImag (ComplexMake _ imag ))
|
||||
// result: imag
|
||||
|
|
@ -48,7 +48,7 @@ func rewriteValuedec_OpComplexImag_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec_OpComplexReal_0(v *Value) bool {
|
||||
func rewriteValuedec_OpComplexReal(v *Value) bool {
|
||||
v_0 := v.Args[0]
|
||||
// match: (ComplexReal (ComplexMake real _ ))
|
||||
// result: real
|
||||
|
|
@ -65,7 +65,7 @@ func rewriteValuedec_OpComplexReal_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec_OpIData_0(v *Value) bool {
|
||||
func rewriteValuedec_OpIData(v *Value) bool {
|
||||
v_0 := v.Args[0]
|
||||
// match: (IData (IMake _ data))
|
||||
// result: data
|
||||
|
|
@ -81,7 +81,7 @@ func rewriteValuedec_OpIData_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec_OpITab_0(v *Value) bool {
|
||||
func rewriteValuedec_OpITab(v *Value) bool {
|
||||
v_0 := v.Args[0]
|
||||
// match: (ITab (IMake itab _))
|
||||
// result: itab
|
||||
|
|
@ -98,7 +98,7 @@ func rewriteValuedec_OpITab_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec_OpLoad_0(v *Value) bool {
|
||||
func rewriteValuedec_OpLoad(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -233,7 +233,7 @@ func rewriteValuedec_OpLoad_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec_OpSliceCap_0(v *Value) bool {
|
||||
func rewriteValuedec_OpSliceCap(v *Value) bool {
|
||||
v_0 := v.Args[0]
|
||||
// match: (SliceCap (SliceMake _ _ cap))
|
||||
// result: cap
|
||||
|
|
@ -249,7 +249,7 @@ func rewriteValuedec_OpSliceCap_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec_OpSliceLen_0(v *Value) bool {
|
||||
func rewriteValuedec_OpSliceLen(v *Value) bool {
|
||||
v_0 := v.Args[0]
|
||||
// match: (SliceLen (SliceMake _ len _))
|
||||
// result: len
|
||||
|
|
@ -266,7 +266,7 @@ func rewriteValuedec_OpSliceLen_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec_OpSlicePtr_0(v *Value) bool {
|
||||
func rewriteValuedec_OpSlicePtr(v *Value) bool {
|
||||
v_0 := v.Args[0]
|
||||
// match: (SlicePtr (SliceMake ptr _ _ ))
|
||||
// result: ptr
|
||||
|
|
@ -283,7 +283,7 @@ func rewriteValuedec_OpSlicePtr_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec_OpStore_0(v *Value) bool {
|
||||
func rewriteValuedec_OpStore(v *Value) bool {
|
||||
v_2 := v.Args[2]
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
|
|
@ -436,7 +436,7 @@ func rewriteValuedec_OpStore_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec_OpStringLen_0(v *Value) bool {
|
||||
func rewriteValuedec_OpStringLen(v *Value) bool {
|
||||
v_0 := v.Args[0]
|
||||
// match: (StringLen (StringMake _ len))
|
||||
// result: len
|
||||
|
|
@ -452,7 +452,7 @@ func rewriteValuedec_OpStringLen_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec_OpStringPtr_0(v *Value) bool {
|
||||
func rewriteValuedec_OpStringPtr(v *Value) bool {
|
||||
v_0 := v.Args[0]
|
||||
// match: (StringPtr (StringMake ptr _))
|
||||
// result: ptr
|
||||
|
|
|
|||
|
|
@ -8,125 +8,125 @@ import "cmd/compile/internal/types"
|
|||
func rewriteValuedec64(v *Value) bool {
|
||||
switch v.Op {
|
||||
case OpAdd64:
|
||||
return rewriteValuedec64_OpAdd64_0(v)
|
||||
return rewriteValuedec64_OpAdd64(v)
|
||||
case OpAnd64:
|
||||
return rewriteValuedec64_OpAnd64_0(v)
|
||||
return rewriteValuedec64_OpAnd64(v)
|
||||
case OpArg:
|
||||
return rewriteValuedec64_OpArg_0(v)
|
||||
return rewriteValuedec64_OpArg(v)
|
||||
case OpBitLen64:
|
||||
return rewriteValuedec64_OpBitLen64_0(v)
|
||||
return rewriteValuedec64_OpBitLen64(v)
|
||||
case OpBswap64:
|
||||
return rewriteValuedec64_OpBswap64_0(v)
|
||||
return rewriteValuedec64_OpBswap64(v)
|
||||
case OpCom64:
|
||||
return rewriteValuedec64_OpCom64_0(v)
|
||||
return rewriteValuedec64_OpCom64(v)
|
||||
case OpConst64:
|
||||
return rewriteValuedec64_OpConst64_0(v)
|
||||
return rewriteValuedec64_OpConst64(v)
|
||||
case OpCtz64:
|
||||
return rewriteValuedec64_OpCtz64_0(v)
|
||||
return rewriteValuedec64_OpCtz64(v)
|
||||
case OpCtz64NonZero:
|
||||
return rewriteValuedec64_OpCtz64NonZero_0(v)
|
||||
return rewriteValuedec64_OpCtz64NonZero(v)
|
||||
case OpEq64:
|
||||
return rewriteValuedec64_OpEq64_0(v)
|
||||
return rewriteValuedec64_OpEq64(v)
|
||||
case OpGeq64:
|
||||
return rewriteValuedec64_OpGeq64_0(v)
|
||||
return rewriteValuedec64_OpGeq64(v)
|
||||
case OpGeq64U:
|
||||
return rewriteValuedec64_OpGeq64U_0(v)
|
||||
return rewriteValuedec64_OpGeq64U(v)
|
||||
case OpGreater64:
|
||||
return rewriteValuedec64_OpGreater64_0(v)
|
||||
return rewriteValuedec64_OpGreater64(v)
|
||||
case OpGreater64U:
|
||||
return rewriteValuedec64_OpGreater64U_0(v)
|
||||
return rewriteValuedec64_OpGreater64U(v)
|
||||
case OpInt64Hi:
|
||||
return rewriteValuedec64_OpInt64Hi_0(v)
|
||||
return rewriteValuedec64_OpInt64Hi(v)
|
||||
case OpInt64Lo:
|
||||
return rewriteValuedec64_OpInt64Lo_0(v)
|
||||
return rewriteValuedec64_OpInt64Lo(v)
|
||||
case OpLeq64:
|
||||
return rewriteValuedec64_OpLeq64_0(v)
|
||||
return rewriteValuedec64_OpLeq64(v)
|
||||
case OpLeq64U:
|
||||
return rewriteValuedec64_OpLeq64U_0(v)
|
||||
return rewriteValuedec64_OpLeq64U(v)
|
||||
case OpLess64:
|
||||
return rewriteValuedec64_OpLess64_0(v)
|
||||
return rewriteValuedec64_OpLess64(v)
|
||||
case OpLess64U:
|
||||
return rewriteValuedec64_OpLess64U_0(v)
|
||||
return rewriteValuedec64_OpLess64U(v)
|
||||
case OpLoad:
|
||||
return rewriteValuedec64_OpLoad_0(v)
|
||||
return rewriteValuedec64_OpLoad(v)
|
||||
case OpLsh16x64:
|
||||
return rewriteValuedec64_OpLsh16x64_0(v)
|
||||
return rewriteValuedec64_OpLsh16x64(v)
|
||||
case OpLsh32x64:
|
||||
return rewriteValuedec64_OpLsh32x64_0(v)
|
||||
return rewriteValuedec64_OpLsh32x64(v)
|
||||
case OpLsh64x16:
|
||||
return rewriteValuedec64_OpLsh64x16_0(v)
|
||||
return rewriteValuedec64_OpLsh64x16(v)
|
||||
case OpLsh64x32:
|
||||
return rewriteValuedec64_OpLsh64x32_0(v)
|
||||
return rewriteValuedec64_OpLsh64x32(v)
|
||||
case OpLsh64x64:
|
||||
return rewriteValuedec64_OpLsh64x64_0(v)
|
||||
return rewriteValuedec64_OpLsh64x64(v)
|
||||
case OpLsh64x8:
|
||||
return rewriteValuedec64_OpLsh64x8_0(v)
|
||||
return rewriteValuedec64_OpLsh64x8(v)
|
||||
case OpLsh8x64:
|
||||
return rewriteValuedec64_OpLsh8x64_0(v)
|
||||
return rewriteValuedec64_OpLsh8x64(v)
|
||||
case OpMul64:
|
||||
return rewriteValuedec64_OpMul64_0(v)
|
||||
return rewriteValuedec64_OpMul64(v)
|
||||
case OpNeg64:
|
||||
return rewriteValuedec64_OpNeg64_0(v)
|
||||
return rewriteValuedec64_OpNeg64(v)
|
||||
case OpNeq64:
|
||||
return rewriteValuedec64_OpNeq64_0(v)
|
||||
return rewriteValuedec64_OpNeq64(v)
|
||||
case OpOr64:
|
||||
return rewriteValuedec64_OpOr64_0(v)
|
||||
return rewriteValuedec64_OpOr64(v)
|
||||
case OpRsh16Ux64:
|
||||
return rewriteValuedec64_OpRsh16Ux64_0(v)
|
||||
return rewriteValuedec64_OpRsh16Ux64(v)
|
||||
case OpRsh16x64:
|
||||
return rewriteValuedec64_OpRsh16x64_0(v)
|
||||
return rewriteValuedec64_OpRsh16x64(v)
|
||||
case OpRsh32Ux64:
|
||||
return rewriteValuedec64_OpRsh32Ux64_0(v)
|
||||
return rewriteValuedec64_OpRsh32Ux64(v)
|
||||
case OpRsh32x64:
|
||||
return rewriteValuedec64_OpRsh32x64_0(v)
|
||||
return rewriteValuedec64_OpRsh32x64(v)
|
||||
case OpRsh64Ux16:
|
||||
return rewriteValuedec64_OpRsh64Ux16_0(v)
|
||||
return rewriteValuedec64_OpRsh64Ux16(v)
|
||||
case OpRsh64Ux32:
|
||||
return rewriteValuedec64_OpRsh64Ux32_0(v)
|
||||
return rewriteValuedec64_OpRsh64Ux32(v)
|
||||
case OpRsh64Ux64:
|
||||
return rewriteValuedec64_OpRsh64Ux64_0(v)
|
||||
return rewriteValuedec64_OpRsh64Ux64(v)
|
||||
case OpRsh64Ux8:
|
||||
return rewriteValuedec64_OpRsh64Ux8_0(v)
|
||||
return rewriteValuedec64_OpRsh64Ux8(v)
|
||||
case OpRsh64x16:
|
||||
return rewriteValuedec64_OpRsh64x16_0(v)
|
||||
return rewriteValuedec64_OpRsh64x16(v)
|
||||
case OpRsh64x32:
|
||||
return rewriteValuedec64_OpRsh64x32_0(v)
|
||||
return rewriteValuedec64_OpRsh64x32(v)
|
||||
case OpRsh64x64:
|
||||
return rewriteValuedec64_OpRsh64x64_0(v)
|
||||
return rewriteValuedec64_OpRsh64x64(v)
|
||||
case OpRsh64x8:
|
||||
return rewriteValuedec64_OpRsh64x8_0(v)
|
||||
return rewriteValuedec64_OpRsh64x8(v)
|
||||
case OpRsh8Ux64:
|
||||
return rewriteValuedec64_OpRsh8Ux64_0(v)
|
||||
return rewriteValuedec64_OpRsh8Ux64(v)
|
||||
case OpRsh8x64:
|
||||
return rewriteValuedec64_OpRsh8x64_0(v)
|
||||
return rewriteValuedec64_OpRsh8x64(v)
|
||||
case OpSignExt16to64:
|
||||
return rewriteValuedec64_OpSignExt16to64_0(v)
|
||||
return rewriteValuedec64_OpSignExt16to64(v)
|
||||
case OpSignExt32to64:
|
||||
return rewriteValuedec64_OpSignExt32to64_0(v)
|
||||
return rewriteValuedec64_OpSignExt32to64(v)
|
||||
case OpSignExt8to64:
|
||||
return rewriteValuedec64_OpSignExt8to64_0(v)
|
||||
return rewriteValuedec64_OpSignExt8to64(v)
|
||||
case OpStore:
|
||||
return rewriteValuedec64_OpStore_0(v)
|
||||
return rewriteValuedec64_OpStore(v)
|
||||
case OpSub64:
|
||||
return rewriteValuedec64_OpSub64_0(v)
|
||||
return rewriteValuedec64_OpSub64(v)
|
||||
case OpTrunc64to16:
|
||||
return rewriteValuedec64_OpTrunc64to16_0(v)
|
||||
return rewriteValuedec64_OpTrunc64to16(v)
|
||||
case OpTrunc64to32:
|
||||
return rewriteValuedec64_OpTrunc64to32_0(v)
|
||||
return rewriteValuedec64_OpTrunc64to32(v)
|
||||
case OpTrunc64to8:
|
||||
return rewriteValuedec64_OpTrunc64to8_0(v)
|
||||
return rewriteValuedec64_OpTrunc64to8(v)
|
||||
case OpXor64:
|
||||
return rewriteValuedec64_OpXor64_0(v)
|
||||
return rewriteValuedec64_OpXor64(v)
|
||||
case OpZeroExt16to64:
|
||||
return rewriteValuedec64_OpZeroExt16to64_0(v)
|
||||
return rewriteValuedec64_OpZeroExt16to64(v)
|
||||
case OpZeroExt32to64:
|
||||
return rewriteValuedec64_OpZeroExt32to64_0(v)
|
||||
return rewriteValuedec64_OpZeroExt32to64(v)
|
||||
case OpZeroExt8to64:
|
||||
return rewriteValuedec64_OpZeroExt8to64_0(v)
|
||||
return rewriteValuedec64_OpZeroExt8to64(v)
|
||||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec64_OpAdd64_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpAdd64(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -168,7 +168,7 @@ func rewriteValuedec64_OpAdd64_0(v *Value) bool {
|
|||
return true
|
||||
}
|
||||
}
|
||||
func rewriteValuedec64_OpAnd64_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpAnd64(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -198,7 +198,7 @@ func rewriteValuedec64_OpAnd64_0(v *Value) bool {
|
|||
return true
|
||||
}
|
||||
}
|
||||
func rewriteValuedec64_OpArg_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpArg(v *Value) bool {
|
||||
b := v.Block
|
||||
config := b.Func.Config
|
||||
typ := &b.Func.Config.Types
|
||||
|
|
@ -284,7 +284,7 @@ func rewriteValuedec64_OpArg_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec64_OpBitLen64_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpBitLen64(v *Value) bool {
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
typ := &b.Func.Config.Types
|
||||
|
|
@ -314,7 +314,7 @@ func rewriteValuedec64_OpBitLen64_0(v *Value) bool {
|
|||
return true
|
||||
}
|
||||
}
|
||||
func rewriteValuedec64_OpBswap64_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpBswap64(v *Value) bool {
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
typ := &b.Func.Config.Types
|
||||
|
|
@ -336,7 +336,7 @@ func rewriteValuedec64_OpBswap64_0(v *Value) bool {
|
|||
return true
|
||||
}
|
||||
}
|
||||
func rewriteValuedec64_OpCom64_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpCom64(v *Value) bool {
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
typ := &b.Func.Config.Types
|
||||
|
|
@ -358,7 +358,7 @@ func rewriteValuedec64_OpCom64_0(v *Value) bool {
|
|||
return true
|
||||
}
|
||||
}
|
||||
func rewriteValuedec64_OpConst64_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpConst64(v *Value) bool {
|
||||
b := v.Block
|
||||
typ := &b.Func.Config.Types
|
||||
// match: (Const64 <t> [c])
|
||||
|
|
@ -399,7 +399,7 @@ func rewriteValuedec64_OpConst64_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec64_OpCtz64_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpCtz64(v *Value) bool {
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
typ := &b.Func.Config.Types
|
||||
|
|
@ -431,7 +431,7 @@ func rewriteValuedec64_OpCtz64_0(v *Value) bool {
|
|||
return true
|
||||
}
|
||||
}
|
||||
func rewriteValuedec64_OpCtz64NonZero_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpCtz64NonZero(v *Value) bool {
|
||||
v_0 := v.Args[0]
|
||||
// match: (Ctz64NonZero x)
|
||||
// result: (Ctz64 x)
|
||||
|
|
@ -442,7 +442,7 @@ func rewriteValuedec64_OpCtz64NonZero_0(v *Value) bool {
|
|||
return true
|
||||
}
|
||||
}
|
||||
func rewriteValuedec64_OpEq64_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpEq64(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -472,7 +472,7 @@ func rewriteValuedec64_OpEq64_0(v *Value) bool {
|
|||
return true
|
||||
}
|
||||
}
|
||||
func rewriteValuedec64_OpGeq64_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpGeq64(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -512,7 +512,7 @@ func rewriteValuedec64_OpGeq64_0(v *Value) bool {
|
|||
return true
|
||||
}
|
||||
}
|
||||
func rewriteValuedec64_OpGeq64U_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpGeq64U(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -552,7 +552,7 @@ func rewriteValuedec64_OpGeq64U_0(v *Value) bool {
|
|||
return true
|
||||
}
|
||||
}
|
||||
func rewriteValuedec64_OpGreater64_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpGreater64(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -592,7 +592,7 @@ func rewriteValuedec64_OpGreater64_0(v *Value) bool {
|
|||
return true
|
||||
}
|
||||
}
|
||||
func rewriteValuedec64_OpGreater64U_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpGreater64U(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -632,7 +632,7 @@ func rewriteValuedec64_OpGreater64U_0(v *Value) bool {
|
|||
return true
|
||||
}
|
||||
}
|
||||
func rewriteValuedec64_OpInt64Hi_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpInt64Hi(v *Value) bool {
|
||||
v_0 := v.Args[0]
|
||||
// match: (Int64Hi (Int64Make hi _))
|
||||
// result: hi
|
||||
|
|
@ -649,7 +649,7 @@ func rewriteValuedec64_OpInt64Hi_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec64_OpInt64Lo_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpInt64Lo(v *Value) bool {
|
||||
v_0 := v.Args[0]
|
||||
// match: (Int64Lo (Int64Make _ lo))
|
||||
// result: lo
|
||||
|
|
@ -665,7 +665,7 @@ func rewriteValuedec64_OpInt64Lo_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec64_OpLeq64_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpLeq64(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -705,7 +705,7 @@ func rewriteValuedec64_OpLeq64_0(v *Value) bool {
|
|||
return true
|
||||
}
|
||||
}
|
||||
func rewriteValuedec64_OpLeq64U_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpLeq64U(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -745,7 +745,7 @@ func rewriteValuedec64_OpLeq64U_0(v *Value) bool {
|
|||
return true
|
||||
}
|
||||
}
|
||||
func rewriteValuedec64_OpLess64_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpLess64(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -785,7 +785,7 @@ func rewriteValuedec64_OpLess64_0(v *Value) bool {
|
|||
return true
|
||||
}
|
||||
}
|
||||
func rewriteValuedec64_OpLess64U_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpLess64U(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -825,7 +825,7 @@ func rewriteValuedec64_OpLess64U_0(v *Value) bool {
|
|||
return true
|
||||
}
|
||||
}
|
||||
func rewriteValuedec64_OpLoad_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpLoad(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -929,7 +929,7 @@ func rewriteValuedec64_OpLoad_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec64_OpLsh16x64_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpLsh16x64(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -996,7 +996,7 @@ func rewriteValuedec64_OpLsh16x64_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec64_OpLsh32x64_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpLsh32x64(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -1063,7 +1063,7 @@ func rewriteValuedec64_OpLsh32x64_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec64_OpLsh64x16_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpLsh64x16(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -1112,7 +1112,7 @@ func rewriteValuedec64_OpLsh64x16_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec64_OpLsh64x32_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpLsh64x32(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -1161,7 +1161,7 @@ func rewriteValuedec64_OpLsh64x32_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec64_OpLsh64x64_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpLsh64x64(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -1228,7 +1228,7 @@ func rewriteValuedec64_OpLsh64x64_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec64_OpLsh64x8_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpLsh64x8(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -1277,7 +1277,7 @@ func rewriteValuedec64_OpLsh64x8_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec64_OpLsh8x64_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpLsh8x64(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -1344,7 +1344,7 @@ func rewriteValuedec64_OpLsh8x64_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec64_OpMul64_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpMul64(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -1398,7 +1398,7 @@ func rewriteValuedec64_OpMul64_0(v *Value) bool {
|
|||
return true
|
||||
}
|
||||
}
|
||||
func rewriteValuedec64_OpNeg64_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpNeg64(v *Value) bool {
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
// match: (Neg64 <t> x)
|
||||
|
|
@ -1414,7 +1414,7 @@ func rewriteValuedec64_OpNeg64_0(v *Value) bool {
|
|||
return true
|
||||
}
|
||||
}
|
||||
func rewriteValuedec64_OpNeq64_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpNeq64(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -1444,7 +1444,7 @@ func rewriteValuedec64_OpNeq64_0(v *Value) bool {
|
|||
return true
|
||||
}
|
||||
}
|
||||
func rewriteValuedec64_OpOr64_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpOr64(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -1474,7 +1474,7 @@ func rewriteValuedec64_OpOr64_0(v *Value) bool {
|
|||
return true
|
||||
}
|
||||
}
|
||||
func rewriteValuedec64_OpRsh16Ux64_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpRsh16Ux64(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -1541,7 +1541,7 @@ func rewriteValuedec64_OpRsh16Ux64_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec64_OpRsh16x64_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpRsh16x64(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -1611,7 +1611,7 @@ func rewriteValuedec64_OpRsh16x64_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec64_OpRsh32Ux64_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpRsh32Ux64(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -1678,7 +1678,7 @@ func rewriteValuedec64_OpRsh32Ux64_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec64_OpRsh32x64_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpRsh32x64(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -1746,7 +1746,7 @@ func rewriteValuedec64_OpRsh32x64_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec64_OpRsh64Ux16_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpRsh64Ux16(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -1795,7 +1795,7 @@ func rewriteValuedec64_OpRsh64Ux16_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec64_OpRsh64Ux32_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpRsh64Ux32(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -1844,7 +1844,7 @@ func rewriteValuedec64_OpRsh64Ux32_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec64_OpRsh64Ux64_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpRsh64Ux64(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -1911,7 +1911,7 @@ func rewriteValuedec64_OpRsh64Ux64_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec64_OpRsh64Ux8_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpRsh64Ux8(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -1960,7 +1960,7 @@ func rewriteValuedec64_OpRsh64Ux8_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec64_OpRsh64x16_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpRsh64x16(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -2021,7 +2021,7 @@ func rewriteValuedec64_OpRsh64x16_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec64_OpRsh64x32_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpRsh64x32(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -2080,7 +2080,7 @@ func rewriteValuedec64_OpRsh64x32_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec64_OpRsh64x64_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpRsh64x64(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -2157,7 +2157,7 @@ func rewriteValuedec64_OpRsh64x64_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec64_OpRsh64x8_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpRsh64x8(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -2218,7 +2218,7 @@ func rewriteValuedec64_OpRsh64x8_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec64_OpRsh8Ux64_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpRsh8Ux64(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -2285,7 +2285,7 @@ func rewriteValuedec64_OpRsh8Ux64_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec64_OpRsh8x64_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpRsh8x64(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -2355,7 +2355,7 @@ func rewriteValuedec64_OpRsh8x64_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec64_OpSignExt16to64_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpSignExt16to64(v *Value) bool {
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
typ := &b.Func.Config.Types
|
||||
|
|
@ -2370,7 +2370,7 @@ func rewriteValuedec64_OpSignExt16to64_0(v *Value) bool {
|
|||
return true
|
||||
}
|
||||
}
|
||||
func rewriteValuedec64_OpSignExt32to64_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpSignExt32to64(v *Value) bool {
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
typ := &b.Func.Config.Types
|
||||
|
|
@ -2386,7 +2386,7 @@ func rewriteValuedec64_OpSignExt32to64_0(v *Value) bool {
|
|||
return true
|
||||
}
|
||||
}
|
||||
func rewriteValuedec64_OpSignExt8to64_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpSignExt8to64(v *Value) bool {
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
typ := &b.Func.Config.Types
|
||||
|
|
@ -2401,7 +2401,7 @@ func rewriteValuedec64_OpSignExt8to64_0(v *Value) bool {
|
|||
return true
|
||||
}
|
||||
}
|
||||
func rewriteValuedec64_OpStore_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpStore(v *Value) bool {
|
||||
v_2 := v.Args[2]
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
|
|
@ -2469,7 +2469,7 @@ func rewriteValuedec64_OpStore_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec64_OpSub64_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpSub64(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -2511,7 +2511,7 @@ func rewriteValuedec64_OpSub64_0(v *Value) bool {
|
|||
return true
|
||||
}
|
||||
}
|
||||
func rewriteValuedec64_OpTrunc64to16_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpTrunc64to16(v *Value) bool {
|
||||
v_0 := v.Args[0]
|
||||
// match: (Trunc64to16 (Int64Make _ lo))
|
||||
// result: (Trunc32to16 lo)
|
||||
|
|
@ -2526,7 +2526,7 @@ func rewriteValuedec64_OpTrunc64to16_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec64_OpTrunc64to32_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpTrunc64to32(v *Value) bool {
|
||||
v_0 := v.Args[0]
|
||||
// match: (Trunc64to32 (Int64Make _ lo))
|
||||
// result: lo
|
||||
|
|
@ -2542,7 +2542,7 @@ func rewriteValuedec64_OpTrunc64to32_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec64_OpTrunc64to8_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpTrunc64to8(v *Value) bool {
|
||||
v_0 := v.Args[0]
|
||||
// match: (Trunc64to8 (Int64Make _ lo))
|
||||
// result: (Trunc32to8 lo)
|
||||
|
|
@ -2557,7 +2557,7 @@ func rewriteValuedec64_OpTrunc64to8_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedec64_OpXor64_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpXor64(v *Value) bool {
|
||||
v_1 := v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
|
|
@ -2587,7 +2587,7 @@ func rewriteValuedec64_OpXor64_0(v *Value) bool {
|
|||
return true
|
||||
}
|
||||
}
|
||||
func rewriteValuedec64_OpZeroExt16to64_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpZeroExt16to64(v *Value) bool {
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
typ := &b.Func.Config.Types
|
||||
|
|
@ -2602,7 +2602,7 @@ func rewriteValuedec64_OpZeroExt16to64_0(v *Value) bool {
|
|||
return true
|
||||
}
|
||||
}
|
||||
func rewriteValuedec64_OpZeroExt32to64_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpZeroExt32to64(v *Value) bool {
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
typ := &b.Func.Config.Types
|
||||
|
|
@ -2618,7 +2618,7 @@ func rewriteValuedec64_OpZeroExt32to64_0(v *Value) bool {
|
|||
return true
|
||||
}
|
||||
}
|
||||
func rewriteValuedec64_OpZeroExt8to64_0(v *Value) bool {
|
||||
func rewriteValuedec64_OpZeroExt8to64(v *Value) bool {
|
||||
v_0 := v.Args[0]
|
||||
b := v.Block
|
||||
typ := &b.Func.Config.Types
|
||||
|
|
|
|||
|
|
@ -6,11 +6,11 @@ package ssa
|
|||
func rewriteValuedecArgs(v *Value) bool {
|
||||
switch v.Op {
|
||||
case OpArg:
|
||||
return rewriteValuedecArgs_OpArg_0(v) || rewriteValuedecArgs_OpArg_10(v)
|
||||
return rewriteValuedecArgs_OpArg(v)
|
||||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedecArgs_OpArg_0(v *Value) bool {
|
||||
func rewriteValuedecArgs_OpArg(v *Value) bool {
|
||||
b := v.Block
|
||||
config := b.Func.Config
|
||||
fe := b.Func.fe
|
||||
|
|
@ -222,11 +222,6 @@ func rewriteValuedecArgs_OpArg_0(v *Value) bool {
|
|||
v.AddArg(v3)
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValuedecArgs_OpArg_10(v *Value) bool {
|
||||
b := v.Block
|
||||
fe := b.Func.fe
|
||||
// match: (Arg <t>)
|
||||
// cond: t.IsArray() && t.NumElem() == 0
|
||||
// result: (ArrayMake0)
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue