]> granicus.if.org Git - llvm/commitdiff
[GlobalISel] Make GlobalISel a non-optional library.
authorQuentin Colombet <qcolombet@apple.com>
Thu, 3 Aug 2017 21:52:25 +0000 (21:52 +0000)
committerQuentin Colombet <qcolombet@apple.com>
Thu, 3 Aug 2017 21:52:25 +0000 (21:52 +0000)
With this change, the GlobalISel library gets always built. In
particular, this is not possible to opt GlobalISel out of the build
using the LLVM_BUILD_GLOBAL_ISEL variable any more.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309990 91177308-0d34-0410-b5e6-96231b3b80d8

35 files changed:
CMakeLists.txt
lib/CodeGen/GlobalISel/CMakeLists.txt
lib/CodeGen/GlobalISel/GlobalISel.cpp
lib/Target/AArch64/AArch64CallLowering.cpp
lib/Target/AArch64/AArch64GenRegisterBankInfo.def
lib/Target/AArch64/AArch64InstructionSelector.cpp
lib/Target/AArch64/AArch64LegalizerInfo.cpp
lib/Target/AArch64/AArch64RegisterBankInfo.cpp
lib/Target/AArch64/AArch64Subtarget.cpp
lib/Target/AArch64/AArch64TargetMachine.cpp
lib/Target/AArch64/CMakeLists.txt
lib/Target/AMDGPU/AMDGPUCallLowering.cpp
lib/Target/AMDGPU/AMDGPUGenRegisterBankInfo.def
lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
lib/Target/AMDGPU/AMDGPUSubtarget.cpp
lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
lib/Target/AMDGPU/CMakeLists.txt
lib/Target/ARM/ARMCallLowering.cpp
lib/Target/ARM/ARMInstructionSelector.cpp
lib/Target/ARM/ARMLegalizerInfo.cpp
lib/Target/ARM/ARMRegisterBankInfo.cpp
lib/Target/ARM/ARMSubtarget.cpp
lib/Target/ARM/ARMTargetMachine.cpp
lib/Target/ARM/CMakeLists.txt
lib/Target/X86/CMakeLists.txt
lib/Target/X86/X86CallLowering.cpp
lib/Target/X86/X86GenRegisterBankInfo.def
lib/Target/X86/X86InstructionSelector.cpp
lib/Target/X86/X86LegalizerInfo.cpp
lib/Target/X86/X86RegisterBankInfo.cpp
lib/Target/X86/X86Subtarget.cpp
lib/Target/X86/X86TargetMachine.cpp
tools/llvm-config/CMakeLists.txt
unittests/CodeGen/GlobalISel/CMakeLists.txt

index c2ce41761b48c75002f1963efd6f32f2b6d39fec..fe5343bcadd92a4f3492c0621f081b81ab08f80f 100644 (file)
@@ -176,11 +176,6 @@ if(LLVM_DEPENDENCY_DEBUGGING)
   endif()
 endif()
 
-option(LLVM_BUILD_GLOBAL_ISEL "Experimental: Build GlobalISel" ON)
-if(LLVM_BUILD_GLOBAL_ISEL)
-  add_definitions(-DLLVM_BUILD_GLOBAL_ISEL)
-endif()
-
 option(LLVM_ENABLE_DAGISEL_COV "Debug: Prints tablegen patterns that were used for selecting" OFF)
 
 # Add path for custom modules
index eba7ea8132e3bdcf148e13a1f4bdcc367becdcd3..afe42b8cb84e1c36ee6b6ddce497ec2d68efde72 100644 (file)
@@ -1,34 +1,21 @@
-# List of all GlobalISel files.
-set(GLOBAL_ISEL_FILES
-      CallLowering.cpp
-      IRTranslator.cpp
-      InstructionSelect.cpp
-      InstructionSelector.cpp
-      MachineIRBuilder.cpp
-      LegalizerHelper.cpp
-      Legalizer.cpp
-      LegalizerInfo.cpp
-      Localizer.cpp
-      RegBankSelect.cpp
-      RegisterBank.cpp
-      RegisterBankInfo.cpp
-      Utils.cpp
-      )
-
-# 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()
-
 # In LLVMBuild.txt files, it is not possible to mark a dependency to a
 # library as optional. So instead, generate an empty library if we did
 # not ask for it.
 add_llvm_library(LLVMGlobalISel
-        ${GLOBAL_ISEL_BUILD_FILES}
+        CallLowering.cpp
         GlobalISel.cpp
+        IRTranslator.cpp
+        InstructionSelect.cpp
+        InstructionSelector.cpp
+        LegalizerHelper.cpp
+        Legalizer.cpp
+        LegalizerInfo.cpp
+        Localizer.cpp
+        MachineIRBuilder.cpp
+        RegBankSelect.cpp
+        RegisterBank.cpp
+        RegisterBankInfo.cpp
+        Utils.cpp
 
         DEPENDS
         intrinsics_gen
index 29d1209bb02a5b572f8a5c3e18f09044f618d290..00c6a9d631586ea727599c6c4affcf1184d57b1a 100644 (file)
 
 using namespace llvm;
 
-#ifndef LLVM_BUILD_GLOBAL_ISEL
-
-void llvm::initializeGlobalISel(PassRegistry &Registry) {
-}
-
-#else
-
 void llvm::initializeGlobalISel(PassRegistry &Registry) {
   initializeIRTranslatorPass(Registry);
   initializeLegalizerPass(Registry);
@@ -30,4 +23,3 @@ void llvm::initializeGlobalISel(PassRegistry &Registry) {
   initializeRegBankSelectPass(Registry);
   initializeInstructionSelectPass(Registry);
 }
-#endif // LLVM_BUILD_GLOBAL_ISEL
index 29f6d571d6bd8494aadcb74b58f2b1afc10e3a20..fc09763ed38795f7c770f975d7182071f8085a3a 100644 (file)
 
 using namespace llvm;
 
-#ifndef LLVM_BUILD_GLOBAL_ISEL
-#error "This shouldn't be built without GISel"
-#endif
-
 AArch64CallLowering::AArch64CallLowering(const AArch64TargetLowering &TLI)
   : CallLowering(&TLI) {}
 
index 8b1c9740d2adba748fc6bf4fcdb4b30d43438916..7d2cfbeff38af2ec1429bdb1ee01ea9a22682523 100644 (file)
 /// \todo This should be generated by TableGen.
 //===----------------------------------------------------------------------===//
 
-#ifndef LLVM_BUILD_GLOBAL_ISEL
-#error "You shouldn't build this"
-#endif
-
 namespace llvm {
 RegisterBankInfo::PartialMapping AArch64GenRegisterBankInfo::PartMappings[]{
     /* StartIdx, Length, RegBank */
index fb4d160718a1d8a892b94746783a10edc52a6bae..d684578d29170eb20f1c2911bd5b0959b222890b 100644 (file)
 
 using namespace llvm;
 
-#ifndef LLVM_BUILD_GLOBAL_ISEL
-#error "You shouldn't build this"
-#endif
-
 namespace {
 
 #define GET_GLOBALISEL_PREDICATE_BITSET
index 799240d9b3b7fb112250b8c78b4db289ba52828c..34217d3447fa35be5b50fbfb7233224e544e3f41 100644 (file)
 
 using namespace llvm;
 
-#ifndef LLVM_BUILD_GLOBAL_ISEL
-#error "You shouldn't build this"
-#endif
-
 AArch64LegalizerInfo::AArch64LegalizerInfo() {
   using namespace TargetOpcode;
   const LLT p0 = LLT::pointer(0, 64);
index 69f3ff6cc8cb28373948fb67e3f16f53fc2dde8f..2862644ceacead25c053c23738662ff39010a973 100644 (file)
 
 using namespace llvm;
 
-#ifndef LLVM_BUILD_GLOBAL_ISEL
-#error "You shouldn't build this"
-#endif
-
 AArch64RegisterBankInfo::AArch64RegisterBankInfo(const TargetRegisterInfo &TRI)
     : AArch64GenRegisterBankInfo() {
   static bool AlreadyInit = false;
index 4880ff6f9e7bcada35b494759a96d8c4dc9dc2ac..4fb4991da696009a7001d8f54c423ad3230fb267 100644 (file)
@@ -18,7 +18,6 @@
 #include "AArch64PBQPRegAlloc.h"
 #include "AArch64TargetMachine.h"
 
-#ifdef LLVM_BUILD_GLOBAL_ISEL
 #include "AArch64CallLowering.h"
 #include "AArch64LegalizerInfo.h"
 #include "AArch64RegisterBankInfo.h"
@@ -27,7 +26,6 @@
 #include "llvm/CodeGen/GlobalISel/InstructionSelect.h"
 #include "llvm/CodeGen/GlobalISel/Legalizer.h"
 #include "llvm/CodeGen/GlobalISel/RegBankSelect.h"
-#endif
 #include "llvm/CodeGen/MachineScheduler.h"
 #include "llvm/IR/GlobalValue.h"
 #include "llvm/Support/TargetRegistry.h"
@@ -143,7 +141,6 @@ void AArch64Subtarget::initializeProperties() {
   }
 }
 
-#ifdef LLVM_BUILD_GLOBAL_ISEL
 namespace {
 
 struct AArch64GISelActualAccessor : public GISelAccessor {
@@ -170,7 +167,6 @@ struct AArch64GISelActualAccessor : public GISelAccessor {
 };
 
 } // end anonymous namespace
-#endif
 
 AArch64Subtarget::AArch64Subtarget(const Triple &TT, const std::string &CPU,
                                    const std::string &FS,
@@ -180,9 +176,6 @@ AArch64Subtarget::AArch64Subtarget(const Triple &TT, const std::string &CPU,
       IsLittle(LittleEndian), TargetTriple(TT), FrameLowering(),
       InstrInfo(initializeSubtargetDependencies(FS, CPU)), TSInfo(),
       TLInfo(TM, *this), GISel() {
-#ifndef LLVM_BUILD_GLOBAL_ISEL
-  GISelAccessor *AArch64GISel = new GISelAccessor();
-#else
   AArch64GISelActualAccessor *AArch64GISel = new AArch64GISelActualAccessor();
   AArch64GISel->CallLoweringInfo.reset(
       new AArch64CallLowering(*getTargetLowering()));
@@ -197,7 +190,6 @@ AArch64Subtarget::AArch64Subtarget(const Triple &TT, const std::string &CPU,
       *static_cast<const AArch64TargetMachine *>(&TM), *this, *RBI));
 
   AArch64GISel->RegBankInfo.reset(RBI);
-#endif
   setGISelAccessor(*AArch64GISel);
 }
 
index 14263d47b1ad7330a9efad5bab3ae4b71c24b909..e65b382e85b2fdbc4c1703970cfcebb92abe8ba3 100644 (file)
@@ -330,13 +330,11 @@ public:
   void addIRPasses()  override;
   bool addPreISel() override;
   bool addInstSelector() override;
-#ifdef LLVM_BUILD_GLOBAL_ISEL
   bool addIRTranslator() override;
   bool addLegalizeMachineIR() override;
   bool addRegBankSelect() override;
   void addPreGlobalInstructionSelect() override;
   bool addGlobalInstructionSelect() override;
-#endif
   bool addILPOpts() override;
   void addPreRegAlloc() override;
   void addPostRegAlloc() override;
@@ -432,7 +430,6 @@ bool AArch64PassConfig::addInstSelector() {
   return false;
 }
 
-#ifdef LLVM_BUILD_GLOBAL_ISEL
 bool AArch64PassConfig::addIRTranslator() {
   addPass(new IRTranslator());
   return false;
@@ -458,7 +455,6 @@ bool AArch64PassConfig::addGlobalInstructionSelect() {
   addPass(new InstructionSelect());
   return false;
 }
-#endif
 
 bool AArch64PassConfig::isGlobalISelEnabled() const {
   return TM->getOptLevel() <= EnableGlobalISelAtO;
index f7e0a5c7bed393fa5af4807de2e09b648a0f7fcb..eb1079be7300e8c6d7d7ce9b7069ee6978e7b887 100644 (file)
@@ -13,34 +13,16 @@ tablegen(LLVM AArch64GenCallingConv.inc -gen-callingconv)
 tablegen(LLVM AArch64GenSubtargetInfo.inc -gen-subtarget)
 tablegen(LLVM AArch64GenDisassemblerTables.inc -gen-disassembler)
 tablegen(LLVM AArch64GenSystemOperands.inc -gen-searchable-tables)
-if(LLVM_BUILD_GLOBAL_ISEL)
-  tablegen(LLVM AArch64GenRegisterBank.inc -gen-register-bank)
-  tablegen(LLVM AArch64GenGlobalISel.inc -gen-global-isel)
-endif()
+tablegen(LLVM AArch64GenRegisterBank.inc -gen-register-bank)
+tablegen(LLVM AArch64GenGlobalISel.inc -gen-global-isel)
 
 add_public_tablegen_target(AArch64CommonTableGen)
 
-# List of all GlobalISel files.
-set(GLOBAL_ISEL_FILES
-      AArch64CallLowering.cpp
-      AArch64InstructionSelector.cpp
-      AArch64LegalizerInfo.cpp
-      AArch64RegisterBankInfo.cpp
-      )
-
-# 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()
-
-
 add_llvm_target(AArch64CodeGen
   AArch64A57FPLoadBalancing.cpp
   AArch64AdvSIMDScalarPass.cpp
   AArch64AsmPrinter.cpp
+  AArch64CallLowering.cpp
   AArch64CleanupLocalDynamicTLSPass.cpp
   AArch64CollectLOH.cpp
   AArch64CondBrTuning.cpp
@@ -56,11 +38,14 @@ add_llvm_target(AArch64CodeGen
   AArch64ISelDAGToDAG.cpp
   AArch64ISelLowering.cpp
   AArch64InstrInfo.cpp
+  AArch64InstructionSelector.cpp
+  AArch64LegalizerInfo.cpp
   AArch64LoadStoreOptimizer.cpp
   AArch64MacroFusion.cpp
   AArch64MCInstLower.cpp
   AArch64PromoteConstant.cpp
   AArch64PBQPRegAlloc.cpp
+  AArch64RegisterBankInfo.cpp
   AArch64RegisterInfo.cpp
   AArch64SelectionDAGInfo.cpp
   AArch64StorePairSuppress.cpp
@@ -69,7 +54,6 @@ add_llvm_target(AArch64CodeGen
   AArch64TargetObjectFile.cpp
   AArch64TargetTransformInfo.cpp
   AArch64VectorByElementOpt.cpp
-  ${GLOBAL_ISEL_BUILD_FILES}
 
   DEPENDS
   intrinsics_gen
index 31ae706d91d50f64698357053b7b4d603452324a..21aa0e592569ee9686aeb03bd86e151f05702814 100644 (file)
 
 using namespace llvm;
 
-#ifndef LLVM_BUILD_GLOBAL_ISEL
-#error "This shouldn't be built without GISel"
-#endif
-
 AMDGPUCallLowering::AMDGPUCallLowering(const AMDGPUTargetLowering &TLI)
   : CallLowering(&TLI), AMDGPUASI(TLI.getAMDGPUAS()) {
 }
index 5cb9036f4823bedc26973344ed32859fd26094e1..bf7deb500d1a42ed5625434b6b05abb46651883f 100644 (file)
 /// \todo This should be generated by TableGen.
 //===----------------------------------------------------------------------===//
 
-#ifndef LLVM_BUILD_GLOBAL_ISEL
-#error "You shouldn't build this"
-#endif
-
 namespace llvm {
 namespace AMDGPU {
 
index 7d7848cf9164b93132f9fdc0f297210bf9d7ee91..9dc03a541586121c45f9d0d2e45ee65e667dffef 100644 (file)
 
 using namespace llvm;
 
-#ifndef LLVM_BUILD_GLOBAL_ISEL
-#error "You shouldn't build this"
-#endif
-
 AMDGPULegalizerInfo::AMDGPULegalizerInfo() {
   using namespace TargetOpcode;
 
index 623b2c88ab8f74898db7c9870b4b182364a0e755..a1156e20c304a5f4a7bfab05da1cd93829c6e054 100644 (file)
 
 using namespace llvm;
 
-#ifndef LLVM_BUILD_GLOBAL_ISEL
-#error "You shouldn't build this"
-#endif
-
 AMDGPURegisterBankInfo::AMDGPURegisterBankInfo(const TargetRegisterInfo &TRI)
     : AMDGPUGenRegisterBankInfo(),
       TRI(static_cast<const SIRegisterInfo*>(&TRI)) {
index f4484b9c653e4825aa87e3ab57c8f2afe46544ae..85ff5b3250738c9f6284e4f02130ab9ce1e95151 100644 (file)
 #include "AMDGPUSubtarget.h"
 #include "AMDGPU.h"
 #include "AMDGPUTargetMachine.h"
-#ifdef LLVM_BUILD_GLOBAL_ISEL
 #include "AMDGPUCallLowering.h"
 #include "AMDGPUInstructionSelector.h"
 #include "AMDGPULegalizerInfo.h"
 #include "AMDGPURegisterBankInfo.h"
-#endif
 #include "SIMachineFunctionInfo.h"
 #include "llvm/ADT/SmallString.h"
 #include "llvm/CodeGen/MachineScheduler.h"
@@ -80,7 +78,6 @@ AMDGPUSubtarget::initializeSubtargetDependencies(const Triple &TT,
   return *this;
 }
 
-#ifdef LLVM_BUILD_GLOBAL_ISEL
 namespace {
 
 struct SIGISelActualAccessor : public GISelAccessor {
@@ -103,7 +100,6 @@ struct SIGISelActualAccessor : public GISelAccessor {
 };
 
 } // end anonymous namespace
-#endif
 
 AMDGPUSubtarget::AMDGPUSubtarget(const Triple &TT, StringRef GPU, StringRef FS,
                                  const TargetMachine &TM)
@@ -358,9 +354,6 @@ SISubtarget::SISubtarget(const Triple &TT, StringRef GPU, StringRef FS,
     : AMDGPUSubtarget(TT, GPU, FS, TM), InstrInfo(*this),
       FrameLowering(TargetFrameLowering::StackGrowsUp, getStackAlignment(), 0),
       TLInfo(TM, *this) {
-#ifndef LLVM_BUILD_GLOBAL_ISEL
-  GISelAccessor *GISel = new GISelAccessor();
-#else
   SIGISelActualAccessor *GISel = new SIGISelActualAccessor();
   GISel->CallLoweringInfo.reset(new AMDGPUCallLowering(*getTargetLowering()));
   GISel->Legalizer.reset(new AMDGPULegalizerInfo());
@@ -368,7 +361,6 @@ SISubtarget::SISubtarget(const Triple &TT, StringRef GPU, StringRef FS,
   GISel->RegBankInfo.reset(new AMDGPURegisterBankInfo(*getRegisterInfo()));
   GISel->InstSelector.reset(new AMDGPUInstructionSelector(
       *this, *static_cast<AMDGPURegisterBankInfo *>(GISel->RegBankInfo.get())));
-#endif
   setGISelAccessor(*GISel);
 }
 
index e3f8dc15bd23baac3766a9f6af74e083ec7aa0eb..41b4f7082d68f71d225e6bb0261bb38c62711776 100644 (file)
@@ -516,12 +516,10 @@ public:
   void addMachineSSAOptimization() override;
   bool addILPOpts() override;
   bool addInstSelector() override;
-#ifdef LLVM_BUILD_GLOBAL_ISEL
   bool addIRTranslator() override;
   bool addLegalizeMachineIR() override;
   bool addRegBankSelect() override;
   bool addGlobalInstructionSelect() override;
-#endif
   void addFastRegAlloc(FunctionPass *RegAllocPass) override;
   void addOptimizedRegAlloc(FunctionPass *RegAllocPass) override;
   void addPreRegAlloc() override;
@@ -756,7 +754,6 @@ bool GCNPassConfig::addInstSelector() {
   return false;
 }
 
-#ifdef LLVM_BUILD_GLOBAL_ISEL
 bool GCNPassConfig::addIRTranslator() {
   addPass(new IRTranslator());
   return false;
@@ -777,8 +774,6 @@ bool GCNPassConfig::addGlobalInstructionSelect() {
   return false;
 }
 
-#endif
-
 void GCNPassConfig::addPreRegAlloc() {
   if (LateCFGStructurize) {
     addPass(createAMDGPUMachineCFGStructurizerPass());
index ead789856dc43fa1cb6a0eb5c91cc280d3000d00..75c6fc4e5099a365f7dbf8fd427986c803ca2fac 100644 (file)
@@ -12,28 +12,9 @@ tablegen(LLVM AMDGPUGenAsmWriter.inc -gen-asm-writer)
 tablegen(LLVM AMDGPUGenAsmMatcher.inc -gen-asm-matcher)
 tablegen(LLVM AMDGPUGenDisassemblerTables.inc -gen-disassembler)
 tablegen(LLVM AMDGPUGenMCPseudoLowering.inc -gen-pseudo-lowering)
-if(LLVM_BUILD_GLOBAL_ISEL)
-  tablegen(LLVM AMDGPUGenRegisterBank.inc -gen-register-bank)
-endif()
+tablegen(LLVM AMDGPUGenRegisterBank.inc -gen-register-bank)
 add_public_tablegen_target(AMDGPUCommonTableGen)
 
-# List of all GlobalISel files.
-set(GLOBAL_ISEL_FILES
-  AMDGPUCallLowering.cpp
-  AMDGPUInstructionSelector.cpp
-  AMDGPULegalizerInfo.cpp
-  AMDGPURegisterBankInfo.cpp
-  )
-
-# 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()
-
-
 add_llvm_target(AMDGPUCodeGen
   AMDILCFGStructurizer.cpp
   AMDGPUAliasAnalysis.cpp
@@ -41,9 +22,12 @@ add_llvm_target(AMDGPUCodeGen
   AMDGPUAnnotateKernelFeatures.cpp
   AMDGPUAnnotateUniformValues.cpp
   AMDGPUAsmPrinter.cpp
+  AMDGPUCallLowering.cpp
   AMDGPUCodeGenPrepare.cpp
   AMDGPUFrameLowering.cpp
+  AMDGPULegalizerInfo.cpp
   AMDGPUTargetObjectFile.cpp
+  AMDGPUInstructionSelector.cpp
   AMDGPUIntrinsicInfo.cpp
   AMDGPUISelDAGToDAG.cpp
   AMDGPULowerIntrinsics.cpp
@@ -61,6 +45,7 @@ add_llvm_target(AMDGPUCodeGen
   AMDGPUInstrInfo.cpp
   AMDGPUPromoteAlloca.cpp
   AMDGPURegAsmNames.inc.cpp
+  AMDGPURegisterBankInfo.cpp
   AMDGPURegisterInfo.cpp
   AMDGPURewriteOutArguments.cpp
   AMDGPUUnifyDivergentExitNodes.cpp
@@ -105,7 +90,6 @@ add_llvm_target(AMDGPUCodeGen
   GCNIterativeScheduler.cpp
   GCNMinRegStrategy.cpp
   GCNRegPressure.cpp
-  ${GLOBAL_ISEL_BUILD_FILES}
   )
 
 add_subdirectory(AsmParser)
index 051827a6a6a2f9d135ad20fc354f860cb377c396..e2671dfccd92498bf1a4af37ea17f9c86c7e7bb4 100644 (file)
 
 using namespace llvm;
 
-#ifndef LLVM_BUILD_GLOBAL_ISEL
-#error "This shouldn't be built without GISel"
-#endif
-
 ARMCallLowering::ARMCallLowering(const ARMTargetLowering &TLI)
     : CallLowering(&TLI) {}
 
index 6364ffbc753ac52f2a748212d30bd38fbf12523e..0d74fca5db988c57c403fef4756162f40332ac09 100644 (file)
 
 using namespace llvm;
 
-#ifndef LLVM_BUILD_GLOBAL_ISEL
-#error "You shouldn't build this"
-#endif
-
 namespace {
 
 #define GET_GLOBALISEL_PREDICATE_BITSET
index 2302e7e6e238b8bd21a699a6d1544931108d5ff3..8185f8acc9213d33e313b57cc5a36a3b2a140e2e 100644 (file)
 
 using namespace llvm;
 
-#ifndef LLVM_BUILD_GLOBAL_ISEL
-#error "You shouldn't build this"
-#endif
-
 static bool AEABI(const ARMSubtarget &ST) {
   return ST.isTargetAEABI() || ST.isTargetGNUAEABI() || ST.isTargetMuslAEABI();
 }
index 8bb58c3c452f48f08d876db16fc52b2786e10578..84d6be63cbecada50fd44162acf1adb206b75c6d 100644 (file)
 
 using namespace llvm;
 
-#ifndef LLVM_BUILD_GLOBAL_ISEL
-#error "You shouldn't build this"
-#endif
-
 // FIXME: TableGen this.
 // If it grows too much and TableGen still isn't ready to do the job, extract it
 // into an ARMGenRegisterBankInfo.def (similar to AArch64).
index 78bcbb77029ed0300c27d0c6b2a8a01dd1a82d70..29d6d148d913c765be654fb52481691a9ef84acb 100644 (file)
 
 #include "ARM.h"
 
-#ifdef LLVM_BUILD_GLOBAL_ISEL
 #include "ARMCallLowering.h"
 #include "ARMLegalizerInfo.h"
 #include "ARMRegisterBankInfo.h"
-#endif
 #include "ARMSubtarget.h"
 #include "ARMFrameLowering.h"
 #include "ARMInstrInfo.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/ADT/Triple.h"
 #include "llvm/ADT/Twine.h"
-#ifdef LLVM_BUILD_GLOBAL_ISEL
 #include "llvm/CodeGen/GlobalISel/GISelAccessor.h"
 #include "llvm/CodeGen/GlobalISel/IRTranslator.h"
 #include "llvm/CodeGen/GlobalISel/InstructionSelect.h"
 #include "llvm/CodeGen/GlobalISel/Legalizer.h"
 #include "llvm/CodeGen/GlobalISel/RegBankSelect.h"
-#endif
 #include "llvm/CodeGen/MachineFunction.h"
 #include "llvm/IR/Function.h"
 #include "llvm/IR/GlobalValue.h"
@@ -101,7 +97,6 @@ ARMFrameLowering *ARMSubtarget::initializeFrameLowering(StringRef CPU,
   return new ARMFrameLowering(STI);
 }
 
-#ifdef LLVM_BUILD_GLOBAL_ISEL
 namespace {
 
 struct ARMGISelActualAccessor : public GISelAccessor {
@@ -128,7 +123,6 @@ struct ARMGISelActualAccessor : public GISelAccessor {
 };
 
 } // end anonymous namespace
-#endif
 
 ARMSubtarget::ARMSubtarget(const Triple &TT, const std::string &CPU,
                            const std::string &FS,
@@ -147,9 +141,6 @@ ARMSubtarget::ARMSubtarget(const Triple &TT, const std::string &CPU,
   assert((isThumb() || hasARMOps()) &&
          "Target must either be thumb or support ARM operations!");
 
-#ifndef LLVM_BUILD_GLOBAL_ISEL
-  GISelAccessor *GISel = new GISelAccessor();
-#else
   ARMGISelActualAccessor *GISel = new ARMGISelActualAccessor();
   GISel->CallLoweringInfo.reset(new ARMCallLowering(*getTargetLowering()));
   GISel->Legalizer.reset(new ARMLegalizerInfo(*this));
@@ -163,7 +154,6 @@ ARMSubtarget::ARMSubtarget(const Triple &TT, const std::string &CPU,
       *static_cast<const ARMBaseTargetMachine *>(&TM), *this, *RBI));
 
   GISel->RegBankInfo.reset(RBI);
-#endif
   setGISelAccessor(*GISel);
 }
 
index eaab7331e348ff0d829c1830990514c5dc8d249d..d68ffa2313c8d4dcdc9bd3bd0381db7c216baad2 100644 (file)
@@ -333,12 +333,10 @@ public:
   void addIRPasses() override;
   bool addPreISel() override;
   bool addInstSelector() override;
-#ifdef LLVM_BUILD_GLOBAL_ISEL
   bool addIRTranslator() override;
   bool addLegalizeMachineIR() override;
   bool addRegBankSelect() override;
   bool addGlobalInstructionSelect() override;
-#endif
   void addPreRegAlloc() override;
   void addPreSched2() override;
   void addPreEmitPass() override;
@@ -413,7 +411,6 @@ bool ARMPassConfig::addInstSelector() {
   return false;
 }
 
-#ifdef LLVM_BUILD_GLOBAL_ISEL
 bool ARMPassConfig::addIRTranslator() {
   addPass(new IRTranslator());
   return false;
@@ -433,7 +430,6 @@ bool ARMPassConfig::addGlobalInstructionSelect() {
   addPass(new InstructionSelect());
   return false;
 }
-#endif
 
 void ARMPassConfig::addPreRegAlloc() {
   if (getOptLevel() != CodeGenOpt::None) {
index 8909ddf71ee9a9e43a39e6182f1236b721b8459d..014ac2ae8b489a1cd64a5937a8d6fc492b26fef2 100644 (file)
@@ -1,9 +1,7 @@
 set(LLVM_TARGET_DEFINITIONS ARM.td)
 
-if(LLVM_BUILD_GLOBAL_ISEL)
-  tablegen(LLVM ARMGenRegisterBank.inc -gen-register-bank)
-  tablegen(LLVM ARMGenGlobalISel.inc -gen-global-isel)
-endif()
+tablegen(LLVM ARMGenRegisterBank.inc -gen-register-bank)
+tablegen(LLVM ARMGenGlobalISel.inc -gen-global-isel)
 tablegen(LLVM ARMGenRegisterInfo.inc -gen-register-info)
 tablegen(LLVM ARMGenInstrInfo.inc -gen-instr-info)
 tablegen(LLVM ARMGenMCCodeEmitter.inc -gen-emitter)
@@ -18,41 +16,30 @@ tablegen(LLVM ARMGenDisassemblerTables.inc -gen-disassembler)
 tablegen(LLVM ARMGenSystemRegister.inc -gen-searchable-tables)
 add_public_tablegen_target(ARMCommonTableGen)
 
-# Add GlobalISel files if the user wants to build it.
-set(GLOBAL_ISEL_FILES
-  ARMCallLowering.cpp
-  ARMInstructionSelector.cpp
-  ARMLegalizerInfo.cpp
-  ARMRegisterBankInfo.cpp
-  )
-
-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()
-
 add_llvm_target(ARMCodeGen
   A15SDOptimizer.cpp
   ARMAsmPrinter.cpp
   ARMBaseInstrInfo.cpp
   ARMBaseRegisterInfo.cpp
+  ARMCallLowering.cpp
   ARMConstantIslandPass.cpp
   ARMConstantPoolValue.cpp
   ARMExpandPseudoInsts.cpp
   ARMFastISel.cpp
   ARMFrameLowering.cpp
   ARMHazardRecognizer.cpp
+  ARMInstructionSelector.cpp
   ARMISelDAGToDAG.cpp
   ARMISelLowering.cpp
   ARMInstrInfo.cpp
+  ARMLegalizerInfo.cpp
   ARMLoadStoreOptimizer.cpp
   ARMMCInstLower.cpp
   ARMMachineFunctionInfo.cpp
   ARMMacroFusion.cpp
   ARMRegisterInfo.cpp
   ARMOptimizeBarriersPass.cpp
+  ARMRegisterBankInfo.cpp
   ARMSelectionDAGInfo.cpp
   ARMSubtarget.cpp
   ARMTargetMachine.cpp
@@ -66,7 +53,6 @@ add_llvm_target(ARMCodeGen
   Thumb2InstrInfo.cpp
   Thumb2SizeReduction.cpp
   ARMComputeBlockSize.cpp
-  ${GLOBAL_ISEL_BUILD_FILES}
   )
 
 add_subdirectory(TargetInfo)
index 6e08d4cff6eaf9853ebcf63bd666523a00d98688..3966581d935249494d705457d47d8ce32aac2962 100644 (file)
@@ -11,32 +11,15 @@ tablegen(LLVM X86GenFastISel.inc -gen-fast-isel)
 tablegen(LLVM X86GenCallingConv.inc -gen-callingconv)
 tablegen(LLVM X86GenSubtargetInfo.inc -gen-subtarget)
 tablegen(LLVM X86GenEVEX2VEXTables.inc -gen-x86-EVEX2VEX-tables)
-if(LLVM_BUILD_GLOBAL_ISEL)
-  tablegen(LLVM X86GenRegisterBank.inc -gen-register-bank)
-  tablegen(LLVM X86GenGlobalISel.inc -gen-global-isel)
-endif()
+tablegen(LLVM X86GenRegisterBank.inc -gen-register-bank)
+tablegen(LLVM X86GenGlobalISel.inc -gen-global-isel)
 
 add_public_tablegen_target(X86CommonTableGen)
 
-# Add GlobalISel files if the build option was enabled.
-set(GLOBAL_ISEL_FILES
-  X86CallLowering.cpp
-  X86LegalizerInfo.cpp
-  X86RegisterBankInfo.cpp
-  X86InstructionSelector.cpp
-  )
-
-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(sources
   X86AsmPrinter.cpp
   X86CallFrameOptimization.cpp
+  X86CallLowering.cpp
   X86CmovConversion.cpp
   X86ExpandPseudo.cpp
   X86FastISel.cpp
@@ -45,17 +28,20 @@ set(sources
   X86FixupSetCC.cpp
   X86FloatingPoint.cpp
   X86FrameLowering.cpp
+  X86InstructionSelector.cpp
   X86ISelDAGToDAG.cpp
   X86ISelLowering.cpp
   X86InterleavedAccess.cpp
   X86InstrFMA3Info.cpp
   X86InstrInfo.cpp
   X86EvexToVex.cpp
+  X86LegalizerInfo.cpp
   X86MCInstLower.cpp
   X86MachineFunctionInfo.cpp
   X86MacroFusion.cpp
   X86OptimizeLEAs.cpp
   X86PadShortFunction.cpp
+  X86RegisterBankInfo.cpp
   X86RegisterInfo.cpp
   X86SelectionDAGInfo.cpp
   X86ShuffleDecodeConstantPool.cpp
@@ -67,7 +53,6 @@ set(sources
   X86WinAllocaExpander.cpp
   X86WinEHState.cpp
   X86CallingConv.cpp
-  ${GLOBAL_ISEL_BUILD_FILES}
   )
 
 add_llvm_target(X86CodeGen ${sources})
index 99aeec67c326648a261b9ed5ebb383952bd2f479..c8a3b2b51c88698358fe609fcb98ec5312d7e3c8 100644 (file)
@@ -29,10 +29,6 @@ using namespace llvm;
 
 #include "X86GenCallingConv.inc"
 
-#ifndef LLVM_BUILD_GLOBAL_ISEL
-#error "This shouldn't be built without GISel"
-#endif
-
 X86CallLowering::X86CallLowering(const X86TargetLowering &TLI)
     : CallLowering(&TLI) {}
 
index 06be142432f72bccfa6f4c81838c636c33ff8619..9cd3f96f83accdc658a2b8c48055922033c21778 100644 (file)
 /// \todo This should be generated by TableGen.
 //===----------------------------------------------------------------------===//
 
-#ifndef LLVM_BUILD_GLOBAL_ISEL
-#error "You shouldn't build this"
-#endif
-
 #ifdef GET_TARGET_REGBANK_INFO_IMPL
 RegisterBankInfo::PartialMapping X86GenRegisterBankInfo::PartMappings[]{
     /* StartIdx, Length, RegBank */
index 859d3288db896b8214be1f08d4f3f0effdf7e285..5801163573b546d9c031752becc0ad6b25500748 100644 (file)
 
 using namespace llvm;
 
-#ifndef LLVM_BUILD_GLOBAL_ISEL
-#error "You shouldn't build this"
-#endif
-
 namespace {
 
 #define GET_GLOBALISEL_PREDICATE_BITSET
index 744ba21011af7276022f45ab346b149dd46390ef..b1075995be2954c71010ef45c1879bb75bc2c96e 100644 (file)
 using namespace llvm;
 using namespace TargetOpcode;
 
-#ifndef LLVM_BUILD_GLOBAL_ISEL
-#error "You shouldn't build this"
-#endif
-
 X86LegalizerInfo::X86LegalizerInfo(const X86Subtarget &STI,
                                    const X86TargetMachine &TM)
     : Subtarget(STI), TM(TM) {
index efd3df26dd424f95a225a010ad613ac6bbefe605..ec303aca9c8af3766b314175b775794e1ebd0f58 100644 (file)
@@ -26,10 +26,6 @@ using namespace llvm;
 #define GET_TARGET_REGBANK_INFO_IMPL
 #include "X86GenRegisterBankInfo.def"
 
-#ifndef LLVM_BUILD_GLOBAL_ISEL
-#error "You shouldn't build this"
-#endif
-
 X86RegisterBankInfo::X86RegisterBankInfo(const TargetRegisterInfo &TRI)
     : X86GenRegisterBankInfo() {
 
index ea921cfac23b68522b9ffb6069df0879655ea128..0c8d2cb10bcc19efb84dda3e42216c8fc644b962 100644 (file)
 
 #include "X86.h"
 
-#ifdef LLVM_BUILD_GLOBAL_ISEL
 #include "X86CallLowering.h"
 #include "X86LegalizerInfo.h"
 #include "X86RegisterBankInfo.h"
-#endif
 #include "X86Subtarget.h"
 #include "MCTargetDesc/X86BaseInfo.h"
 #include "X86TargetMachine.h"
 #include "llvm/ADT/Triple.h"
-#ifdef LLVM_BUILD_GLOBAL_ISEL
 #include "llvm/CodeGen/GlobalISel/CallLowering.h"
 #include "llvm/CodeGen/GlobalISel/InstructionSelect.h"
 #include "llvm/CodeGen/GlobalISel/Legalizer.h"
 #include "llvm/CodeGen/GlobalISel/RegBankSelect.h"
-#endif
 #include "llvm/IR/Attributes.h"
 #include "llvm/IR/ConstantRange.h"
 #include "llvm/IR/Function.h"
@@ -352,7 +348,6 @@ X86Subtarget &X86Subtarget::initializeSubtargetDependencies(StringRef CPU,
   return *this;
 }
 
-#ifdef LLVM_BUILD_GLOBAL_ISEL
 namespace {
 
 struct X86GISelActualAccessor : public GISelAccessor {
@@ -379,7 +374,6 @@ struct X86GISelActualAccessor : public GISelAccessor {
 };
 
 } // end anonymous namespace
-#endif
 
 X86Subtarget::X86Subtarget(const Triple &TT, StringRef CPU, StringRef FS,
                            const X86TargetMachine &TM,
@@ -405,9 +399,6 @@ X86Subtarget::X86Subtarget(const Triple &TT, StringRef CPU, StringRef FS,
     setPICStyle(PICStyles::StubPIC);
   else if (isTargetELF())
     setPICStyle(PICStyles::GOT);
-#ifndef LLVM_BUILD_GLOBAL_ISEL
-  GISelAccessor *GISel = new GISelAccessor();
-#else
   X86GISelActualAccessor *GISel = new X86GISelActualAccessor();
 
   GISel->CallLoweringInfo.reset(new X86CallLowering(*getTargetLowering()));
@@ -416,7 +407,6 @@ X86Subtarget::X86Subtarget(const Triple &TT, StringRef CPU, StringRef FS,
   auto *RBI = new X86RegisterBankInfo(*getRegisterInfo());
   GISel->RegBankInfo.reset(RBI);
   GISel->InstSelector.reset(createX86InstructionSelector(TM, *this, *RBI));
-#endif
   setGISelAccessor(*GISel);
 }
 
index e40481dad34c6382973e672719358eff5b13cfe9..f071d229d8964edd345166aed04a0c4c1bf05139 100644 (file)
@@ -306,12 +306,10 @@ public:
 
   void addIRPasses() override;
   bool addInstSelector() override;
-#ifdef LLVM_BUILD_GLOBAL_ISEL
   bool addIRTranslator() override;
   bool addLegalizeMachineIR() override;
   bool addRegBankSelect() override;
   bool addGlobalInstructionSelect() override;
-#endif
   bool addILPOpts() override;
   bool addPreISel() override;
   void addPreRegAlloc() override;
@@ -361,7 +359,6 @@ bool X86PassConfig::addInstSelector() {
   return false;
 }
 
-#ifdef LLVM_BUILD_GLOBAL_ISEL
 bool X86PassConfig::addIRTranslator() {
   addPass(new IRTranslator());
   return false;
@@ -381,7 +378,6 @@ bool X86PassConfig::addGlobalInstructionSelect() {
   addPass(new InstructionSelect());
   return false;
 }
-#endif
 
 bool X86PassConfig::addILPOpts() {
   addPass(&EarlyIfConverterID);
index 5d48618c06100a80dd2859b7dcbeb7e14dd107e7..25f99cec97881a4faacdbfde04e3b03619cfb6ea 100644 (file)
@@ -37,11 +37,7 @@ set(LLVM_CXXFLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${uppercase_CMAKE_BUILD_
 set(LLVM_BUILD_SYSTEM cmake)
 set(LLVM_HAS_RTTI ${LLVM_CONFIG_HAS_RTTI})
 set(LLVM_DYLIB_VERSION "${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}${LLVM_VERSION_SUFFIX}")
-if(LLVM_BUILD_GLOBAL_ISEL)
-  set(LLVM_HAS_GLOBAL_ISEL "ON")
-else()
-  set(LLVM_HAS_GLOBAL_ISEL "OFF")
-endif()
+set(LLVM_HAS_GLOBAL_ISEL "ON")
 
 # Use the C++ link flags, since they should be a superset of C link flags.
 set(LLVM_LDFLAGS "${CMAKE_CXX_LINK_FLAGS}")
index 94e31159c6bb99b9acad6c6d36a797c3b4fe6ba8..075bb44bc330b322d6dab3f1575aafb2702b7358 100644 (file)
@@ -3,8 +3,6 @@ set(LLVM_LINK_COMPONENTS
   CodeGen
   )
 
-if(LLVM_BUILD_GLOBAL_ISEL)
-  add_llvm_unittest(GlobalISelTests
-          LegalizerInfoTest.cpp
-          )
-endif()
+add_llvm_unittest(GlobalISelTests
+        LegalizerInfoTest.cpp
+        )