mini-llvm
0.1.0
Toggle main menu visibility
Loading...
Searching...
No Matches
PtrArrayConstant.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/GlobalValue.h
"
13
#include "
mini-llvm/utils/Compiler.h
"
14
15
namespace
mini_llvm::mir
{
16
17
class
MINI_LLVM_EXPORT
PtrArrayConstant
final :
public
Constant
{
18
public
:
19
PtrArrayConstant
(
int
ptrSize
, std::vector<std::pair<GlobalValue *, int64_t>>
elements
)
20
: ptrSize_(
ptrSize
), elements_(std::move(
elements
)) {}
21
22
int
ptrSize
()
const
{
23
return
ptrSize_;
24
}
25
26
std::vector<std::pair<GlobalValue *, int64_t>> &
elements
() & {
27
return
elements_;
28
}
29
30
const
std::vector<std::pair<GlobalValue *, int64_t>> &
elements
() const & {
31
return
elements_;
32
}
33
34
std::vector<std::pair<GlobalValue *, int64_t>> &&
elements
() && {
35
return
std::move(elements_);
36
}
37
38
void
setElements
(std::vector<std::pair<GlobalValue *, int64_t>>
elements
) {
39
elements_ = std::move(
elements
);
40
}
41
42
size_t
numElements
()
const
{
43
return
elements_.size();
44
}
45
46
int
size
()
const override
{
47
return
static_cast<
int
>
(
numElements
()) * ptrSize_;
48
}
49
50
std::string
format
()
const override
;
51
52
void
accept
(
ConstantVisitor
&visitor)
override
{
53
visitor.
visitPtrArrayConstant
(*
this
);
54
}
55
56
void
accept
(
ConstantVisitor
&visitor)
const override
{
57
visitor.
visitPtrArrayConstant
(*
this
);
58
}
59
60
private
:
61
int
ptrSize_;
62
std::vector<std::pair<GlobalValue *, int64_t>> elements_;
63
};
64
65
}
// 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::visitPtrArrayConstant
virtual void visitPtrArrayConstant(PtrArrayConstant &C)
Definition
ConstantVisitor.h:44
mini_llvm::mir::Constant::Constant
Constant()=default
mini_llvm::mir::PtrArrayConstant::elements
std::vector< std::pair< GlobalValue *, int64_t > > & elements() &
Definition
PtrArrayConstant.h:26
mini_llvm::mir::PtrArrayConstant::ptrSize
int ptrSize() const
Definition
PtrArrayConstant.h:22
mini_llvm::mir::PtrArrayConstant::elements
const std::vector< std::pair< GlobalValue *, int64_t > > & elements() const &
Definition
PtrArrayConstant.h:30
mini_llvm::mir::PtrArrayConstant::accept
void accept(ConstantVisitor &visitor) const override
Definition
PtrArrayConstant.h:56
mini_llvm::mir::PtrArrayConstant::accept
void accept(ConstantVisitor &visitor) override
Definition
PtrArrayConstant.h:52
mini_llvm::mir::PtrArrayConstant::PtrArrayConstant
PtrArrayConstant(int ptrSize, std::vector< std::pair< GlobalValue *, int64_t > > elements)
Definition
PtrArrayConstant.h:19
mini_llvm::mir::PtrArrayConstant::size
int size() const override
Definition
PtrArrayConstant.h:46
mini_llvm::mir::PtrArrayConstant::setElements
void setElements(std::vector< std::pair< GlobalValue *, int64_t > > elements)
Definition
PtrArrayConstant.h:38
mini_llvm::mir::PtrArrayConstant::numElements
size_t numElements() const
Definition
PtrArrayConstant.h:42
mini_llvm::mir::PtrArrayConstant::elements
std::vector< std::pair< GlobalValue *, int64_t > > && elements() &&
Definition
PtrArrayConstant.h:34
mini_llvm::mir::PtrArrayConstant::format
std::string format() const override
Constant.h
GlobalValue.h
mini_llvm::mir
Definition
BasicBlock.h:22
include
mini-llvm
mir
Constant
PtrArrayConstant.h
Generated by
1.17.0