mini-llvm
0.1.0
Toggle main menu visibility
Loading...
Searching...
No Matches
I32ArrayConstant.h
Go to the documentation of this file.
1
// SPDX-License-Identifier: MIT
2
3
#pragma once
4
5
#include <cstddef>
6
#include <cstdint>
7
#include <string>
8
#include <utility>
9
#include <vector>
10
11
#include "
mini-llvm/mir/Constant.h
"
12
#include "
mini-llvm/mir/ConstantVisitor.h
"
13
#include "
mini-llvm/utils/Compiler.h
"
14
15
namespace
mini_llvm::mir
{
16
17
class
MINI_LLVM_EXPORT
I32ArrayConstant
final :
public
Constant
{
18
public
:
19
explicit
I32ArrayConstant
(std::vector<int32_t>
elements
) : elements_(std::move(
elements
)) {}
20
21
std::vector<int32_t> &
elements
() & {
22
return
elements_;
23
}
24
25
const
std::vector<int32_t> &
elements
() const & {
26
return
elements_;
27
}
28
29
std::vector<int32_t> &&
elements
() && {
30
return
std::move(elements_);
31
}
32
33
void
setElements
(std::vector<int32_t>
elements
) {
34
elements_ = std::move(
elements
);
35
}
36
37
size_t
numElements
()
const
{
38
return
elements_.size();
39
}
40
41
int
size
()
const override
{
42
return
static_cast<
int
>
(
numElements
()) * 4;
43
}
44
45
std::string
format
()
const override
;
46
47
void
accept
(
ConstantVisitor
&visitor)
override
{
48
visitor.
visitI32ArrayConstant
(*
this
);
49
}
50
51
void
accept
(
ConstantVisitor
&visitor)
const override
{
52
visitor.
visitI32ArrayConstant
(*
this
);
53
}
54
55
56
private
:
57
std::vector<int32_t> elements_;
58
};
59
60
}
// namespace mini_llvm::mir
Compiler.h
MINI_LLVM_EXPORT
#define MINI_LLVM_EXPORT
Definition
Compiler.h:17
mini_llvm::mir::ConstantVisitor
Definition
ConstantVisitor.h:24
mini_llvm::mir::ConstantVisitor::visitI32ArrayConstant
virtual void visitI32ArrayConstant(I32ArrayConstant &C)
Definition
ConstantVisitor.h:38
mini_llvm::mir::Constant::Constant
Constant()=default
mini_llvm::mir::I32ArrayConstant::elements
std::vector< int32_t > && elements() &&
Definition
I32ArrayConstant.h:29
mini_llvm::mir::I32ArrayConstant::format
std::string format() const override
mini_llvm::mir::I32ArrayConstant::size
int size() const override
Definition
I32ArrayConstant.h:41
mini_llvm::mir::I32ArrayConstant::I32ArrayConstant
I32ArrayConstant(std::vector< int32_t > elements)
Definition
I32ArrayConstant.h:19
mini_llvm::mir::I32ArrayConstant::accept
void accept(ConstantVisitor &visitor) const override
Definition
I32ArrayConstant.h:51
mini_llvm::mir::I32ArrayConstant::accept
void accept(ConstantVisitor &visitor) override
Definition
I32ArrayConstant.h:47
mini_llvm::mir::I32ArrayConstant::setElements
void setElements(std::vector< int32_t > elements)
Definition
I32ArrayConstant.h:33
mini_llvm::mir::I32ArrayConstant::numElements
size_t numElements() const
Definition
I32ArrayConstant.h:37
mini_llvm::mir::I32ArrayConstant::elements
const std::vector< int32_t > & elements() const &
Definition
I32ArrayConstant.h:25
mini_llvm::mir::I32ArrayConstant::elements
std::vector< int32_t > & elements() &
Definition
I32ArrayConstant.h:21
ConstantVisitor.h
Constant.h
mini_llvm::mir
Definition
BasicBlock.h:22
include
mini-llvm
mir
Constant
I32ArrayConstant.h
Generated by
1.17.0