mini-llvm
0.1.0
Toggle main menu visibility
Loading...
Searching...
No Matches
Attribute.h
Go to the documentation of this file.
1
// SPDX-License-Identifier: MIT
2
3
#pragma once
4
5
#include <format>
6
#include <memory>
7
#include <string>
8
9
#include "
mini-llvm/utils/Compiler.h
"
10
11
namespace
mini_llvm::ir
{
12
13
class
MINI_LLVM_EXPORT
Attribute
{
14
public
:
15
virtual
~Attribute
() =
default
;
16
17
Attribute
(
const
Attribute
&) =
delete
;
18
Attribute
&
operator=
(
const
Attribute
&) =
delete
;
19
20
Attribute
(
Attribute
&&) =
delete
;
21
Attribute
&
operator=
(
Attribute
&&) =
delete
;
22
23
virtual
std::string
format
()
const
= 0;
24
virtual
std::unique_ptr<Attribute>
clone
()
const
= 0;
25
26
protected
:
27
Attribute
() =
default
;
28
};
29
30
}
// namespace mini_llvm::ir
31
32
template
<>
33
struct
std::formatter<
mini_llvm
::ir::Attribute> {
34
public
:
35
constexpr
auto
parse
(std::format_parse_context &ctx) {
36
return
ctx.begin();
37
}
38
39
template
<
typename
FormatContext>
40
auto
format
(
const
mini_llvm::ir::Attribute
&attr, FormatContext &ctx)
const
{
41
return
format_to(ctx.out(),
"{}"
, attr.
format
());
42
}
43
};
Compiler.h
MINI_LLVM_EXPORT
#define MINI_LLVM_EXPORT
Definition
Compiler.h:17
mini_llvm::ir::Attribute
Definition
Attribute.h:13
mini_llvm::ir::Attribute::operator=
Attribute & operator=(const Attribute &)=delete
mini_llvm::ir::Attribute::operator=
Attribute & operator=(Attribute &&)=delete
mini_llvm::ir::Attribute::~Attribute
virtual ~Attribute()=default
mini_llvm::ir::Attribute::Attribute
Attribute(const Attribute &)=delete
mini_llvm::ir::Attribute::Attribute
Attribute(Attribute &&)=delete
mini_llvm::ir::Attribute::clone
virtual std::unique_ptr< Attribute > clone() const =0
mini_llvm::ir::Attribute::format
virtual std::string format() const =0
mini_llvm::ir::Attribute::Attribute
Attribute()=default
mini_llvm::ir
Definition
Argument.h:13
mini_llvm
Definition
GraphColoringAllocator.h:13
std::formatter< mini_llvm::ir::Attribute >::format
auto format(const mini_llvm::ir::Attribute &attr, FormatContext &ctx) const
Definition
Attribute.h:40
std::formatter< mini_llvm::ir::Attribute >::parse
constexpr auto parse(std::format_parse_context &ctx)
Definition
Attribute.h:35
include
mini-llvm
ir
Attribute.h
Generated by
1.17.0