Path: blob/main/contrib/llvm-project/llvm/lib/Target/Xtensa/XtensaSubtarget.h
35271 views
//===-- XtensaSubtarget.h - Define Subtarget for the Xtensa ----*- C++ -*--===//1//2// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.3// See https://llvm.org/LICENSE.txt for license information.4// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception5//6//===----------------------------------------------------------------------===//7//8// This file declares the Xtensa specific subclass of TargetSubtargetInfo.9//10//===----------------------------------------------------------------------===//1112#ifndef LLVM_LIB_TARGET_XTENSA_XTENSASUBTARGET_H13#define LLVM_LIB_TARGET_XTENSA_XTENSASUBTARGET_H1415#include "XtensaFrameLowering.h"16#include "XtensaISelLowering.h"17#include "XtensaInstrInfo.h"18#include "XtensaRegisterInfo.h"19#include "llvm/CodeGen/SelectionDAGTargetInfo.h"20#include "llvm/CodeGen/TargetSubtargetInfo.h"21#include "llvm/IR/DataLayout.h"22#include "llvm/Target/TargetMachine.h"2324#define GET_SUBTARGETINFO_HEADER25#include "XtensaGenSubtargetInfo.inc"2627namespace llvm {28class StringRef;2930class XtensaSubtarget : public XtensaGenSubtargetInfo {31private:32const Triple &TargetTriple;33XtensaInstrInfo InstrInfo;34XtensaTargetLowering TLInfo;35SelectionDAGTargetInfo TSInfo;36XtensaFrameLowering FrameLowering;3738// Enabled Xtensa Density extension39bool HasDensity;4041XtensaSubtarget &initializeSubtargetDependencies(StringRef CPU, StringRef FS);4243public:44XtensaSubtarget(const Triple &TT, StringRef CPU, StringRef FS,45const TargetMachine &TM);4647const Triple &getTargetTriple() const { return TargetTriple; }4849const TargetFrameLowering *getFrameLowering() const override {50return &FrameLowering;51}52const XtensaInstrInfo *getInstrInfo() const override { return &InstrInfo; }53const XtensaRegisterInfo *getRegisterInfo() const override {54return &InstrInfo.getRegisterInfo();55}5657const XtensaTargetLowering *getTargetLowering() const override {58return &TLInfo;59}60const SelectionDAGTargetInfo *getSelectionDAGInfo() const override {61return &TSInfo;62}6364bool hasDensity() const { return HasDensity; }6566// Automatically generated by tblgen.67void ParseSubtargetFeatures(StringRef CPU, StringRef TuneCPU, StringRef FS);68};69} // end namespace llvm7071#endif /* LLVM_LIB_TARGET_XTENSA_XTENSASUBTARGET_H */727374