mini-llvm 0.1.0
Loading...
Searching...
No Matches
I8ArrayConstant.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
14
15namespace mini_llvm::mir {
16
18public:
19 explicit I8ArrayConstant(std::vector<int8_t> elements) : elements_(std::move(elements)) {}
20
21 std::vector<int8_t> &elements() & {
22 return elements_;
23 }
24
25 const std::vector<int8_t> &elements() const & {
26 return elements_;
27 }
28
29 std::vector<int8_t> &&elements() && {
30 return std::move(elements_);
31 }
32
33 void setElements(std::vector<int8_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()) * 1;
43 }
44
45 std::string format() const override;
46
47 void accept(ConstantVisitor &visitor) override {
48 visitor.visitI8ArrayConstant(*this);
49 }
50
51 void accept(ConstantVisitor &visitor) const override {
52 visitor.visitI8ArrayConstant(*this);
53 }
54
55private:
56 std::vector<int8_t> elements_;
57};
58
59} // namespace mini_llvm::mir
#define MINI_LLVM_EXPORT
Definition Compiler.h:17
Definition ConstantVisitor.h:24
virtual void visitI8ArrayConstant(I8ArrayConstant &C)
Definition ConstantVisitor.h:42
std::vector< int8_t > && elements() &&
Definition I8ArrayConstant.h:29
int size() const override
Definition I8ArrayConstant.h:41
void accept(ConstantVisitor &visitor) override
Definition I8ArrayConstant.h:47
std::string format() const override
std::vector< int8_t > & elements() &
Definition I8ArrayConstant.h:21
const std::vector< int8_t > & elements() const &
Definition I8ArrayConstant.h:25
I8ArrayConstant(std::vector< int8_t > elements)
Definition I8ArrayConstant.h:19
void setElements(std::vector< int8_t > elements)
Definition I8ArrayConstant.h:33
size_t numElements() const
Definition I8ArrayConstant.h:37
void accept(ConstantVisitor &visitor) const override
Definition I8ArrayConstant.h:51
Definition BasicBlock.h:22