summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQuentin Colombet <qcolombet@apple.com>2016-04-06 17:38:12 +0000
committerQuentin Colombet <qcolombet@apple.com>2016-04-06 17:38:12 +0000
commit4f03c0b80668483a0c045a2b31866bca4762fe0c (patch)
tree82a19cac56384f1645e171194f8ca368c752ff71
parent92f4ef10178b8824be6de200a3160c1af532aa1f (diff)
downloadbcm5719-llvm-4f03c0b80668483a0c045a2b31866bca4762fe0c.tar.gz
bcm5719-llvm-4f03c0b80668483a0c045a2b31866bca4762fe0c.zip
[AArch64] Change the CMake to avoid to build GlobalISel related APIs
when GISel is not built. The positive side effects are: - We do not have to define dummy implementation - We do not have to do weird gymnastic to avoid like issues (like missing constructor or vtable for the base classes) llvm-svn: 265570
-rw-r--r--llvm/lib/Target/AArch64/AArch64RegisterBankInfo.cpp12
-rw-r--r--llvm/lib/Target/AArch64/CMakeLists.txt18
2 files changed, 12 insertions, 18 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64RegisterBankInfo.cpp b/llvm/lib/Target/AArch64/AArch64RegisterBankInfo.cpp
index 9f8d4d5184d..83dccdad4fb 100644
--- a/llvm/lib/Target/AArch64/AArch64RegisterBankInfo.cpp
+++ b/llvm/lib/Target/AArch64/AArch64RegisterBankInfo.cpp
@@ -21,16 +21,9 @@
using namespace llvm;
#ifndef LLVM_BUILD_GLOBAL_ISEL
-AArch64RegisterBankInfo::AArch64RegisterBankInfo(const TargetRegisterInfo &TRI)
- : RegisterBankInfo() {
- llvm_unreachable("This API shouldn't be useful outside of GlobalISel");
-}
+#error You shouldn't build this
+#endif
-unsigned AArch64RegisterBankInfo::copyCost(const RegisterBank &A,
- const RegisterBank &B) const {
- return 0;
-}
-#else
AArch64RegisterBankInfo::AArch64RegisterBankInfo(const TargetRegisterInfo &TRI)
: RegisterBankInfo(AArch64::NumRegisterBanks) {
// Initialize the GPR bank.
@@ -70,4 +63,3 @@ unsigned AArch64RegisterBankInfo::copyCost(const RegisterBank &A,
// * build_sequence cost.
return 0;
}
-#endif
diff --git a/llvm/lib/Target/AArch64/CMakeLists.txt b/llvm/lib/Target/AArch64/CMakeLists.txt
index 37e2e6418a6..0f2c55cf8ab 100644
--- a/llvm/lib/Target/AArch64/CMakeLists.txt
+++ b/llvm/lib/Target/AArch64/CMakeLists.txt
@@ -14,18 +14,20 @@ tablegen(LLVM AArch64GenSubtargetInfo.inc -gen-subtarget)
tablegen(LLVM AArch64GenDisassemblerTables.inc -gen-disassembler)
add_public_tablegen_target(AArch64CommonTableGen)
+# List of all GlobalISel files.
set(GLOBAL_ISEL_FILES
- AArch64RegisterBankInfo.cpp
- )
+ AArch64RegisterBankInfo.cpp
+ )
-if(NOT LLVM_BUILD_GLOBAL_ISEL)
- set(LLVM_OPTIONAL_SOURCES ${GLOBAL_ISEL_FILES})
- set(GLOBAL_ISEL_FILES)
+# Add GlobalISel files to the dependencies if the user wants to build it.
+if(LLVM_BUILD_GLOBAL_ISEL)
+ set(GLOBAL_ISEL_BUILD_FILES ${GLOBAL_ISEL_FILES})
+else()
+ set(GLOBAL_ISEL_BUILD_FILES"")
+ set(LLVM_OPTIONAL_SOURCES LLVMGlobalISel ${GLOBAL_ISEL_FILES})
endif()
-set(LLVM_OPTIONAL_SOURCES AArch64RegisterBankInfo.cpp)
-
add_llvm_target(AArch64CodeGen
AArch64A57FPLoadBalancing.cpp
AArch64AddressTypePromotion.cpp
@@ -57,7 +59,7 @@ add_llvm_target(AArch64CodeGen
AArch64TargetMachine.cpp
AArch64TargetObjectFile.cpp
AArch64TargetTransformInfo.cpp
- ${GLOBAL_ISEL_FILES}
+ ${GLOBAL_ISEL_BUILD_FILES}
)
add_dependencies(LLVMAArch64CodeGen intrinsics_gen)
OpenPOWER on IntegriCloud