katsusan / gowiki

0 stars 0 forks source link

Go-ssa-advanced #13

Open katsusan opened 3 years ago

katsusan commented 3 years ago
  1. Go ssa has 52 passes currently.(defined in https://github.com/golang/go/blob/78afca22c9485dbd44da3b909866bbb9c1eaf440/src/cmd/compile/internal/ssa/compile.go#L427-L481 )

  2. deadcode in ssa

    • reachable blocks // 可达的代码块
    • from f.Entry and traverse its subsequent blocks, marks them reachable.
      // 从函数入口block开始递归遍历后续的block,标记为可达。
    • live values
    • all control values / calls of Blocks are live. // 所有可达block的control value和函数调用是有效的
    • args of above values are live(except phi). // 上面的value的参数args(除了phi)也是有效的