diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2019-12-20 19:53:05 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2019-12-20 19:53:05 +0000 |
commit | 0b57cec536236d46e3dba9bd041533462f33dbb7 (patch) | |
tree | 56229dbdbbf76d18580f72f789003db17246c8d9 /contrib/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h | |
parent | 718ef55ec7785aae63f98f8ca05dc07ed399c16d (diff) |
Move all sources from the llvm project into contrib/llvm-project.
This uses the new layout of the upstream repository, which was recently
migrated to GitHub, and converted into a "monorepo". That is, most of
the earlier separate sub-projects with their own branches and tags were
consolidated into one top-level directory, and are now branched and
tagged together.
Updating the vendor area to match this layout is next.
Notes
Notes:
svn path=/head/; revision=355940
Diffstat (limited to 'contrib/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h')
-rw-r--r-- | contrib/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h | 112 |
1 files changed, 0 insertions, 112 deletions
diff --git a/contrib/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h b/contrib/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h deleted file mode 100644 index 16ce2ef1d7a0..000000000000 --- a/contrib/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h +++ /dev/null @@ -1,112 +0,0 @@ -//===-- SystemZTargetTransformInfo.h - SystemZ-specific TTI ---------------===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// - -#ifndef LLVM_LIB_TARGET_SYSTEMZ_SYSTEMZTARGETTRANSFORMINFO_H -#define LLVM_LIB_TARGET_SYSTEMZ_SYSTEMZTARGETTRANSFORMINFO_H - -#include "SystemZTargetMachine.h" -#include "llvm/Analysis/TargetTransformInfo.h" -#include "llvm/CodeGen/BasicTTIImpl.h" - -namespace llvm { - -class SystemZTTIImpl : public BasicTTIImplBase<SystemZTTIImpl> { - typedef BasicTTIImplBase<SystemZTTIImpl> BaseT; - typedef TargetTransformInfo TTI; - friend BaseT; - - const SystemZSubtarget *ST; - const SystemZTargetLowering *TLI; - - const SystemZSubtarget *getST() const { return ST; } - const SystemZTargetLowering *getTLI() const { return TLI; } - - unsigned const LIBCALL_COST = 30; - -public: - explicit SystemZTTIImpl(const SystemZTargetMachine *TM, const Function &F) - : BaseT(TM, F.getParent()->getDataLayout()), ST(TM->getSubtargetImpl(F)), - TLI(ST->getTargetLowering()) {} - - /// \name Scalar TTI Implementations - /// @{ - - unsigned getInliningThresholdMultiplier() { return 3; } - - int getIntImmCost(const APInt &Imm, Type *Ty); - - int getIntImmCost(unsigned Opcode, unsigned Idx, const APInt &Imm, Type *Ty); - int getIntImmCost(Intrinsic::ID IID, unsigned Idx, const APInt &Imm, - Type *Ty); - - TTI::PopcntSupportKind getPopcntSupport(unsigned TyWidth); - - void getUnrollingPreferences(Loop *L, ScalarEvolution &SE, - TTI::UnrollingPreferences &UP); - - bool isLSRCostLess(TargetTransformInfo::LSRCost &C1, - TargetTransformInfo::LSRCost &C2); - /// @} - - /// \name Vector TTI Implementations - /// @{ - - unsigned getNumberOfRegisters(bool Vector); - unsigned getRegisterBitWidth(bool Vector) const; - - unsigned getCacheLineSize() { return 256; } - unsigned getPrefetchDistance() { return 2000; } - unsigned getMinPrefetchStride() { return 2048; } - - bool hasDivRemOp(Type *DataType, bool IsSigned); - bool prefersVectorizedAddressing() { return false; } - bool LSRWithInstrQueries() { return true; } - bool supportsEfficientVectorElementLoadStore() { return true; } - bool enableInterleavedAccessVectorization() { return true; } - - int getArithmeticInstrCost( - unsigned Opcode, Type *Ty, - TTI::OperandValueKind Opd1Info = TTI::OK_AnyValue, - TTI::OperandValueKind Opd2Info = TTI::OK_AnyValue, - TTI::OperandValueProperties Opd1PropInfo = TTI::OP_None, - TTI::OperandValueProperties Opd2PropInfo = TTI::OP_None, - ArrayRef<const Value *> Args = ArrayRef<const Value *>()); - int getShuffleCost(TTI::ShuffleKind Kind, Type *Tp, int Index, Type *SubTp); - unsigned getVectorTruncCost(Type *SrcTy, Type *DstTy); - unsigned getVectorBitmaskConversionCost(Type *SrcTy, Type *DstTy); - unsigned getBoolVecToIntConversionCost(unsigned Opcode, Type *Dst, - const Instruction *I); - int getCastInstrCost(unsigned Opcode, Type *Dst, Type *Src, - const Instruction *I = nullptr); - int getCmpSelInstrCost(unsigned Opcode, Type *ValTy, Type *CondTy, - const Instruction *I = nullptr); - int getVectorInstrCost(unsigned Opcode, Type *Val, unsigned Index); - bool isFoldableLoad(const LoadInst *Ld, const Instruction *&FoldedValue); - int getMemoryOpCost(unsigned Opcode, Type *Src, unsigned Alignment, - unsigned AddressSpace, const Instruction *I = nullptr); - - int getInterleavedMemoryOpCost(unsigned Opcode, Type *VecTy, - unsigned Factor, - ArrayRef<unsigned> Indices, - unsigned Alignment, - unsigned AddressSpace, - bool UseMaskForCond = false, - bool UseMaskForGaps = false); - - int getIntrinsicInstrCost(Intrinsic::ID ID, Type *RetTy, - ArrayRef<Value *> Args, FastMathFlags FMF, - unsigned VF = 1); - int getIntrinsicInstrCost(Intrinsic::ID ID, Type *RetTy, - ArrayRef<Type *> Tys, FastMathFlags FMF, - unsigned ScalarizationCostPassed = UINT_MAX); - /// @} -}; - -} // end namespace llvm - -#endif |