后端Pass简介——GCMetadata
GCMetadata
这个 Pass 在 Module 层和 Function 层分别收集并缓存所有带 “hasGC()” 标记的函数所需的垃圾回收(GC)策略和元数据,供后续 CodeGen 插入栈帧布局、栈扫描等 GC 相关逻辑使用。
他可能涉及的概念有:
- GCStrategy:封装一种垃圾回收器(如 Boehm、PreciseGC 等)的栈帧布局、寄存器保留和安全点规则。
- GCModuleInfo / CollectorMetadataAnalysis:模块级缓存,遍历全 Module,按 GC 名称(F.getGC())创建或复用相应的 GCStrategy,并存入 StrategyMap。
- GCFunctionInfo / GCFunctionAnalysis:函数级封装,为每个带 GC 的 Function 生成一个 GCFunctionInfo 实例,记录该函数的 frame size、哪些点要插入 stackmap、安全点等。
评论