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