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::ir {
11
12class ArrayConstant;
13class DoubleConstant;
14class FloatConstant;
15class Function;
16class GlobalVar;
17class I16Constant;
18class I1Constant;
19class I32Constant;
20class I64Constant;
21class I8Constant;
22class NullPtrConstant;
23class PoisonValue;
24class VoidValue;
25
27public:
28 virtual ~ConstantVisitor() = default;
29
30 ConstantVisitor() = default;
31
34
37
38 virtual void visitArrayConstant(ArrayConstant &C) { visitArrayConstant(std::as_const(C)); }
39 virtual void visitDoubleConstant(DoubleConstant &C) { visitDoubleConstant(std::as_const(C)); }
40 virtual void visitFloatConstant(FloatConstant &C) { visitFloatConstant(std::as_const(C)); }
41 virtual void visitFunction(Function &C) { visitFunction(std::as_const(C)); }
42 virtual void visitGlobalVar(GlobalVar &C) { visitGlobalVar(std::as_const(C)); }
43 virtual void visitI16Constant(I16Constant &C) { visitI16Constant(std::as_const(C)); }
44 virtual void visitI1Constant(I1Constant &C) { visitI1Constant(std::as_const(C)); }
45 virtual void visitI32Constant(I32Constant &C) { visitI32Constant(std::as_const(C)); }
46 virtual void visitI64Constant(I64Constant &C) { visitI64Constant(std::as_const(C)); }
47 virtual void visitI8Constant(I8Constant &C) { visitI8Constant(std::as_const(C)); }
48 virtual void visitNullPtrConstant(NullPtrConstant &C) { visitNullPtrConstant(std::as_const(C)); }
49 virtual void visitPoisonValue(PoisonValue &C) { visitPoisonValue(std::as_const(C)); }
50 virtual void visitVoidValue(VoidValue &C) { visitVoidValue(std::as_const(C)); }
51
52 virtual void visitArrayConstant(const ArrayConstant &) { abort(); }
53 virtual void visitDoubleConstant(const DoubleConstant &) { abort(); }
54 virtual void visitFloatConstant(const FloatConstant &) { abort(); }
55 virtual void visitFunction(const Function &) { abort(); }
56 virtual void visitGlobalVar(const GlobalVar &) { abort(); }
57 virtual void visitI16Constant(const I16Constant &) { abort(); }
58 virtual void visitI1Constant(const I1Constant &) { abort(); }
59 virtual void visitI32Constant(const I32Constant &) { abort(); }
60 virtual void visitI64Constant(const I64Constant &) { abort(); }
61 virtual void visitI8Constant(const I8Constant &) { abort(); }
62 virtual void visitNullPtrConstant(const NullPtrConstant &) { abort(); }
63 virtual void visitPoisonValue(const PoisonValue &) { abort(); }
64 virtual void visitVoidValue(const VoidValue &) { abort(); }
65};
66
67} // namespace mini_llvm::ir
#define MINI_LLVM_EXPORT
Definition Compiler.h:17
Definition ArrayConstant.h:22
virtual void visitI16Constant(I16Constant &C)
Definition ConstantVisitor.h:43
virtual void visitFloatConstant(FloatConstant &C)
Definition ConstantVisitor.h:40
virtual void visitFunction(const Function &)
Definition ConstantVisitor.h:55
virtual void visitFloatConstant(const FloatConstant &)
Definition ConstantVisitor.h:54
virtual void visitVoidValue(const VoidValue &)
Definition ConstantVisitor.h:64
virtual void visitPoisonValue(PoisonValue &C)
Definition ConstantVisitor.h:49
ConstantVisitor & operator=(ConstantVisitor &&)=delete
virtual void visitI32Constant(const I32Constant &)
Definition ConstantVisitor.h:59
virtual void visitVoidValue(VoidValue &C)
Definition ConstantVisitor.h:50
virtual void visitGlobalVar(GlobalVar &C)
Definition ConstantVisitor.h:42
virtual void visitNullPtrConstant(NullPtrConstant &C)
Definition ConstantVisitor.h:48
virtual void visitNullPtrConstant(const NullPtrConstant &)
Definition ConstantVisitor.h:62
ConstantVisitor & operator=(const ConstantVisitor &)=delete
virtual void visitI64Constant(I64Constant &C)
Definition ConstantVisitor.h:46
virtual void visitFunction(Function &C)
Definition ConstantVisitor.h:41
virtual void visitArrayConstant(ArrayConstant &C)
Definition ConstantVisitor.h:38
ConstantVisitor(ConstantVisitor &&)=delete
virtual void visitI8Constant(I8Constant &C)
Definition ConstantVisitor.h:47
virtual void visitI16Constant(const I16Constant &)
Definition ConstantVisitor.h:57
virtual void visitI1Constant(I1Constant &C)
Definition ConstantVisitor.h:44
ConstantVisitor(const ConstantVisitor &)=delete
virtual void visitI1Constant(const I1Constant &)
Definition ConstantVisitor.h:58
virtual void visitDoubleConstant(DoubleConstant &C)
Definition ConstantVisitor.h:39
virtual void visitI32Constant(I32Constant &C)
Definition ConstantVisitor.h:45
virtual void visitArrayConstant(const ArrayConstant &)
Definition ConstantVisitor.h:52
virtual void visitI64Constant(const I64Constant &)
Definition ConstantVisitor.h:60
virtual void visitDoubleConstant(const DoubleConstant &)
Definition ConstantVisitor.h:53
virtual void visitGlobalVar(const GlobalVar &)
Definition ConstantVisitor.h:56
virtual void visitI8Constant(const I8Constant &)
Definition ConstantVisitor.h:61
virtual void visitPoisonValue(const PoisonValue &)
Definition ConstantVisitor.h:63
virtual ~ConstantVisitor()=default
Definition DoubleConstant.h:20
Definition FloatConstant.h:21
Definition Function.h:34
Definition GlobalVar.h:20
Definition I16Constant.h:20
Definition I1Constant.h:20
Definition I32Constant.h:20
Definition I64Constant.h:18
Definition I8Constant.h:20
Definition NullPtrConstant.h:18
Definition PoisonValue.h:16
Definition VoidValue.h:18
Definition Argument.h:13