mini-llvm
0.1.0
Toggle main menu visibility
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
8
#include "
mini-llvm/mir/Constant.h
"
9
#include "
mini-llvm/mir/ConstantVisitor.h
"
10
11
namespace
mini_llvm::mir
{
12
13
class
ZeroConstant
final :
public
Constant
{
14
public
:
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
37
private
:
38
int
size_;
39
};
40
41
}
// namespace mini_llvm::mir
mini_llvm::mir::ConstantVisitor
Definition
ConstantVisitor.h:24
mini_llvm::mir::ConstantVisitor::visitZeroConstant
virtual void visitZeroConstant(ZeroConstant &C)
Definition
ConstantVisitor.h:46
mini_llvm::mir::Constant::Constant
Constant()=default
mini_llvm::mir::ZeroConstant::ZeroConstant
ZeroConstant(int size)
Definition
ZeroConstant.h:15
mini_llvm::mir::ZeroConstant::format
std::string format() const override
Definition
ZeroConstant.h:25
mini_llvm::mir::ZeroConstant::setSize
void setSize(int size)
Definition
ZeroConstant.h:21
mini_llvm::mir::ZeroConstant::size
int size() const override
Definition
ZeroConstant.h:17
mini_llvm::mir::ZeroConstant::accept
void accept(ConstantVisitor &visitor) override
Definition
ZeroConstant.h:29
mini_llvm::mir::ZeroConstant::accept
void accept(ConstantVisitor &visitor) const override
Definition
ZeroConstant.h:33
ConstantVisitor.h
Constant.h
mini_llvm::mir
Definition
BasicBlock.h:22
include
mini-llvm
mir
Constant
ZeroConstant.h
Generated by
1.17.0