可以处理生成加法的IR

This commit is contained in:
jing
2025-12-28 18:44:48 +08:00
parent 77bee889d7
commit e941cced9b
42 changed files with 919 additions and 158 deletions

View File

@@ -1,4 +1,19 @@
// IR 构建工具:
// - 管理插入点(当前基本块/位置)
// - 提供创建各类指令的便捷接口,降低 IRGen 复杂度
#include "ir/IR.h"
namespace ir {
ConstantInt* IRBuilder::CreateConstInt(int v) {
// 常量不需要挂在基本块里,直接返回局部对象指针。
return new ConstantInt(v);
}
BinaryInst* IRBuilder::CreateBinary(Opcode op, Value* lhs, Value* rhs,
const std::string& name) {
return insertBlock_->Append<BinaryInst>(op, Type::Int32(), lhs, rhs, name);
}
ReturnInst* IRBuilder::CreateRet(Value* v) {
return insertBlock_->Append<ReturnInst>(v);
}
} // namespace ir