diff options
Diffstat (limited to 'llvm/lib/Target/R600/AMDGPUTargetTransformInfo.cpp')
-rw-r--r-- | llvm/lib/Target/R600/AMDGPUTargetTransformInfo.cpp | 53 |
1 files changed, 1 insertions, 52 deletions
diff --git a/llvm/lib/Target/R600/AMDGPUTargetTransformInfo.cpp b/llvm/lib/Target/R600/AMDGPUTargetTransformInfo.cpp index 132765ab9b0..be7b2f42971 100644 --- a/llvm/lib/Target/R600/AMDGPUTargetTransformInfo.cpp +++ b/llvm/lib/Target/R600/AMDGPUTargetTransformInfo.cpp @@ -15,8 +15,7 @@ // //===----------------------------------------------------------------------===// -#include "AMDGPU.h" -#include "AMDGPUTargetMachine.h" +#include "AMDGPUTargetTransformInfo.h" #include "llvm/Analysis/LoopInfo.h" #include "llvm/Analysis/TargetTransformInfo.h" #include "llvm/Analysis/ValueTracking.h" @@ -28,56 +27,6 @@ using namespace llvm; #define DEBUG_TYPE "AMDGPUtti" -namespace { - -class AMDGPUTTIImpl : public BasicTTIImplBase<AMDGPUTTIImpl> { - typedef BasicTTIImplBase<AMDGPUTTIImpl> BaseT; - typedef TargetTransformInfo TTI; - - const AMDGPUSubtarget *ST; - -public: - explicit AMDGPUTTIImpl(const AMDGPUTargetMachine *TM = nullptr) - : BaseT(TM), ST(TM->getSubtargetImpl()) {} - - // Provide value semantics. MSVC requires that we spell all of these out. - AMDGPUTTIImpl(const AMDGPUTTIImpl &Arg) - : BaseT(static_cast<const BaseT &>(Arg)), ST(Arg.ST) {} - AMDGPUTTIImpl(AMDGPUTTIImpl &&Arg) - : BaseT(std::move(static_cast<BaseT &>(Arg))), ST(std::move(Arg.ST)) {} - AMDGPUTTIImpl &operator=(const AMDGPUTTIImpl &RHS) { - BaseT::operator=(static_cast<const BaseT &>(RHS)); - ST = RHS.ST; - return *this; - } - AMDGPUTTIImpl &operator=(AMDGPUTTIImpl &&RHS) { - BaseT::operator=(std::move(static_cast<BaseT &>(RHS))); - ST = std::move(RHS.ST); - return *this; - } - - bool hasBranchDivergence() { return true; } - - void getUnrollingPreferences(const Function *F, Loop *L, - TTI::UnrollingPreferences &UP); - - TTI::PopcntSupportKind getPopcntSupport(unsigned TyWidth) { - assert(isPowerOf2_32(TyWidth) && "Ty width must be power of 2"); - return ST->hasBCNT(TyWidth) ? TTI::PSK_FastHardware : TTI::PSK_Software; - } - - unsigned getNumberOfRegisters(bool Vector); - unsigned getRegisterBitWidth(bool Vector); - unsigned getMaxInterleaveFactor(); -}; - -} // end anonymous namespace - -ImmutablePass * -llvm::createAMDGPUTargetTransformInfoPass(const AMDGPUTargetMachine *TM) { - return new TargetTransformInfoWrapperPass(AMDGPUTTIImpl(TM)); -} - void AMDGPUTTIImpl::getUnrollingPreferences(const Function *, Loop *L, TTI::UnrollingPreferences &UP) { UP.Threshold = 300; // Twice the default. |