[llvm] r277464 - [GlobalISel] Require isSSA in GISel passes.

Ahmed Bougacha via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 2 07:42:55 PDT 2016


Author: ab
Date: Tue Aug  2 09:42:55 2016
New Revision: 277464

URL: http://llvm.org/viewvc/llvm-project?rev=277464&view=rev
Log:
[GlobalISel] Require isSSA in GISel passes.

The GISel passes don't make sense on non-SSA functions.
All GISel tests already set isSSA. Enforce that.

Modified:
    llvm/trunk/include/llvm/CodeGen/GlobalISel/InstructionSelect.h
    llvm/trunk/include/llvm/CodeGen/GlobalISel/MachineLegalizePass.h
    llvm/trunk/include/llvm/CodeGen/GlobalISel/RegBankSelect.h

Modified: llvm/trunk/include/llvm/CodeGen/GlobalISel/InstructionSelect.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/GlobalISel/InstructionSelect.h?rev=277464&r1=277463&r2=277464&view=diff
==============================================================================
--- llvm/trunk/include/llvm/CodeGen/GlobalISel/InstructionSelect.h (original)
+++ llvm/trunk/include/llvm/CodeGen/GlobalISel/InstructionSelect.h Tue Aug  2 09:42:55 2016
@@ -30,6 +30,11 @@ public:
   static char ID;
   const char *getPassName() const override { return "InstructionSelect"; }
 
+  MachineFunctionProperties getRequiredProperties() const override {
+    return MachineFunctionProperties()
+        .set(MachineFunctionProperties::Property::IsSSA);
+  }
+
   InstructionSelect();
 
   bool runOnMachineFunction(MachineFunction &MF) override;

Modified: llvm/trunk/include/llvm/CodeGen/GlobalISel/MachineLegalizePass.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/GlobalISel/MachineLegalizePass.h?rev=277464&r1=277463&r2=277464&view=diff
==============================================================================
--- llvm/trunk/include/llvm/CodeGen/GlobalISel/MachineLegalizePass.h (original)
+++ llvm/trunk/include/llvm/CodeGen/GlobalISel/MachineLegalizePass.h Tue Aug  2 09:42:55 2016
@@ -43,6 +43,11 @@ public:
     return "MachineLegalizePass";
   }
 
+  MachineFunctionProperties getRequiredProperties() const override {
+    return MachineFunctionProperties().set(
+        MachineFunctionProperties::Property::IsSSA);
+  }
+
   bool runOnMachineFunction(MachineFunction &MF) override;
 };
 } // End namespace llvm.

Modified: llvm/trunk/include/llvm/CodeGen/GlobalISel/RegBankSelect.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/GlobalISel/RegBankSelect.h?rev=277464&r1=277463&r2=277464&view=diff
==============================================================================
--- llvm/trunk/include/llvm/CodeGen/GlobalISel/RegBankSelect.h (original)
+++ llvm/trunk/include/llvm/CodeGen/GlobalISel/RegBankSelect.h Tue Aug  2 09:42:55 2016
@@ -584,6 +584,11 @@ public:
 
   void getAnalysisUsage(AnalysisUsage &AU) const override;
 
+  MachineFunctionProperties getRequiredProperties() const override {
+    return MachineFunctionProperties()
+        .set(MachineFunctionProperties::Property::IsSSA);
+  }
+
   /// Walk through \p MF and assign a register bank to every virtual register
   /// that are still mapped to nothing.
   /// The target needs to provide a RegisterBankInfo and in particular




More information about the llvm-commits mailing list