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)