LLVM
8.0.1
lib
Target
AArch64
TargetInfo
AArch64TargetInfo.cpp
Go to the documentation of this file.
1
//===-- AArch64TargetInfo.cpp - AArch64 Target Implementation -----------------===//
2
//
3
// The LLVM Compiler Infrastructure
4
//
5
// This file is distributed under the University of Illinois Open Source
6
// License. See LICENSE.TXT for details.
7
//
8
//===----------------------------------------------------------------------===//
9
10
#include "
llvm/ADT/Triple.h
"
11
#include "
llvm/Support/TargetRegistry.h
"
12
using namespace
llvm
;
13
namespace
llvm
{
14
Target
&
getTheAArch64leTarget
() {
15
static
Target
TheAArch64leTarget;
16
return
TheAArch64leTarget;
17
}
18
Target
&
getTheAArch64beTarget
() {
19
static
Target
TheAArch64beTarget;
20
return
TheAArch64beTarget;
21
}
22
Target
&
getTheARM64Target
() {
23
static
Target
TheARM64Target;
24
return
TheARM64Target;
25
}
26
}
// namespace llvm
27
28
extern
"C"
void
LLVMInitializeAArch64TargetInfo
() {
29
// Now register the "arm64" name for use with "-march". We don't want it to
30
// take possession of the Triple::aarch64 tag though.
31
TargetRegistry::RegisterTarget
(
getTheARM64Target
(),
"arm64"
,
32
"ARM64 (little endian)"
,
"AArch64"
,
33
[](
Triple::ArchType
) {
return
false
; },
true
);
34
35
RegisterTarget
<
Triple::aarch64
,
/*HasJIT=*/
true
> Z(
36
getTheAArch64leTarget
(),
"aarch64"
,
"AArch64 (little endian)"
,
"AArch64"
);
37
RegisterTarget
<
Triple::aarch64_be
,
/*HasJIT=*/
true
>
W
(
38
getTheAArch64beTarget
(),
"aarch64_be"
,
"AArch64 (big endian)"
,
"AArch64"
);
39
}
llvm::getTheAArch64beTarget
Target & getTheAArch64beTarget()
Definition:
AArch64TargetInfo.cpp:18
llvm
This class represents lattice values for constants.
Definition:
AllocatorList.h:24
llvm::getTheAArch64leTarget
Target & getTheAArch64leTarget()
Definition:
AArch64TargetInfo.cpp:14
Triple.h
llvm::getTheARM64Target
Target & getTheARM64Target()
Definition:
AArch64TargetInfo.cpp:22
RegisterTarget
Definition:
TargetRegistry.h:917
llvm::TargetRegistry::RegisterTarget
static void RegisterTarget(Target &T, const char *Name, const char *ShortDesc, const char *BackendName, Target::ArchMatchFnTy ArchMatchFn, bool HasJIT=false)
RegisterTarget - Register the given target.
Definition:
TargetRegistry.cpp:89
llvm::Triple::aarch64_be
Definition:
Triple.h:52
LLVMInitializeAArch64TargetInfo
void LLVMInitializeAArch64TargetInfo()
Definition:
AArch64TargetInfo.cpp:28
llvm::Target
Target - Wrapper for Target specific information.
Definition:
TargetRegistry.h:120
llvm::RISCVFenceField::W
Definition:
RISCVBaseInfo.h:64
llvm::Triple::aarch64
Definition:
Triple.h:51
TargetRegistry.h
llvm::Triple::ArchType
ArchType
Definition:
Triple.h:46
Generated on Sun Dec 20 2020 13:56:11 for LLVM by
1.8.13