feat: no VoidValue, just Void type
This commit is contained in:
@@ -54,7 +54,7 @@ namespace IR
|
|||||||
argRegs.Push(arg);
|
argRegs.Push(arg);
|
||||||
}
|
}
|
||||||
// TODO: gather return type of the function
|
// TODO: gather return type of the function
|
||||||
auto dst = VoidValue();
|
auto dst = AllocateNamed<Instruction>(new ValueHandle::Type {ValueHandle::Type::Kind::Void});
|
||||||
m_ops->Push(new CallOp(dst, fn->name(), argRegs.view()));
|
m_ops->Push(new CallOp(dst, fn->name(), argRegs.view()));
|
||||||
return dst;
|
return dst;
|
||||||
}
|
}
|
||||||
@@ -75,7 +75,7 @@ namespace IR
|
|||||||
}
|
}
|
||||||
|
|
||||||
assert(0 && "unreachable");
|
assert(0 && "unreachable");
|
||||||
return reinterpret_cast<ValueHandle *>(new Void());
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
ValueHandle *ParseExpression(const Node *expression)
|
ValueHandle *ParseExpression(const Node *expression)
|
||||||
@@ -187,11 +187,6 @@ namespace IR
|
|||||||
return new V(ValueHandle::kNoId, std::forward<Args>(args)...);
|
return new V(ValueHandle::kNoId, std::forward<Args>(args)...);
|
||||||
}
|
}
|
||||||
|
|
||||||
ValueHandle *VoidValue()
|
|
||||||
{
|
|
||||||
return new Void();
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const Node *m_root = nullptr;
|
const Node *m_root = nullptr;
|
||||||
|
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ namespace IR
|
|||||||
{
|
{
|
||||||
StringBuilder sb;
|
StringBuilder sb;
|
||||||
sb.AppendIndent(indent);
|
sb.AppendIndent(indent);
|
||||||
sb << result()->Format() << " = load " << m_ptr->Format();
|
sb << result()->Format() << " = load " << result()->GetType()->Format() << ", " << m_ptr->Format();
|
||||||
return sb.view();
|
return sb.view();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -129,27 +129,6 @@ namespace IR
|
|||||||
Type *m_value_typ;
|
Type *m_value_typ;
|
||||||
};
|
};
|
||||||
|
|
||||||
class Void : public ValueHandle
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
Void()
|
|
||||||
: ValueHandle()
|
|
||||||
{
|
|
||||||
m_type = new Type{Type::Kind::Void};
|
|
||||||
}
|
|
||||||
|
|
||||||
const Type *GetType() const override { return m_type; }
|
|
||||||
|
|
||||||
public:
|
|
||||||
virtual StringView Format() const override
|
|
||||||
{
|
|
||||||
return m_type->Format();
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
Type *m_type;
|
|
||||||
};
|
|
||||||
|
|
||||||
class Instruction : public ValueHandle
|
class Instruction : public ValueHandle
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|||||||
Reference in New Issue
Block a user