[llvm] r360709 - [AArch64] Create a TargetInfo header. NFC
Richard Trieu via llvm-commits
llvm-commits at lists.llvm.org
Tue May 14 14:33:54 PDT 2019
Author: rtrieu
Date: Tue May 14 14:33:53 2019
New Revision: 360709
URL: http://llvm.org/viewvc/llvm-project?rev=360709&view=rev
Log:
[AArch64] Create a TargetInfo header. NFC
Move the declarations of getThe<Name>Target() functions into a new header in
TargetInfo and make users of these functions include this new header.
This fixes a layering problem.
Added:
llvm/trunk/lib/Target/AArch64/TargetInfo/AArch64TargetInfo.h
- copied, changed from r360695, llvm/trunk/lib/Target/AArch64/TargetInfo/AArch64TargetInfo.cpp
Modified:
llvm/trunk/lib/Target/AArch64/AArch64AsmPrinter.cpp
llvm/trunk/lib/Target/AArch64/AArch64TargetMachine.cpp
llvm/trunk/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
llvm/trunk/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp
llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp
llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.h
llvm/trunk/lib/Target/AArch64/TargetInfo/AArch64TargetInfo.cpp
Modified: llvm/trunk/lib/Target/AArch64/AArch64AsmPrinter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64AsmPrinter.cpp?rev=360709&r1=360708&r2=360709&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AArch64/AArch64AsmPrinter.cpp (original)
+++ llvm/trunk/lib/Target/AArch64/AArch64AsmPrinter.cpp Tue May 14 14:33:53 2019
@@ -22,6 +22,7 @@
#include "MCTargetDesc/AArch64MCExpr.h"
#include "MCTargetDesc/AArch64MCTargetDesc.h"
#include "MCTargetDesc/AArch64TargetStreamer.h"
+#include "TargetInfo/AArch64TargetInfo.h"
#include "Utils/AArch64BaseInfo.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/SmallVector.h"
Modified: llvm/trunk/lib/Target/AArch64/AArch64TargetMachine.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64TargetMachine.cpp?rev=360709&r1=360708&r2=360709&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AArch64/AArch64TargetMachine.cpp (original)
+++ llvm/trunk/lib/Target/AArch64/AArch64TargetMachine.cpp Tue May 14 14:33:53 2019
@@ -16,6 +16,7 @@
#include "AArch64TargetObjectFile.h"
#include "AArch64TargetTransformInfo.h"
#include "MCTargetDesc/AArch64MCTargetDesc.h"
+#include "TargetInfo/AArch64TargetInfo.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/Triple.h"
#include "llvm/Analysis/TargetTransformInfo.h"
Modified: llvm/trunk/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp?rev=360709&r1=360708&r2=360709&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp (original)
+++ llvm/trunk/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp Tue May 14 14:33:53 2019
@@ -10,6 +10,7 @@
#include "MCTargetDesc/AArch64MCExpr.h"
#include "MCTargetDesc/AArch64MCTargetDesc.h"
#include "MCTargetDesc/AArch64TargetStreamer.h"
+#include "TargetInfo/AArch64TargetInfo.h"
#include "AArch64InstrInfo.h"
#include "Utils/AArch64BaseInfo.h"
#include "llvm/ADT/APFloat.h"
Modified: llvm/trunk/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp?rev=360709&r1=360708&r2=360709&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp (original)
+++ llvm/trunk/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp Tue May 14 14:33:53 2019
@@ -13,6 +13,7 @@
#include "AArch64ExternalSymbolizer.h"
#include "MCTargetDesc/AArch64AddressingModes.h"
#include "MCTargetDesc/AArch64MCTargetDesc.h"
+#include "TargetInfo/AArch64TargetInfo.h"
#include "Utils/AArch64BaseInfo.h"
#include "llvm-c/Disassembler.h"
#include "llvm/MC/MCDisassembler/MCRelocationInfo.h"
Modified: llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp?rev=360709&r1=360708&r2=360709&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp (original)
+++ llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp Tue May 14 14:33:53 2019
@@ -16,6 +16,7 @@
#include "AArch64WinCOFFStreamer.h"
#include "MCTargetDesc/AArch64AddressingModes.h"
#include "MCTargetDesc/AArch64InstPrinter.h"
+#include "TargetInfo/AArch64TargetInfo.h"
#include "llvm/MC/MCAsmBackend.h"
#include "llvm/MC/MCCodeEmitter.h"
#include "llvm/MC/MCInstrAnalysis.h"
Modified: llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.h?rev=360709&r1=360708&r2=360709&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.h (original)
+++ llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.h Tue May 14 14:33:53 2019
@@ -36,12 +36,6 @@ class Triple;
class raw_ostream;
class raw_pwrite_stream;
-Target &getTheAArch64leTarget();
-Target &getTheAArch64beTarget();
-Target &getTheAArch64_32Target();
-Target &getTheARM64Target();
-Target &getTheARM64_32Target();
-
MCCodeEmitter *createAArch64MCCodeEmitter(const MCInstrInfo &MCII,
const MCRegisterInfo &MRI,
MCContext &Ctx);
Modified: llvm/trunk/lib/Target/AArch64/TargetInfo/AArch64TargetInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/TargetInfo/AArch64TargetInfo.cpp?rev=360709&r1=360708&r2=360709&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AArch64/TargetInfo/AArch64TargetInfo.cpp (original)
+++ llvm/trunk/lib/Target/AArch64/TargetInfo/AArch64TargetInfo.cpp Tue May 14 14:33:53 2019
@@ -6,31 +6,30 @@
//
//===----------------------------------------------------------------------===//
-#include "llvm/ADT/Triple.h"
+#include "TargetInfo/AArch64TargetInfo.h"
#include "llvm/Support/TargetRegistry.h"
+
using namespace llvm;
-namespace llvm {
-Target &getTheAArch64leTarget() {
+Target &llvm::getTheAArch64leTarget() {
static Target TheAArch64leTarget;
return TheAArch64leTarget;
}
-Target &getTheAArch64beTarget() {
+Target &llvm::getTheAArch64beTarget() {
static Target TheAArch64beTarget;
return TheAArch64beTarget;
}
-Target &getTheAArch64_32Target() {
+Target &llvm::getTheAArch64_32Target() {
static Target TheAArch64leTarget;
return TheAArch64leTarget;
}
-Target &getTheARM64Target() {
+Target &llvm::getTheARM64Target() {
static Target TheARM64Target;
return TheARM64Target;
}
-Target &getTheARM64_32Target() {
+Target &llvm::getTheARM64_32Target() {
static Target TheARM64_32Target;
return TheARM64_32Target;
}
-} // namespace llvm
extern "C" void LLVMInitializeAArch64TargetInfo() {
// Now register the "arm64" name for use with "-march". We don't want it to
Copied: llvm/trunk/lib/Target/AArch64/TargetInfo/AArch64TargetInfo.h (from r360695, llvm/trunk/lib/Target/AArch64/TargetInfo/AArch64TargetInfo.cpp)
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/TargetInfo/AArch64TargetInfo.h?p2=llvm/trunk/lib/Target/AArch64/TargetInfo/AArch64TargetInfo.h&p1=llvm/trunk/lib/Target/AArch64/TargetInfo/AArch64TargetInfo.cpp&r1=360695&r2=360709&rev=360709&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AArch64/TargetInfo/AArch64TargetInfo.cpp (original)
+++ llvm/trunk/lib/Target/AArch64/TargetInfo/AArch64TargetInfo.h Tue May 14 14:33:53 2019
@@ -1,4 +1,4 @@
-//===-- AArch64TargetInfo.cpp - AArch64 Target Implementation -----------------===//
+//===-- AArch64TargetInfo.h - AArch64 Target Implementation -----*- C++ -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
@@ -6,46 +6,19 @@
//
//===----------------------------------------------------------------------===//
-#include "llvm/ADT/Triple.h"
-#include "llvm/Support/TargetRegistry.h"
-using namespace llvm;
+#ifndef LLVM_LIB_TARGET_AARCH64_TARGETINFO_AARCH64TARGETINFO_H
+#define LLVM_LIB_TARGET_AARCH64_TARGETINFO_AARCH64TARGETINFO_H
+
namespace llvm {
-Target &getTheAArch64leTarget() {
- static Target TheAArch64leTarget;
- return TheAArch64leTarget;
-}
-Target &getTheAArch64beTarget() {
- static Target TheAArch64beTarget;
- return TheAArch64beTarget;
-}
-Target &getTheAArch64_32Target() {
- static Target TheAArch64leTarget;
- return TheAArch64leTarget;
-}
-Target &getTheARM64Target() {
- static Target TheARM64Target;
- return TheARM64Target;
-}
-Target &getTheARM64_32Target() {
- static Target TheARM64_32Target;
- return TheARM64_32Target;
-}
+
+class Target;
+
+Target &getTheAArch64leTarget();
+Target &getTheAArch64beTarget();
+Target &getTheAArch64_32Target();
+Target &getTheARM64Target();
+Target &getTheARM64_32Target();
+
} // namespace llvm
-extern "C" void LLVMInitializeAArch64TargetInfo() {
- // Now register the "arm64" name for use with "-march". We don't want it to
- // take possession of the Triple::aarch64 tags though.
- TargetRegistry::RegisterTarget(getTheARM64Target(), "arm64",
- "ARM64 (little endian)", "AArch64",
- [](Triple::ArchType) { return false; }, true);
- TargetRegistry::RegisterTarget(getTheARM64_32Target(), "arm64_32",
- "ARM64 (little endian ILP32)", "AArch64",
- [](Triple::ArchType) { return false; }, true);
-
- RegisterTarget<Triple::aarch64, /*HasJIT=*/true> Z(
- getTheAArch64leTarget(), "aarch64", "AArch64 (little endian)", "AArch64");
- RegisterTarget<Triple::aarch64_be, /*HasJIT=*/true> W(
- getTheAArch64beTarget(), "aarch64_be", "AArch64 (big endian)", "AArch64");
- RegisterTarget<Triple::aarch64_32, /*HasJIT=*/true> X(
- getTheAArch64_32Target(), "aarch64_32", "AArch64 (little endian ILP32)", "AArch64");
-}
+#endif // LLVM_LIB_TARGET_AARCH64_TARGETINFO_AARCH64TARGETINFO_H
More information about the llvm-commits
mailing list