mini-llvm 0.1.0
Loading...
Searching...
No Matches
ZeroConstant.h
Go to the documentation of this file.
1// SPDX-License-Identifier: MIT
2
3#pragma once
4
5#include <format>
6#include <string>
7
10
11namespace mini_llvm::mir {
12
13class ZeroConstant final : public Constant {
14public:
15 explicit ZeroConstant(int size) : size_(size) {}
16
17 int size() const override {
18 return size_;
19 }
20
21 void setSize(int size) {
22 size_ = size;
23 }
24
25 std::string format() const override {
26 return std::format("zero {}", size());
27 }
28
29 void accept(ConstantVisitor &visitor) override {
30 visitor.visitZeroConstant(*this);
31 }
32
33 void accept(ConstantVisitor &visitor) const override {
34 visitor.visitZeroConstant(*this);
35 }
36
37private:
38 int size_;
39};
40
41} // namespace mini_llvm::mir
Definition ConstantVisitor.h:24
virtual void visitZeroConstant(ZeroConstant &C)
Definition ConstantVisitor.h:46
ZeroConstant(int size)
Definition ZeroConstant.h:15
std::string format() const override
Definition ZeroConstant.h:25
void setSize(int size)
Definition ZeroConstant.h:21
int size() const override
Definition ZeroConstant.h:17
void accept(ConstantVisitor &visitor) override
Definition ZeroConstant.h:29
void accept(ConstantVisitor &visitor) const override
Definition ZeroConstant.h:33
Definition BasicBlock.h:22