...
Source file src/pkg/cmd/compile/internal/ssa/lower.go
1
2
3
4
5 package ssa
6
7
8 func lower(f *Func) {
9
10 applyRewrite(f, f.Config.lowerBlock, f.Config.lowerValue)
11 }
12
13
14 func checkLower(f *Func) {
15
16
17
18 for _, b := range f.Blocks {
19 for _, v := range b.Values {
20 if !opcodeTable[v.Op].generic {
21 continue
22 }
23 switch v.Op {
24 case OpSP, OpSB, OpInitMem, OpArg, OpPhi, OpVarDef, OpVarKill, OpVarLive, OpKeepAlive, OpSelect0, OpSelect1, OpConvert, OpInlMark:
25 continue
26 case OpGetG:
27 if f.Config.hasGReg {
28
29 continue
30 }
31 }
32 s := "not lowered: " + v.String() + ", " + v.Op.String() + " " + v.Type.SimpleString()
33 for _, a := range v.Args {
34 s += " " + a.Type.SimpleString()
35 }
36 f.Fatalf("%s", s)
37 }
38 }
39 }
40
View as plain text