1195098Sed//===-- MipsTargetTransformInfo.h - Mips specific TTI -----------*- C++ -*-===//
2195098Sed//
3195098Sed// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4195098Sed// See https://llvm.org/LICENSE.txt for license information.
5195098Sed// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6195098Sed//
7195098Sed//===----------------------------------------------------------------------===//
8195098Sed
9195098Sed#ifndef LLVM_LIB_TARGET_MIPS_MIPSTARGETTRANSFORMINFO_H
10195098Sed#define LLVM_LIB_TARGET_MIPS_MIPSTARGETTRANSFORMINFO_H
11249423Sdim
12249423Sdim#include "MipsTargetMachine.h"
13205218Srdivacky#include "llvm/Analysis/TargetTransformInfo.h"
14249423Sdim#include "llvm/CodeGen/BasicTTIImpl.h"
15249423Sdim
16226633Sdimnamespace llvm {
17226633Sdim
18249423Sdimclass MipsTTIImpl : public BasicTTIImplBase<MipsTTIImpl> {
19249423Sdim  using BaseT = BasicTTIImplBase<MipsTTIImpl>;
20207618Srdivacky  using TTI = TargetTransformInfo;
21195098Sed
22218893Sdim  friend BaseT;
23234353Sdim
24249423Sdim  const MipsSubtarget *ST;
25249423Sdim  const MipsTargetLowering *TLI;
26234353Sdim
27195098Sed  const MipsSubtarget *getST() const { return ST; }
28195098Sed  const MipsTargetLowering *getTLI() const { return TLI; }
29207618Srdivacky
30207618Srdivackypublic:
31208599Srdivacky  explicit MipsTTIImpl(const MipsTargetMachine *TM, const Function &F)
32207618Srdivacky      : BaseT(TM, F.getParent()->getDataLayout()), ST(TM->getSubtargetImpl(F)),
33207618Srdivacky        TLI(ST->getTargetLowering()) {}
34226633Sdim
35249423Sdim  bool hasDivRemOp(Type *DataType, bool IsSigned);
36249423Sdim};
37234353Sdim
38221345Sdim} // end namespace llvm
39221345Sdim
40249423Sdim#endif
41249423Sdim