LLVM
22.0.0git
include
llvm
Support
ARMAttributeParser.h
Go to the documentation of this file.
1
//===- ARMAttributeParser.h - ARM Attribute Information Printer -*- C++ -*-===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
9
#ifndef LLVM_SUPPORT_ARMATTRIBUTEPARSER_H
10
#define LLVM_SUPPORT_ARMATTRIBUTEPARSER_H
11
12
#include "
ARMBuildAttributes.h
"
13
#include "
llvm/ADT/StringRef.h
"
14
#include "
llvm/Support/Compiler.h
"
15
#include "
llvm/Support/ELFAttrParserCompact.h
"
16
#include "
llvm/Support/Error.h
"
17
18
namespace
llvm
{
19
20
class
ScopedPrinter
;
21
22
class
LLVM_ABI
ARMAttributeParser
:
public
ELFCompactAttrParser
{
23
struct
DisplayHandler {
24
ARMBuildAttrs::AttrType
attribute;
25
Error
(
ARMAttributeParser
::*routine)(
ARMBuildAttrs::AttrType
);
26
};
27
static
const
DisplayHandler displayRoutines[];
28
29
Error
handler(
uint64_t
tag,
bool
&handled)
override
;
30
31
Error
stringAttribute(
ARMBuildAttrs::AttrType
tag);
32
33
Error
CPU_arch(
ARMBuildAttrs::AttrType
tag);
34
Error
CPU_arch_profile(
ARMBuildAttrs::AttrType
tag);
35
Error
ARM_ISA_use(
ARMBuildAttrs::AttrType
tag);
36
Error
THUMB_ISA_use(
ARMBuildAttrs::AttrType
tag);
37
Error
FP_arch(
ARMBuildAttrs::AttrType
tag);
38
Error
WMMX_arch(
ARMBuildAttrs::AttrType
tag);
39
Error
Advanced_SIMD_arch(
ARMBuildAttrs::AttrType
tag);
40
Error
MVE_arch(
ARMBuildAttrs::AttrType
tag);
41
Error
PCS_config(
ARMBuildAttrs::AttrType
tag);
42
Error
ABI_PCS_R9_use(
ARMBuildAttrs::AttrType
tag);
43
Error
ABI_PCS_RW_data(
ARMBuildAttrs::AttrType
tag);
44
Error
ABI_PCS_RO_data(
ARMBuildAttrs::AttrType
tag);
45
Error
ABI_PCS_GOT_use(
ARMBuildAttrs::AttrType
tag);
46
Error
ABI_PCS_wchar_t(
ARMBuildAttrs::AttrType
tag);
47
Error
ABI_FP_rounding(
ARMBuildAttrs::AttrType
tag);
48
Error
ABI_FP_denormal(
ARMBuildAttrs::AttrType
tag);
49
Error
ABI_FP_exceptions(
ARMBuildAttrs::AttrType
tag);
50
Error
ABI_FP_user_exceptions(
ARMBuildAttrs::AttrType
tag);
51
Error
ABI_FP_number_model(
ARMBuildAttrs::AttrType
tag);
52
Error
ABI_align_needed(
ARMBuildAttrs::AttrType
tag);
53
Error
ABI_align_preserved(
ARMBuildAttrs::AttrType
tag);
54
Error
ABI_enum_size(
ARMBuildAttrs::AttrType
tag);
55
Error
ABI_HardFP_use(
ARMBuildAttrs::AttrType
tag);
56
Error
ABI_VFP_args(
ARMBuildAttrs::AttrType
tag);
57
Error
ABI_WMMX_args(
ARMBuildAttrs::AttrType
tag);
58
Error
ABI_optimization_goals(
ARMBuildAttrs::AttrType
tag);
59
Error
ABI_FP_optimization_goals(
ARMBuildAttrs::AttrType
tag);
60
Error
compatibility(
ARMBuildAttrs::AttrType
tag);
61
Error
CPU_unaligned_access(
ARMBuildAttrs::AttrType
tag);
62
Error
FP_HP_extension(
ARMBuildAttrs::AttrType
tag);
63
Error
ABI_FP_16bit_format(
ARMBuildAttrs::AttrType
tag);
64
Error
MPextension_use(
ARMBuildAttrs::AttrType
tag);
65
Error
DIV_use(
ARMBuildAttrs::AttrType
tag);
66
Error
DSP_extension(
ARMBuildAttrs::AttrType
tag);
67
Error
T2EE_use(
ARMBuildAttrs::AttrType
tag);
68
Error
Virtualization_use(
ARMBuildAttrs::AttrType
tag);
69
Error
PAC_extension(
ARMBuildAttrs::AttrType
tag);
70
Error
BTI_extension(
ARMBuildAttrs::AttrType
tag);
71
Error
PACRET_use(
ARMBuildAttrs::AttrType
tag);
72
Error
BTI_use(
ARMBuildAttrs::AttrType
tag);
73
Error
nodefaults(
ARMBuildAttrs::AttrType
tag);
74
Error
also_compatible_with(
ARMBuildAttrs::AttrType
tag);
75
76
public
:
77
ARMAttributeParser
(
ScopedPrinter
*
sw
)
78
:
ELFCompactAttrParser
(
sw
,
ARMBuildAttrs
::getARMAttributeTags(),
79
"aeabi"
) {}
80
ARMAttributeParser
()
81
:
ELFCompactAttrParser
(
ARMBuildAttrs
::getARMAttributeTags(),
"aeabi"
) {}
82
};
83
}
84
85
#endif
ARMBuildAttributes.h
Compiler.h
LLVM_ABI
#define LLVM_ABI
Definition
Compiler.h:213
ELFAttrParserCompact.h
StringRef.h
llvm::ARMAttributeParser::ARMAttributeParser
ARMAttributeParser()
Definition
ARMAttributeParser.h:80
llvm::ARMAttributeParser::ARMAttributeParser
ARMAttributeParser(ScopedPrinter *sw)
Definition
ARMAttributeParser.h:77
llvm::ELFCompactAttrParser::ELFCompactAttrParser
ELFCompactAttrParser(ScopedPrinter *sw, TagNameMap tagNameMap, StringRef vendor)
Definition
ELFAttrParserCompact.h:56
llvm::ELFCompactAttrParser::sw
ScopedPrinter * sw
Definition
ELFAttrParserCompact.h:34
llvm::Error
Lightweight error class with error context and mandatory checking.
Definition
Error.h:159
llvm::ScopedPrinter
Definition
ScopedPrinter.h:121
uint64_t
Error.h
llvm::ARMBuildAttrs
Definition
ARMBuildAttributes.h:25
llvm::ARMBuildAttrs::AttrType
AttrType
Definition
ARMBuildAttributes.h:35
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition
AddressRanges.h:18
Generated on
for LLVM by
1.14.0