181ad6265SDimitry Andric //===-- MipsTargetTransformInfo.h - Mips specific TTI -----------*- C++ -*-===// 281ad6265SDimitry Andric // 381ad6265SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 481ad6265SDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 581ad6265SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 681ad6265SDimitry Andric // 781ad6265SDimitry Andric //===----------------------------------------------------------------------===// 881ad6265SDimitry Andric 981ad6265SDimitry Andric #ifndef LLVM_LIB_TARGET_MIPS_MIPSTARGETTRANSFORMINFO_H 1081ad6265SDimitry Andric #define LLVM_LIB_TARGET_MIPS_MIPSTARGETTRANSFORMINFO_H 1181ad6265SDimitry Andric 1281ad6265SDimitry Andric #include "MipsTargetMachine.h" 1381ad6265SDimitry Andric #include "llvm/Analysis/TargetTransformInfo.h" 1481ad6265SDimitry Andric #include "llvm/CodeGen/BasicTTIImpl.h" 1581ad6265SDimitry Andric 1681ad6265SDimitry Andric namespace llvm { 1781ad6265SDimitry Andric 1881ad6265SDimitry Andric class MipsTTIImpl : public BasicTTIImplBase<MipsTTIImpl> { 1981ad6265SDimitry Andric using BaseT = BasicTTIImplBase<MipsTTIImpl>; 2081ad6265SDimitry Andric using TTI = TargetTransformInfo; 2181ad6265SDimitry Andric 2281ad6265SDimitry Andric friend BaseT; 2381ad6265SDimitry Andric 2481ad6265SDimitry Andric const MipsSubtarget *ST; 2581ad6265SDimitry Andric const MipsTargetLowering *TLI; 2681ad6265SDimitry Andric getST()2781ad6265SDimitry Andric const MipsSubtarget *getST() const { return ST; } getTLI()2881ad6265SDimitry Andric const MipsTargetLowering *getTLI() const { return TLI; } 2981ad6265SDimitry Andric 3081ad6265SDimitry Andric public: MipsTTIImpl(const MipsTargetMachine * TM,const Function & F)3181ad6265SDimitry Andric explicit MipsTTIImpl(const MipsTargetMachine *TM, const Function &F) 32*0fca6ea1SDimitry Andric : BaseT(TM, F.getDataLayout()), ST(TM->getSubtargetImpl(F)), 3381ad6265SDimitry Andric TLI(ST->getTargetLowering()) {} 3481ad6265SDimitry Andric 3581ad6265SDimitry Andric bool hasDivRemOp(Type *DataType, bool IsSigned); 3681ad6265SDimitry Andric }; 3781ad6265SDimitry Andric 3881ad6265SDimitry Andric } // end namespace llvm 3981ad6265SDimitry Andric 4081ad6265SDimitry Andric #endif 41