通过SSA的解释执行窥探Golang编译之一角S:0 int () ### *ssa.Package main *ssa.Function Blocks $$ 0 $$ *ssa.BasicBlock Instrs[0] *ssa.Store Instrs[1] *ssa.Unop(*) Instrs[2] *ssa.Call Instrs[3] *ssa.Return ## SSA 解释执行 // 全局变量 globals println("The answer is::string, t0") return entry P:0 S:0 ## SSA 解释执行 --- runFunc begin --- ssa.Store ssa.UnOp ssa.Call The answer is: 42 --- runFunc end --- # Name: test.go.main # Package: test len(fr.block.Instrs); i++ { switch ins := fr.block.Instrs[i].(type) { case *ssa.Store: ... } } } case *ssa.BinOp: fr.env[ins] = waops.BinOp(ins.Op, ins.X.Type()0 码力 | 30 页 | 1.50 MB | 2 年前3
共 1 条
- 1













