comparison lib/Target/Mips/Mips16ISelLowering.h @ 77:54457678186b LLVM3.6

LLVM 3.6
author Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
date Mon, 08 Sep 2014 22:06:00 +0900
parents 95c75e76d11b
children 60c9769439b8
comparison
equal deleted inserted replaced
34:e874dbf0ad9d 77:54457678186b
9 // 9 //
10 // Subclass of MipsTargetLowering specialized for mips16. 10 // Subclass of MipsTargetLowering specialized for mips16.
11 // 11 //
12 //===----------------------------------------------------------------------===// 12 //===----------------------------------------------------------------------===//
13 13
14 #ifndef Mips16ISELLOWERING_H 14 #ifndef LLVM_LIB_TARGET_MIPS_MIPS16ISELLOWERING_H
15 #define Mips16ISELLOWERING_H 15 #define LLVM_LIB_TARGET_MIPS_MIPS16ISELLOWERING_H
16 16
17 #include "MipsISelLowering.h" 17 #include "MipsISelLowering.h"
18 18
19 namespace llvm { 19 namespace llvm {
20 class Mips16TargetLowering : public MipsTargetLowering { 20 class Mips16TargetLowering : public MipsTargetLowering {
21 public: 21 public:
22 explicit Mips16TargetLowering(MipsTargetMachine &TM); 22 explicit Mips16TargetLowering(MipsTargetMachine &TM,
23 const MipsSubtarget &STI);
23 24
24 virtual bool allowsUnalignedMemoryAccesses(EVT VT, bool *Fast) const; 25 bool allowsMisalignedMemoryAccesses(EVT VT, unsigned AddrSpace,
26 unsigned Align,
27 bool *Fast) const override;
25 28
26 virtual MachineBasicBlock * 29 MachineBasicBlock *
27 EmitInstrWithCustomInserter(MachineInstr *MI, MachineBasicBlock *MBB) const; 30 EmitInstrWithCustomInserter(MachineInstr *MI,
31 MachineBasicBlock *MBB) const override;
28 32
29 private: 33 private:
30 virtual bool 34 bool isEligibleForTailCallOptimization(const MipsCC &MipsCCInfo,
31 isEligibleForTailCallOptimization(const MipsCC &MipsCCInfo, 35 unsigned NextStackOffset,
32 unsigned NextStackOffset, 36 const MipsFunctionInfo& FI) const override;
33 const MipsFunctionInfo& FI) const;
34 37
35 void setMips16HardFloatLibCalls(); 38 void setMips16HardFloatLibCalls();
36 39
37 unsigned int 40 unsigned int
38 getMips16HelperFunctionStubNumber(ArgListTy &Args) const; 41 getMips16HelperFunctionStubNumber(ArgListTy &Args) const;
39 42
40 const char *getMips16HelperFunction 43 const char *getMips16HelperFunction
41 (Type* RetTy, ArgListTy &Args, bool &needHelper) const; 44 (Type* RetTy, ArgListTy &Args, bool &needHelper) const;
42 45
43 virtual void 46 void
44 getOpndList(SmallVectorImpl<SDValue> &Ops, 47 getOpndList(SmallVectorImpl<SDValue> &Ops,
45 std::deque< std::pair<unsigned, SDValue> > &RegsToPass, 48 std::deque< std::pair<unsigned, SDValue> > &RegsToPass,
46 bool IsPICCall, bool GlobalOrExternal, bool InternalLinkage, 49 bool IsPICCall, bool GlobalOrExternal, bool InternalLinkage,
47 CallLoweringInfo &CLI, SDValue Callee, SDValue Chain) const; 50 CallLoweringInfo &CLI, SDValue Callee,
51 SDValue Chain) const override;
48 52
49 MachineBasicBlock *emitSel16(unsigned Opc, MachineInstr *MI, 53 MachineBasicBlock *emitSel16(unsigned Opc, MachineInstr *MI,
50 MachineBasicBlock *BB) const; 54 MachineBasicBlock *BB) const;
51 55
52 MachineBasicBlock *emitSeliT16(unsigned Opc1, unsigned Opc2, 56 MachineBasicBlock *emitSeliT16(unsigned Opc1, unsigned Opc2,
73 unsigned SltiOpc, unsigned SltiXOpc, 77 unsigned SltiOpc, unsigned SltiXOpc,
74 MachineInstr *MI, MachineBasicBlock *BB )const; 78 MachineInstr *MI, MachineBasicBlock *BB )const;
75 }; 79 };
76 } 80 }
77 81
78 #endif // Mips16ISELLOWERING_H 82 #endif