LLVM 23.0.0git
AArch64BuildAttributes.h
Go to the documentation of this file.
1//===-- AArch64BuildAttributes.h - AARch64 Build Attributes -----*- 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// This file contains enumerations and support routines for AArch64 build
10// attributes as defined in Build Attributes for the AArch64 document.
11//
12// Build Attributes for the ArmĀ® 64-bit Architecture (AArch64) 2024Q1
13//
14// https://github.com/ARM-software/abi-aa/pull/230
15//
16//===----------------------------------------------------------------------===//
17
18#ifndef LLVM_SUPPORT_AARCH64BUILDATTRIBUTES_H
19#define LLVM_SUPPORT_AARCH64BUILDATTRIBUTES_H
20
21#include "llvm/ADT/StringRef.h"
22
23namespace llvm {
24
26
27/// AArch64 build attributes vendors IDs (a.k.a subsection name)
28enum VendorID : unsigned {
31 VENDOR_UNKNOWN = 404 // Treated as a private subsection name
32};
33LLVM_ABI StringRef getVendorName(unsigned const Vendor);
35
36enum SubsectionOptional : unsigned {
40};
41LLVM_ABI StringRef getOptionalStr(unsigned Optional);
44
45enum SubsectionType : unsigned { ULEB128 = 0, NTBS = 1, TYPE_NOT_FOUND = 404 };
49
55LLVM_ABI StringRef getPauthABITagsStr(unsigned PauthABITag);
57
64LLVM_ABI StringRef getFeatureAndBitsTagsStr(unsigned FeatureAndBitsTag);
66getFeatureAndBitsTagsID(StringRef FeatureAndBitsTag);
67
68enum FeatureAndBitsFlag : unsigned {
72};
73} // namespace AArch64BuildAttributes
74} // namespace llvm
75
76#endif // LLVM_SUPPORT_AARCH64BUILDATTRIBUTES_H
#define LLVM_ABI
Definition Compiler.h:213
Represent a constant reference to a string, i.e.
Definition StringRef.h:56
The instances of the Type class are immutable: once they are created, they are never changed.
Definition Type.h:46
LLVM_ABI SubsectionType getTypeID(StringRef Type)
LLVM_ABI StringRef getPauthABITagsStr(unsigned PauthABITag)
LLVM_ABI StringRef getVendorName(unsigned const Vendor)
LLVM_ABI StringRef getOptionalStr(unsigned Optional)
VendorID
AArch64 build attributes vendors IDs (a.k.a subsection name)
LLVM_ABI StringRef getSubsectionTypeUnknownError()
LLVM_ABI SubsectionOptional getOptionalID(StringRef Optional)
LLVM_ABI StringRef getSubsectionOptionalUnknownError()
LLVM_ABI FeatureAndBitsTags getFeatureAndBitsTagsID(StringRef FeatureAndBitsTag)
LLVM_ABI VendorID getVendorID(StringRef const Vendor)
LLVM_ABI PauthABITags getPauthABITagsID(StringRef PauthABITag)
LLVM_ABI StringRef getTypeStr(unsigned Type)
LLVM_ABI StringRef getFeatureAndBitsTagsStr(unsigned FeatureAndBitsTag)
This is an optimization pass for GlobalISel generic memory operations.