LLVM: lib/Target/Xtensa/XtensaSubtarget.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13#ifndef LLVM_LIB_TARGET_XTENSA_XTENSASUBTARGET_H

14#define LLVM_LIB_TARGET_XTENSA_XTENSASUBTARGET_H

15

23

24#define GET_SUBTARGETINFO_HEADER

25#include "XtensaGenSubtargetInfo.inc"

26

27namespace llvm {

28class StringRef;

29

31private:

32

33#define GET_SUBTARGETINFO_MACRO(ATTRIBUTE, DEFAULT, GETTER) \

34 bool ATTRIBUTE = DEFAULT;

35#include "XtensaGenSubtargetInfo.inc"

36

37 const Triple &TargetTriple;

38 XtensaInstrInfo InstrInfo;

39 XtensaTargetLowering TLInfo;

40 std::unique_ptr TSInfo;

41 XtensaFrameLowering FrameLowering;

42

43 XtensaSubtarget &initializeSubtargetDependencies(StringRef CPU, StringRef FS);

44

45public:

46 XtensaSubtarget(const Triple &TT, StringRef CPU, StringRef FS,

47 const TargetMachine &TM);

48

50

52

54 return &FrameLowering;

55 }

58 return &InstrInfo.getRegisterInfo();

59 }

60

64

66

67 bool hasDensity() const { return HasDensity; }

68 bool hasMAC16() const { return HasMAC16; }

70 bool hasBoolean() const { return HasBoolean; }

71 bool hasLoop() const { return HasLoop; }

72 bool hasSEXT() const { return HasSEXT; }

73 bool hasCLAMPS() const { return HasCLAMPS; }

74 bool hasNSA() const { return HasNSA; }

75 bool hasMINMAX() const { return HasMINMAX; }

76 bool hasMul16() const { return HasMul16; }

77 bool hasMul32() const { return HasMul32; }

79 bool hasDiv32() const { return HasDiv32; }

80 bool hasS32C1I() const { return HasS32C1I; }

85 bool hasMiscSR() const { return HasMiscSR; }

98

99

101};

102}

103

104#endif

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

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

Information about stack frame layout on the target.

Triple - Helper class for working with autoconf configuration names.

bool hasException() const

Definition XtensaSubtarget.h:95

const Triple & getTargetTriple() const

Definition XtensaSubtarget.h:51

bool hasMINMAX() const

Definition XtensaSubtarget.h:75

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

~XtensaSubtarget() override

bool hasMul16() const

Definition XtensaSubtarget.h:76

const XtensaInstrInfo * getInstrInfo() const override

Definition XtensaSubtarget.h:56

bool hasHighPriInterruptsLevel6() const

Definition XtensaSubtarget.h:92

const SelectionDAGTargetInfo * getSelectionDAGInfo() const override

bool hasMAC16() const

Definition XtensaSubtarget.h:68

bool isWindowedABI() const

Definition XtensaSubtarget.h:97

bool hasS32C1I() const

Definition XtensaSubtarget.h:80

bool hasMiscSR() const

Definition XtensaSubtarget.h:85

bool hasInterrupt() const

Definition XtensaSubtarget.h:94

bool hasMul32() const

Definition XtensaSubtarget.h:77

bool hasCLAMPS() const

Definition XtensaSubtarget.h:73

bool hasTHREADPTR() const

Definition XtensaSubtarget.h:96

bool hasHighPriInterruptsLevel7() const

Definition XtensaSubtarget.h:93

bool hasDataCache() const

Definition XtensaSubtarget.h:87

bool hasHighPriInterrupts() const

Definition XtensaSubtarget.h:88

bool hasDiv32() const

Definition XtensaSubtarget.h:79

bool hasForcedAtomics() const

Definition XtensaSubtarget.h:81

bool hasHighPriInterruptsLevel3() const

Definition XtensaSubtarget.h:89

bool hasHighPriInterruptsLevel5() const

Definition XtensaSubtarget.h:91

bool hasHighPriInterruptsLevel4() const

Definition XtensaSubtarget.h:90

bool hasWindowed() const

Definition XtensaSubtarget.h:69

const XtensaRegisterInfo * getRegisterInfo() const override

Definition XtensaSubtarget.h:57

bool hasSEXT() const

Definition XtensaSubtarget.h:72

bool hasSingleFloat() const

Definition XtensaSubtarget.h:82

bool hasNSA() const

Definition XtensaSubtarget.h:74

bool hasLoop() const

Definition XtensaSubtarget.h:71

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

bool hasBoolean() const

Definition XtensaSubtarget.h:70

bool hasExtendedL32R() const

Definition XtensaSubtarget.h:86

bool hasMul32High() const

Definition XtensaSubtarget.h:78

bool hasRelocatableVector() const

Definition XtensaSubtarget.h:84

const XtensaTargetLowering * getTargetLowering() const override

Definition XtensaSubtarget.h:61

bool hasRegionProtection() const

Definition XtensaSubtarget.h:83

const TargetFrameLowering * getFrameLowering() const override

Definition XtensaSubtarget.h:53

bool hasDensity() const

Definition XtensaSubtarget.h:67

This is an optimization pass for GlobalISel generic memory operations.