LLVM: lib/Target/CSKY/CSKYSubtarget.cpp Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

16

17using namespace llvm;

18

19#define DEBUG_TYPE "csky-subtarget"

20#define GET_SUBTARGETINFO_TARGET_DESC

21#define GET_SUBTARGETINFO_CTOR

22#include "CSKYGenSubtargetInfo.inc"

23

24void CSKYSubtarget::anchor() {}

25

28

29 if (CPUName.empty())

30 CPUName = "generic";

31 if (TuneCPUName.empty())

32 TuneCPUName = CPUName;

33

34 UseHardFloat = false;

35 UseHardFloatABI = false;

36 HasFPUv2SingleFloat = false;

37 HasFPUv2DoubleFloat = false;

38 HasFPUv3HalfWord = false;

39 HasFPUv3HalfFloat = false;

40 HasFPUv3SingleFloat = false;

41 HasFPUv3DoubleFloat = false;

42 HasFdivdu = false;

43 HasFLOATE1 = false;

44 HasFLOAT1E2 = false;

45 HasFLOAT1E3 = false;

46 HasFLOAT3E4 = false;

47 HasFLOAT7E60 = false;

48 HasExtendLrw = false;

49 HasBTST16 = false;

50 HasTrust = false;

51 HasJAVA = false;

52 HasCache = false;

53 HasNVIC = false;

54 HasDSP = false;

55 HasDSP1E2 = false;

56 HasDSPE60 = false;

57 HasDSPV2 = false;

58 HasDSP_Silan = false;

59 HasDoloop = false;

60 HasHardwareDivide = false;

61 HasHighRegisters = false;

62 HasVDSPV2 = false;

63 HasVDSP2E3 = false;

64 HasVDSP2E60F = false;

65 ReadTPHard = false;

66 HasVDSPV1_128 = false;

67 UseCCRT = false;

68 DumpConstPool = false;

69 EnableInterruptAttribute = false;

70 HasPushPop = false;

71 HasSTM = false;

72 SmartMode = false;

73 EnableStackSize = false;

74

75 HasE1 = false;

76 HasE2 = false;

77 Has2E3 = false;

78 HasMP = false;

79 Has3E3r1 = false;

80 Has3r1E3r2 = false;

81 Has3r2E3r3 = false;

82 Has3E7 = false;

83 HasMP1E2 = false;

84 Has7E10 = false;

85 Has10E60 = false;

86

88 return *this;

89}

90

95 InstrInfo(*this, RegInfo), TLInfo(TM, *this) {

96 TSInfo = std::make_unique();

97}

98

100

102 return TSInfo.get();

103}

104

107

109 return UseHardFloatABI;

110 else

112}

CSKYSubtarget & initializeSubtargetDependencies(const Triple &TT, StringRef CPU, StringRef TuneCPU, StringRef FS)

Initializes using the passed in CPU and feature strings so that we can use initializer lists for subt...

Definition CSKYSubtarget.cpp:26

void ParseSubtargetFeatures(StringRef CPU, StringRef TuneCPU, StringRef FS)

bool useHardFloatABI() const

Definition CSKYSubtarget.cpp:105

CSKYSubtarget(const Triple &TT, StringRef CPU, StringRef TuneCPU, StringRef FS, const TargetMachine &TM)

Definition CSKYSubtarget.cpp:91

~CSKYSubtarget() override

const CSKYTargetLowering * getTargetLowering() const override

const SelectionDAGTargetInfo * getSelectionDAGInfo() const override

Definition CSKYSubtarget.cpp:101

Targets can subclass this to parameterize the SelectionDAG lowering and instruction selection process...

StringRef - Represent a constant reference to a string, i.e.

constexpr bool empty() const

empty - Check if the string is empty.

const TargetMachine & getTargetMachine() const

Primary interface to the complete machine description for the target machine.

FloatABI::ABIType FloatABIType

FloatABIType - This setting is set by -float-abi=xxx option is specfied on the command line.

Triple - Helper class for working with autoconf configuration names.

This is an optimization pass for GlobalISel generic memory operations.