Files
mysysy/src/include/midend/Pass/Optimize/BuildCFG.h

33 lines
896 B
C++
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#pragma once
#include "Pass.h"
#include "IR.h"
#include "Instruction.h"
#include <queue>
#include <set>
namespace sysy {
class DominatorTreeAnalysisPass;
class LivenessAnalysisPass;
class BuildCFG : public OptimizationPass {
public:
// Pass的唯一ID用于PassRegistry
static char ID;
BuildCFG() : OptimizationPass("BuildCFG", Pass::Granularity::Function, Pass::PassKind::Optimization) {}
// 重载 runOnFunction 方法,实现具体的优化逻辑
bool runOnFunction(Function *F, AnalysisManager& AM) override;
// 提供PassID
void *getPassID() const override { return &ID; }
// 声明Pass的分析使用
// BuildCFG不依赖任何分析但会使其他依赖CFG的分析失效
void getAnalysisUsage(std::set<void *> &analysisDependencies,
std::set<void *> &analysisInvalidations) override;
};
} // namespace sysy