[midend]修改一点逻辑和注释,删除无用文件
This commit is contained in:
@@ -121,6 +121,25 @@ bool SysYSideEffectAnalysisPass::runOnFunction(Function* F, AnalysisManager& AM)
|
||||
// 获取别名分析结果,在整个函数分析过程中重复使用
|
||||
aliasAnalysis = AM.getAnalysisResult<AliasAnalysisResult, SysYAliasAnalysisPass>(F);
|
||||
|
||||
// TODO: 重构为Module级别的分析,利用独立的调用图分析
|
||||
//
|
||||
// 建议的架构:
|
||||
// 1. SysYCallGraphAnalysisPass - 独立的调用图分析(Module级别)
|
||||
// - 构建完整的函数调用关系
|
||||
// - 提供拓扑排序和强连通分量
|
||||
// - 识别递归调用模式
|
||||
//
|
||||
// 2. SysYSideEffectAnalysisPass - 重构为Module级别
|
||||
// - 依赖调用图分析结果
|
||||
// - 按拓扑序分析函数,确保依赖函数先分析
|
||||
// - 使用不动点算法处理递归函数群
|
||||
//
|
||||
// 优势:
|
||||
// - 调用图可被多个Pass复用(内联、DCE等)
|
||||
// - 准确的函数间副作用传播
|
||||
// - 正确处理递归调用
|
||||
// - 避免保守的"未分析函数"假设
|
||||
|
||||
// 分析函数中的每条指令
|
||||
SideEffectInfo functionSideEffect;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user