brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · f3d71c4 Raw
61 lines · c
1//===-- DirectXSubtarget.h - Define Subtarget for DirectX -------*- C++ -*-===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8//9// This file declares the DirectX specific subclass of TargetSubtargetInfo.10//11//===----------------------------------------------------------------------===//12 13#ifndef LLVM_DIRECTX_DIRECTXSUBTARGET_H14#define LLVM_DIRECTX_DIRECTXSUBTARGET_H15 16#include "DirectXFrameLowering.h"17#include "DirectXInstrInfo.h"18#include "DirectXTargetLowering.h"19#include "llvm/CodeGen/TargetSubtargetInfo.h"20#include "llvm/IR/DataLayout.h"21#include "llvm/Target/TargetMachine.h"22 23#define GET_SUBTARGETINFO_HEADER24#include "DirectXGenSubtargetInfo.inc"25 26namespace llvm {27 28class DirectXTargetMachine;29 30class DirectXSubtarget : public DirectXGenSubtargetInfo {31  DirectXInstrInfo InstrInfo;32  DirectXFrameLowering FL;33  DirectXTargetLowering TL;34 35  virtual void anchor(); // virtual anchor method36 37public:38  DirectXSubtarget(const Triple &TT, StringRef CPU, StringRef FS,39                   const DirectXTargetMachine &TM);40 41  /// Parses a subtarget feature string, setting appropriate options.42  /// \note Definition of function is auto generated by `tblgen`.43  void ParseSubtargetFeatures(StringRef CPU, StringRef TuneCPU, StringRef FS);44 45  const DirectXTargetLowering *getTargetLowering() const override {46    return &TL;47  }48 49  const DirectXFrameLowering *getFrameLowering() const override { return &FL; }50 51  const DirectXInstrInfo *getInstrInfo() const override { return &InstrInfo; }52 53  const DirectXRegisterInfo *getRegisterInfo() const override {54    return &InstrInfo.getRegisterInfo();55  }56};57 58} // end namespace llvm59 60#endif // LLVM_DIRECTX_DIRECTXSUBTARGET_H61