]> granicus.if.org Git - llvm/commitdiff
AMDGPU/R600: Initialize more passes
authorTom Stellard <tstellar@redhat.com>
Wed, 2 Aug 2017 22:19:45 +0000 (22:19 +0000)
committerTom Stellard <tstellar@redhat.com>
Wed, 2 Aug 2017 22:19:45 +0000 (22:19 +0000)
Reviewers: arsenm

Reviewed By: arsenm

Subscribers: kzhuravl, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, llvm-commits

Differential Revision: https://reviews.llvm.org/D36128

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

lib/Target/AMDGPU/AMDGPU.h
lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
lib/Target/AMDGPU/R600ClauseMergePass.cpp
lib/Target/AMDGPU/R600ControlFlowFinalizer.cpp
lib/Target/AMDGPU/R600ExpandSpecialInstrs.cpp
lib/Target/AMDGPU/R600OptimizeVectorRegisters.cpp
lib/Target/AMDGPU/R600Packetizer.cpp

index b35884587f09df70c07eb88b2479ea9ecc84db04..b23f288fe9245ffc5ebcb8cc44807959de751fe3 100644 (file)
@@ -70,6 +70,21 @@ extern char &AMDGPULowerIntrinsicsID;
 void initializeAMDGPURewriteOutArgumentsPass(PassRegistry &);
 extern char &AMDGPURewriteOutArgumentsID;
 
+void initializeR600ClauseMergePassPass(PassRegistry &);
+extern char &R600ClauseMergePassID;
+
+void initializeR600ControlFlowFinalizerPass(PassRegistry &);
+extern char &R600ControlFlowFinalizerID;
+
+void initializeR600ExpandSpecialInstrsPassPass(PassRegistry &);
+extern char &R600ExpandSpecialInstrsPassID;
+
+void initializeR600VectorRegMergerPass(PassRegistry &);
+extern char &R600VectorRegMergerID;
+
+void initializeR600PacketizerPass(PassRegistry &);
+extern char &R600PacketizerID;
+
 void initializeSIFoldOperandsPass(PassRegistry &);
 extern char &SIFoldOperandsID;
 
index 854000d1c413c2815dddd8660904b65a320cd2c1..de3f405b24f1150e3d4dcaa08265d951a8fb19ad 100644 (file)
@@ -135,6 +135,11 @@ extern "C" void LLVMInitializeAMDGPUTarget() {
   RegisterTargetMachine<GCNTargetMachine> Y(getTheGCNTarget());
 
   PassRegistry *PR = PassRegistry::getPassRegistry();
+  initializeR600ClauseMergePassPass(*PR);
+  initializeR600ControlFlowFinalizerPass(*PR);
+  initializeR600PacketizerPass(*PR);
+  initializeR600ExpandSpecialInstrsPassPass(*PR);
+  initializeR600VectorRegMergerPass(*PR);
   initializeSILowerI1CopiesPass(*PR);
   initializeSIFixSGPRCopiesPass(*PR);
   initializeSIFixVGPRCopiesPass(*PR);
index fbe45cb222d936cbcd4c941f9a3fc88901dbb493..8db66e600ecb7566b3d6c31a36009643f141db21 100644 (file)
@@ -44,7 +44,6 @@ static bool isCFAlu(const MachineInstr &MI) {
 class R600ClauseMergePass : public MachineFunctionPass {
 
 private:
-  static char ID;
   const R600InstrInfo *TII;
 
   unsigned getCFAluSize(const MachineInstr &MI) const;
@@ -62,6 +61,8 @@ private:
                        const MachineInstr &LatrCFAlu) const;
 
 public:
+  static char ID;
+
   R600ClauseMergePass() : MachineFunctionPass(ID) { }
 
   bool runOnMachineFunction(MachineFunction &MF) override;
@@ -69,8 +70,17 @@ public:
   StringRef getPassName() const override;
 };
 
+} // end anonymous namespace
+
+INITIALIZE_PASS_BEGIN(R600ClauseMergePass, DEBUG_TYPE,
+                      "R600 Clause Merge", false, false)
+INITIALIZE_PASS_END(R600ClauseMergePass, DEBUG_TYPE,
+                    "R600 Clause Merge", false, false)
+
 char R600ClauseMergePass::ID = 0;
 
+char &llvm::R600ClauseMergePassID = R600ClauseMergePass::ID;
+
 unsigned R600ClauseMergePass::getCFAluSize(const MachineInstr &MI) const {
   assert(isCFAlu(MI));
   return MI
@@ -205,9 +215,6 @@ StringRef R600ClauseMergePass::getPassName() const {
   return "R600 Merge Clause Markers Pass";
 }
 
-} // end anonymous namespace
-
-
 llvm::FunctionPass *llvm::createR600ClauseMergePass() {
   return new R600ClauseMergePass();
 }
index 00cbd24b84fbc00e66d0d96d9c1e632f410eb5d4..1a11ad35512a55278d584dcb060b2629dfd3be0e 100644 (file)
@@ -230,7 +230,6 @@ private:
     CF_END
   };
 
-  static char ID;
   const R600InstrInfo *TII = nullptr;
   const R600RegisterInfo *TRI = nullptr;
   unsigned MaxFetchInst;
@@ -499,6 +498,8 @@ private:
   }
 
 public:
+  static char ID;
+
   R600ControlFlowFinalizer() : MachineFunctionPass(ID) {}
 
   bool runOnMachineFunction(MachineFunction &MF) override {
@@ -702,9 +703,16 @@ public:
   }
 };
 
+} // end anonymous namespace
+
+INITIALIZE_PASS_BEGIN(R600ControlFlowFinalizer, DEBUG_TYPE,
+                     "R600 Control Flow Finalizer", false, false)
+INITIALIZE_PASS_END(R600ControlFlowFinalizer, DEBUG_TYPE,
+                    "R600 Control Flow Finalizer", false, false)
+
 char R600ControlFlowFinalizer::ID = 0;
 
-} // end anonymous namespace
+char &llvm::R600ControlFlowFinalizerID = R600ControlFlowFinalizer::ID;
 
 FunctionPass *llvm::createR600ControlFlowFinalizer() {
   return new R600ControlFlowFinalizer();
index 66def2d29caff9669686ace083c73ed03ee78ba7..620e8781a47c3375e6fb2055ddb39b486062e385 100644 (file)
 
 using namespace llvm;
 
+#define DEBUG_TYPE "r600-expand-special-instrs"
+
 namespace {
 
 class R600ExpandSpecialInstrsPass : public MachineFunctionPass {
 private:
-  static char ID;
   const R600InstrInfo *TII;
 
   void SetFlagInNewMI(MachineInstr *NewMI, const MachineInstr *OldMI,
       unsigned Op);
 
 public:
+  static char ID;
+
   R600ExpandSpecialInstrsPass() : MachineFunctionPass(ID),
     TII(nullptr) { }
 
@@ -49,8 +52,15 @@ public:
 
 } // End anonymous namespace
 
+INITIALIZE_PASS_BEGIN(R600ExpandSpecialInstrsPass, DEBUG_TYPE,
+                     "R600 Expand Special Instrs", false, false)
+INITIALIZE_PASS_END(R600ExpandSpecialInstrsPass, DEBUG_TYPE,
+                    "R600ExpandSpecialInstrs", false, false)
+
 char R600ExpandSpecialInstrsPass::ID = 0;
 
+char &llvm::R600ExpandSpecialInstrsPassID = R600ExpandSpecialInstrsPass::ID;
+
 FunctionPass *llvm::createR600ExpandSpecialInstrsPass() {
   return new R600ExpandSpecialInstrsPass();
 }
index 502dd3bce97e1223c5d969a9905df1db0540d9cb..402c3f46de1b5c10d073994548ecc66413ca88d7 100644 (file)
@@ -145,8 +145,15 @@ public:
 
 } // end anonymous namespace.
 
+INITIALIZE_PASS_BEGIN(R600VectorRegMerger, DEBUG_TYPE,
+                     "R600 Vector Reg Merger", false, false)
+INITIALIZE_PASS_END(R600VectorRegMerger, DEBUG_TYPE,
+                    "R600 Vector Reg Merger", false, false)
+
 char R600VectorRegMerger::ID = 0;
 
+char &llvm::R600VectorRegMergerID = R600VectorRegMerger::ID;
+
 bool R600VectorRegMerger::canSwizzle(const MachineInstr &MI)
     const {
   if (TII->get(MI.getOpcode()).TSFlags & R600_InstFlag::TEX_INST)
index 1cb40938cee72d78e47f6fd9b2b8930e39bf631e..7340318d2d88b575f6e523783f654cac3cf3e68a 100644 (file)
@@ -51,7 +51,6 @@ public:
 
   bool runOnMachineFunction(MachineFunction &Fn) override;
 };
-char R600Packetizer::ID = 0;
 
 class R600PacketizerList : public VLIWPacketizerList {
 private:
@@ -404,6 +403,15 @@ bool R600Packetizer::runOnMachineFunction(MachineFunction &Fn) {
 
 } // end anonymous namespace
 
+INITIALIZE_PASS_BEGIN(R600Packetizer, DEBUG_TYPE,
+                     "R600 Packetizer", false, false)
+INITIALIZE_PASS_END(R600Packetizer, DEBUG_TYPE,
+                    "R600 Packetizer", false, false)
+
+char R600Packetizer::ID = 0;
+
+char &llvm::R600PacketizerID = R600Packetizer::ID;
+
 llvm::FunctionPass *llvm::createR600Packetizer() {
   return new R600Packetizer();
 }