#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
