V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
griffinx
V2EX  ›  程序员

go ssa 的一些知识

  •  
  •   griffinx · 70 天前 · 1177 次点击
    这是一个创建于 70 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近工作中涉及到了比较多的 go ssa ,所以准备写一个详细介绍 ssa 的小册子,毕竟 go ssa 本身的文档并不算多,概念也有些模糊 https://xieyuschen.github.io/go-ssa-book/

    4 条回复    2024-08-28 12:18:39 +08:00
    nagisaushio
        1
    nagisaushio  
       70 天前 via Android
    之前借助 ssa 写过一个 staticcheck 检查所有 type A coerced into type B 的地方。一开始在 ast 层面捣鼓了很久没弄出来,后来发现用 ssa 简直太容易了
    lointo
        2
    lointo  
       70 天前 via Android
    挺有用 不过现在我都是用 github copilot 来,写这片的逻辑 太多常量需要记忆了
    griffinx
        3
    griffinx  
    OP
       69 天前
    @nagisaushio 是的,ssa 在生成 ir 过程中做了很多的处理,对于语义层面的解析非常有帮助。
    griffinx
        4
    griffinx  
    OP
       69 天前
    @lointo 嗯是的,同意你的观点,但是如果一些具体的概念不了解的话,一点点的试效率很低,这也是我写这个小册子的原因(太忙了只能一点点写了)。另外如果有 llvm 背景的话,其实这些 ir 很好理解,只需要关注 go 是如何组织各种结构的 ir 代码
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3376 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 11:28 · PVG 19:28 · LAX 03:28 · JFK 06:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.