Coverage Report

Created: 2019-07-24 05:18

/Users/buildslave/jenkins/workspace/clang-stage2-coverage-R/llvm/lib/Target/AArch64/TargetInfo/AArch64TargetInfo.cpp
Line
Count
Source
1
//===-- AArch64TargetInfo.cpp - AArch64 Target Implementation -----------------===//
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
#include "TargetInfo/AArch64TargetInfo.h"
10
#include "llvm/Support/TargetRegistry.h"
11
12
using namespace llvm;
13
688k
Target &llvm::getTheAArch64leTarget() {
14
688k
  static Target TheAArch64leTarget;
15
688k
  return TheAArch64leTarget;
16
688k
}
17
688k
Target &llvm::getTheAArch64beTarget() {
18
688k
  static Target TheAArch64beTarget;
19
688k
  return TheAArch64beTarget;
20
688k
}
21
470k
Target &llvm::getTheAArch64_32Target() {
22
470k
  static Target TheAArch64leTarget;
23
470k
  return TheAArch64leTarget;
24
470k
}
25
688k
Target &llvm::getTheARM64Target() {
26
688k
  static Target TheARM64Target;
27
688k
  return TheARM64Target;
28
688k
}
29
470k
Target &llvm::getTheARM64_32Target() {
30
470k
  static Target TheARM64_32Target;
31
470k
  return TheARM64_32Target;
32
470k
}
33
34
157k
extern "C" void LLVMInitializeAArch64TargetInfo() {
35
157k
  // Now register the "arm64" name for use with "-march". We don't want it to
36
157k
  // take possession of the Triple::aarch64 tags though.
37
157k
  TargetRegistry::RegisterTarget(getTheARM64Target(), "arm64",
38
157k
                                 "ARM64 (little endian)", "AArch64",
39
157k
                                 [](Triple::ArchType) 
{ return false; }61.3k
, true);
40
157k
  TargetRegistry::RegisterTarget(getTheARM64_32Target(), "arm64_32",
41
157k
                                 "ARM64 (little endian ILP32)", "AArch64",
42
157k
                                 [](Triple::ArchType) 
{ return false; }61.3k
, true);
43
157k
44
157k
  RegisterTarget<Triple::aarch64, /*HasJIT=*/true> Z(
45
157k
      getTheAArch64leTarget(), "aarch64", "AArch64 (little endian)", "AArch64");
46
157k
  RegisterTarget<Triple::aarch64_be, /*HasJIT=*/true> W(
47
157k
      getTheAArch64beTarget(), "aarch64_be", "AArch64 (big endian)", "AArch64");
48
157k
  RegisterTarget<Triple::aarch64_32, /*HasJIT=*/true> X(
49
157k
      getTheAArch64_32Target(), "aarch64_32", "AArch64 (little endian ILP32)", "AArch64");
50
157k
}