mini-llvm
0.1.0
Toggle main menu visibility
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
9
#include "
mini-llvm/ir/Constant/PointerConstant.h
"
10
#include "
mini-llvm/ir/Type.h
"
11
#include "
mini-llvm/ir/Type/Ptr.h
"
12
#include "
mini-llvm/ir/Value.h
"
13
#include "
mini-llvm/utils/Compiler.h
"
14
15
namespace
mini_llvm::ir
{
16
17
class
MINI_LLVM_EXPORT
GlobalValue
:
public
PointerConstant
{
18
public
:
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
Compiler.h
MINI_LLVM_EXPORT
#define MINI_LLVM_EXPORT
Definition
Compiler.h:17
PointerConstant.h
Ptr.h
Type.h
Value.h
mini_llvm::ir::GlobalValue
Definition
GlobalValue.h:17
mini_llvm::ir::GlobalValue::type
std::unique_ptr< Type > type() const override
Definition
GlobalValue.h:19
mini_llvm::ir::GlobalValue::isDeclaration
virtual bool isDeclaration() const =0
mini_llvm::ir::GlobalValue::clone
std::unique_ptr< Value > clone() const override
Definition
GlobalValue.h:29
mini_llvm::ir::GlobalValue::formatAsOperand
std::string formatAsOperand() const override
Definition
GlobalValue.h:25
mini_llvm::ir::PointerConstant
Definition
PointerConstant.h:10
mini_llvm::ir::Value::formatName
std::string formatName() const
mini_llvm::ir
Definition
Argument.h:13
include
mini-llvm
ir
GlobalValue.h
Generated by
1.17.0