// IR 基本块: // - 保存指令序列 // - 维护或可计算前驱/后继关系,用于 CFG 分析与优化 #include "ir/IR.h" #include namespace ir { BasicBlock::BasicBlock(std::string name) : name_(std::move(name)) {} const std::string& BasicBlock::GetName() const { return name_; } Function* BasicBlock::GetParent() const { return parent_; } void BasicBlock::SetParent(Function* parent) { parent_ = parent; } bool BasicBlock::HasTerminator() const { return !instructions_.empty() && instructions_.back()->IsTerminator(); } const std::vector>& BasicBlock::GetInstructions() const { return instructions_; } const std::vector& BasicBlock::GetPredecessors() const { return predecessors_; } const std::vector& BasicBlock::GetSuccessors() const { return successors_; } } // namespace ir