13#ifndef LLVM_LIB_TARGET_LOONGARCH_LOONGARCHSUBTARGET_H
14#define LLVM_LIB_TARGET_LOONGARCH_LOONGARCHSUBTARGET_H
26#define GET_SUBTARGETINFO_HEADER
27#include "LoongArchGenSubtargetInfo.inc"
33 virtual void anchor();
35#define GET_SUBTARGETINFO_MACRO(ATTRIBUTE, DEFAULT, GETTER) \
36 bool ATTRIBUTE = DEFAULT;
37#include "LoongArchGenSubtargetInfo.inc"
44 MVT GRLenVT = MVT::i32;
46 LoongArchFrameLowering FrameLowering;
47 LoongArchInstrInfo InstrInfo;
48 LoongArchTargetLowering TLInfo;
49 SelectionDAGTargetInfo TSInfo;
51 Align PrefFunctionAlignment;
52 Align PrefLoopAlignment;
53 unsigned MaxBytesForAlignment;
64 void initializeProperties(StringRef TuneCPU);
69 StringRef FS, StringRef ABIName,
const TargetMachine &TM);
76 return &FrameLowering;
80 return &InstrInfo.getRegisterInfo();
89#define GET_SUBTARGETINFO_MACRO(ATTRIBUTE, DEFAULT, GETTER) \
90 bool GETTER() const { return ATTRIBUTE; }
91#include "LoongArchGenSubtargetInfo.inc"
107 bool useAA()
const override;
static const unsigned MaxInterleaveFactor
Maximum vectorization interleave count.
const LoongArchRegisterInfo * getRegisterInfo() const override
const LoongArchTargetLowering * getTargetLowering() const override
const SelectionDAGTargetInfo * getSelectionDAGInfo() const override
bool useAA() const override
const LoongArchInstrInfo * getInstrInfo() const override
unsigned getMaxBytesForAlignment() const
bool enableMachineScheduler() const override
unsigned getMaxInterleaveFactor() const
LoongArchSubtarget(const Triple &TT, StringRef CPU, StringRef TuneCPU, StringRef FS, StringRef ABIName, const TargetMachine &TM)
bool isXRaySupported() const override
void ParseSubtargetFeatures(StringRef CPU, StringRef TuneCPU, StringRef FS)
LoongArchABI::ABI getTargetABI() const
Align getPrefFunctionAlignment() const
const LoongArchFrameLowering * getFrameLowering() const override
unsigned getGRLen() const
Align getPrefLoopAlignment() const
Targets can subclass this to parameterize the SelectionDAG lowering and instruction selection process...
StringRef - Represent a constant reference to a string, i.e.
This is an optimization pass for GlobalISel generic memory operations.
This struct is a compact representation of a valid (non-zero power of two) alignment.