[midend-LoopAnalysis]增加维护循环层级的逻辑,修改父子循环关系求解的逻辑。

This commit is contained in:
rain2133
2025-08-03 15:22:18 +08:00
parent 1c7c85dd2f
commit ef9d7c4d03
2 changed files with 99 additions and 54 deletions

View File

@ -60,7 +60,7 @@ public:
void setParentLoop(Loop *loop) { ParentLoop = loop; }
void addNestedLoop(Loop *loop) { NestedLoops.push_back(loop); }
void setLoopLevel(int level) { Level = level; }
void clearNestedLoops() { NestedLoops.clear(); }
private:
BasicBlock *Header; // 循环头基本块
std::set<BasicBlock *> LoopBlocks; // 循环体包含的基本块集合
@ -119,6 +119,8 @@ public:
// --- 供 LoopAnalysisPass 内部调用的方法,用于构建 LoopAnalysisResult 对象 ---
void addOutermostLoop(Loop *loop) { OutermostLoops.push_back(loop); }
void addInnermostLoop(Loop *loop) { InnermostLoops.push_back(loop); }
void clearOutermostLoops() { OutermostLoops.clear(); }
void clearInnermostLoops() { InnermostLoops.clear(); }
private:
Function *AssociatedFunction; // 结果关联的函数