Path: blob/main/contrib/llvm-project/llvm/lib/Target/DirectX/DirectXSubtarget.h
35269 views
//===-- DirectXSubtarget.h - Define Subtarget for DirectX -------*- 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 DirectX specific subclass of TargetSubtargetInfo.9//10//===----------------------------------------------------------------------===//1112#ifndef LLVM_DIRECTX_DIRECTXSUBTARGET_H13#define LLVM_DIRECTX_DIRECTXSUBTARGET_H1415#include "DirectXFrameLowering.h"16#include "DirectXInstrInfo.h"17#include "DirectXTargetLowering.h"18#include "llvm/CodeGen/TargetSubtargetInfo.h"19#include "llvm/IR/DataLayout.h"20#include "llvm/Target/TargetMachine.h"2122#define GET_SUBTARGETINFO_HEADER23#include "DirectXGenSubtargetInfo.inc"2425namespace llvm {2627class DirectXTargetMachine;2829class DirectXSubtarget : public DirectXGenSubtargetInfo {30DirectXFrameLowering FL;31DirectXTargetLowering TL;32DirectXInstrInfo InstrInfo;3334virtual void anchor(); // virtual anchor method3536public:37DirectXSubtarget(const Triple &TT, StringRef CPU, StringRef FS,38const DirectXTargetMachine &TM);3940/// Parses a subtarget feature string, setting appropriate options.41/// \note Definition of function is auto generated by `tblgen`.42void ParseSubtargetFeatures(StringRef CPU, StringRef TuneCPU, StringRef FS);4344const DirectXTargetLowering *getTargetLowering() const override {45return &TL;46}4748const DirectXFrameLowering *getFrameLowering() const override { return &FL; }4950const DirectXInstrInfo *getInstrInfo() const override { return &InstrInfo; }51};5253} // end namespace llvm5455#endif // LLVM_DIRECTX_DIRECTXSUBTARGET_H565758