aboutsummaryrefslogtreecommitdiff
path: root/contrib/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2019-12-20 19:53:05 +0000
committerDimitry Andric <dim@FreeBSD.org>2019-12-20 19:53:05 +0000
commit0b57cec536236d46e3dba9bd041533462f33dbb7 (patch)
tree56229dbdbbf76d18580f72f789003db17246c8d9 /contrib/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h
parent718ef55ec7785aae63f98f8ca05dc07ed399c16d (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.h112
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