mini-llvm 0.1.0
Loading...
Searching...
No Matches
ConstantVisitor.h
Go to the documentation of this file.
1// SPDX-License-Identifier: MIT
2
3#pragma once
4
5#include <cstdlib>
6#include <utility>
7
9
10namespace mini_llvm::mir {
11
13class I16Constant;
15class I32Constant;
17class I64Constant;
18class I8ArrayConstant;
19class I8Constant;
21class PtrConstant;
22class ZeroConstant;
23
25public:
26 virtual ~ConstantVisitor() = default;
27
28 ConstantVisitor() = default;
29
32
35
36 virtual void visitI16ArrayConstant(I16ArrayConstant &C) { visitI16ArrayConstant(std::as_const(C)); }
37 virtual void visitI16Constant(I16Constant &C) { visitI16Constant(std::as_const(C)); }
38 virtual void visitI32ArrayConstant(I32ArrayConstant &C) { visitI32ArrayConstant(std::as_const(C)); }
39 virtual void visitI32Constant(I32Constant &C) { visitI32Constant(std::as_const(C)); }
40 virtual void visitI64ArrayConstant(I64ArrayConstant &C) { visitI64ArrayConstant(std::as_const(C)); }
41 virtual void visitI64Constant(I64Constant &C) { visitI64Constant(std::as_const(C)); }
42 virtual void visitI8ArrayConstant(I8ArrayConstant &C) { visitI8ArrayConstant(std::as_const(C)); }
43 virtual void visitI8Constant(I8Constant &C) { visitI8Constant(std::as_const(C)); }
44 virtual void visitPtrArrayConstant(PtrArrayConstant &C) { visitPtrArrayConstant(std::as_const(C)); }
45 virtual void visitPtrConstant(PtrConstant &C) { visitPtrConstant(std::as_const(C)); }
46 virtual void visitZeroConstant(ZeroConstant &C) { visitZeroConstant(std::as_const(C)); }
47
48 virtual void visitI16ArrayConstant(const I16ArrayConstant &) { abort(); }
49 virtual void visitI16Constant(const I16Constant &) { abort(); }
50 virtual void visitI32ArrayConstant(const I32ArrayConstant &) { abort(); }
51 virtual void visitI32Constant(const I32Constant &) { abort(); }
52 virtual void visitI64ArrayConstant(const I64ArrayConstant &) { abort(); }
53 virtual void visitI64Constant(const I64Constant &) { abort(); }
54 virtual void visitI8ArrayConstant(const I8ArrayConstant &) { abort(); }
55 virtual void visitI8Constant(const I8Constant &) { abort(); }
56 virtual void visitPtrArrayConstant(const PtrArrayConstant &) { abort(); }
57 virtual void visitPtrConstant(const PtrConstant &) { abort(); }
58 virtual void visitZeroConstant(const ZeroConstant &) { abort(); }
59};
60
61} // namespace mini_llvm::mir
#define MINI_LLVM_EXPORT
Definition Compiler.h:17
virtual void visitI32Constant(I32Constant &C)
Definition ConstantVisitor.h:39
virtual ~ConstantVisitor()=default
virtual void visitI16Constant(const I16Constant &)
Definition ConstantVisitor.h:49
virtual void visitI8ArrayConstant(const I8ArrayConstant &)
Definition ConstantVisitor.h:54
virtual void visitI64Constant(I64Constant &C)
Definition ConstantVisitor.h:41
virtual void visitI64Constant(const I64Constant &)
Definition ConstantVisitor.h:53
virtual void visitPtrConstant(PtrConstant &C)
Definition ConstantVisitor.h:45
virtual void visitI16Constant(I16Constant &C)
Definition ConstantVisitor.h:37
virtual void visitPtrArrayConstant(const PtrArrayConstant &)
Definition ConstantVisitor.h:56
ConstantVisitor & operator=(const ConstantVisitor &)=delete
ConstantVisitor(ConstantVisitor &&)=delete
virtual void visitI32Constant(const I32Constant &)
Definition ConstantVisitor.h:51
virtual void visitI64ArrayConstant(const I64ArrayConstant &)
Definition ConstantVisitor.h:52
virtual void visitZeroConstant(ZeroConstant &C)
Definition ConstantVisitor.h:46
ConstantVisitor & operator=(ConstantVisitor &&)=delete
virtual void visitI16ArrayConstant(const I16ArrayConstant &)
Definition ConstantVisitor.h:48
virtual void visitI64ArrayConstant(I64ArrayConstant &C)
Definition ConstantVisitor.h:40
virtual void visitI32ArrayConstant(const I32ArrayConstant &)
Definition ConstantVisitor.h:50
virtual void visitI8ArrayConstant(I8ArrayConstant &C)
Definition ConstantVisitor.h:42
ConstantVisitor(const ConstantVisitor &)=delete
virtual void visitPtrConstant(const PtrConstant &)
Definition ConstantVisitor.h:57
virtual void visitI8Constant(const I8Constant &)
Definition ConstantVisitor.h:55
virtual void visitZeroConstant(const ZeroConstant &)
Definition ConstantVisitor.h:58
virtual void visitI32ArrayConstant(I32ArrayConstant &C)
Definition ConstantVisitor.h:38
virtual void visitPtrArrayConstant(PtrArrayConstant &C)
Definition ConstantVisitor.h:44
virtual void visitI8Constant(I8Constant &C)
Definition ConstantVisitor.h:43
virtual void visitI16ArrayConstant(I16ArrayConstant &C)
Definition ConstantVisitor.h:36
Definition I16ArrayConstant.h:17
Definition I16Constant.h:14
Definition I32ArrayConstant.h:17
Definition I32Constant.h:14
Definition I64ArrayConstant.h:17
Definition I64Constant.h:14
Definition I8ArrayConstant.h:17
Definition I8Constant.h:14
Definition PtrArrayConstant.h:17
Definition PtrConstant.h:16
Definition ZeroConstant.h:13
Definition BasicBlock.h:22