mini-llvm 0.1.0
Loading...
Searching...
No Matches
GlobalValue.h
Go to the documentation of this file.
1// SPDX-License-Identifier: MIT
2
3#pragma once
4
5#include <cstdlib>
6#include <memory>
7#include <string>
8
10#include "mini-llvm/ir/Type.h"
12#include "mini-llvm/ir/Value.h"
14
15namespace mini_llvm::ir {
16
18public:
19 std::unique_ptr<Type> type() const override {
20 return std::make_unique<Ptr>();
21 }
22
23 virtual bool isDeclaration() const = 0;
24
25 std::string formatAsOperand() const override {
26 return "@" + formatName();
27 }
28
29 std::unique_ptr<Value> clone() const override {
30 abort();
31 }
32};
33
34} // namespace mini_llvm::ir
#define MINI_LLVM_EXPORT
Definition Compiler.h:17
Definition GlobalValue.h:17
std::unique_ptr< Type > type() const override
Definition GlobalValue.h:19
virtual bool isDeclaration() const =0
std::unique_ptr< Value > clone() const override
Definition GlobalValue.h:29
std::string formatAsOperand() const override
Definition GlobalValue.h:25
Definition PointerConstant.h:10
std::string formatName() const
Definition Argument.h:13