[llvm-uc] [PATCH] uc32: Add get register class

  • From: Jia Liu <proljc@xxxxxxxxx>
  • To: llvm-uc@xxxxxxxxxxxxx
  • Date: Thu, 6 Dec 2012 12:46:46 +0800

Signed-off-by: Jia Liu <proljc@xxxxxxxxx>
---
 lib/Target/UniCore/UniCoreISelLowering.cpp |   13 +++++++++++--
 lib/Target/UniCore/UniCoreISelLowering.h   |    5 +++++
 2 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/lib/Target/UniCore/UniCoreISelLowering.cpp 
b/lib/Target/UniCore/UniCoreISelLowering.cpp
index 140eecc..8cf8a18 100644
--- a/lib/Target/UniCore/UniCoreISelLowering.cpp
+++ b/lib/Target/UniCore/UniCoreISelLowering.cpp
@@ -38,8 +38,17 @@ using namespace llvm;
 
 UniCoreTargetLowering::UniCoreTargetLowering(UniCoreTargetMachine &TM)
   : TargetLowering(TM, new TargetLoweringObjectFileELF()),
-    TM(TM)
-{
+    Subtarget(*TM.getSubtargetImpl()), TM(TM) {
+
+  DL = getDataLayout();
+  // Set up the register classes.
+  addRegisterClass(MVT::i32, &UniCore::GPRRegsRegClass);
+
+  // Compute derived properties from the register classes
+  computeRegisterProperties();
+
+  setMinFunctionAlignment(4);
+  setPrefFunctionAlignment(4);
 }
 
 SDValue
diff --git a/lib/Target/UniCore/UniCoreISelLowering.h 
b/lib/Target/UniCore/UniCoreISelLowering.h
index 611e284..99f6629 100644
--- a/lib/Target/UniCore/UniCoreISelLowering.h
+++ b/lib/Target/UniCore/UniCoreISelLowering.h
@@ -36,6 +36,9 @@ namespace llvm {
   // TargetLowering Implementation
   
//===--------------------------------------------------------------------===//
 
+  class UniCoreSubtarget;
+  class UniCoreTargetMachine;
+
   class UniCoreTargetLowering : public TargetLowering  {
   public:
     explicit UniCoreTargetLowering(UniCoreTargetMachine &TM);
@@ -48,7 +51,9 @@ namespace llvm {
     virtual const char *getTargetNodeName(unsigned Opcode) const;
 
   private:
+    const UniCoreSubtarget &Subtarget;
     const UniCoreTargetMachine &TM;
+    const DataLayout *DL;
 
     SDValue LowerCCCArguments(SDValue Chain,
                               CallingConv::ID CallConv,
-- 
1.7.10.2 (Apple Git-33)


Other related posts: