diff options
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/CodeGen/BasicTargetTransformInfo.cpp | 4 | ||||
| -rw-r--r-- | llvm/lib/CodeGen/LLVMTargetMachine.cpp | 5 | ||||
| -rw-r--r-- | llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h | 2 | ||||
| -rw-r--r-- | llvm/lib/Target/ARM/ARMTargetTransformInfo.h | 14 | ||||
| -rw-r--r-- | llvm/lib/Target/Mips/MipsTargetMachine.cpp | 2 | ||||
| -rw-r--r-- | llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.h | 15 | ||||
| -rw-r--r-- | llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp | 2 | ||||
| -rw-r--r-- | llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h | 15 | ||||
| -rw-r--r-- | llvm/lib/Target/R600/AMDGPUTargetTransformInfo.h | 15 | ||||
| -rw-r--r-- | llvm/lib/Target/X86/X86TargetTransformInfo.h | 15 | ||||
| -rw-r--r-- | llvm/lib/Target/XCore/XCoreTargetTransformInfo.h | 14 |
11 files changed, 43 insertions, 60 deletions
diff --git a/llvm/lib/CodeGen/BasicTargetTransformInfo.cpp b/llvm/lib/CodeGen/BasicTargetTransformInfo.cpp index e0334732fdc..2496d215cc0 100644 --- a/llvm/lib/CodeGen/BasicTargetTransformInfo.cpp +++ b/llvm/lib/CodeGen/BasicTargetTransformInfo.cpp @@ -33,5 +33,5 @@ cl::opt<unsigned> cl::desc("Threshold for partial unrolling"), cl::Hidden); -BasicTTIImpl::BasicTTIImpl(const TargetMachine *TM) - : BaseT(TM), TM(TM), TLI(TM->getSubtargetImpl()->getTargetLowering()) {} +BasicTTIImpl::BasicTTIImpl(const TargetMachine *TM, Function &F) + : BaseT(TM), ST(TM->getSubtargetImpl(F)), TLI(ST->getTargetLowering()) {} diff --git a/llvm/lib/CodeGen/LLVMTargetMachine.cpp b/llvm/lib/CodeGen/LLVMTargetMachine.cpp index d3d8a508292..617ed75c24f 100644 --- a/llvm/lib/CodeGen/LLVMTargetMachine.cpp +++ b/llvm/lib/CodeGen/LLVMTargetMachine.cpp @@ -79,8 +79,9 @@ LLVMTargetMachine::LLVMTargetMachine(const Target &T, StringRef Triple, } TargetIRAnalysis LLVMTargetMachine::getTargetIRAnalysis() { - return TargetIRAnalysis( - [this](Function &) { return TargetTransformInfo(BasicTTIImpl(this)); }); + return TargetIRAnalysis([this](Function &F) { + return TargetTransformInfo(BasicTTIImpl(this, F)); + }); } /// addPassesToX helper drives creation and initialization of TargetPassConfig. diff --git a/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h b/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h index 5d83e5e433d..fffeb981b53 100644 --- a/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h +++ b/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h @@ -39,7 +39,7 @@ class AArch64TTIImpl : public BasicTTIImplBase<AArch64TTIImpl> { /// are set if the result needs to be inserted and/or extracted from vectors. unsigned getScalarizationOverhead(Type *Ty, bool Insert, bool Extract); - const AArch64TargetMachine *getTM() const { return TM; } + const AArch64Subtarget *getST() const { return ST; } const AArch64TargetLowering *getTLI() const { return TLI; } enum MemIntrinsicType { diff --git a/llvm/lib/Target/ARM/ARMTargetTransformInfo.h b/llvm/lib/Target/ARM/ARMTargetTransformInfo.h index b9e52914d2a..6167fae9c8a 100644 --- a/llvm/lib/Target/ARM/ARMTargetTransformInfo.h +++ b/llvm/lib/Target/ARM/ARMTargetTransformInfo.h @@ -30,7 +30,6 @@ class ARMTTIImpl : public BasicTTIImplBase<ARMTTIImpl> { typedef TargetTransformInfo TTI; friend BaseT; - const ARMBaseTargetMachine *TM; const ARMSubtarget *ST; const ARMTargetLowering *TLI; @@ -38,30 +37,27 @@ class ARMTTIImpl : public BasicTTIImplBase<ARMTTIImpl> { /// are set if the result needs to be inserted and/or extracted from vectors. unsigned getScalarizationOverhead(Type *Ty, bool Insert, bool Extract); - const ARMBaseTargetMachine *getTM() const { return TM; } + const ARMSubtarget *getST() const { return ST; } const ARMTargetLowering *getTLI() const { return TLI; } public: explicit ARMTTIImpl(const ARMBaseTargetMachine *TM, Function &F) - : BaseT(TM), TM(TM), ST(TM->getSubtargetImpl(F)), - TLI(ST->getTargetLowering()) {} + : BaseT(TM), ST(TM->getSubtargetImpl(F)), TLI(ST->getTargetLowering()) {} // Provide value semantics. MSVC requires that we spell all of these out. ARMTTIImpl(const ARMTTIImpl &Arg) - : BaseT(static_cast<const BaseT &>(Arg)), TM(Arg.TM), ST(Arg.ST), TLI(Arg.TLI) {} + : BaseT(static_cast<const BaseT &>(Arg)), ST(Arg.ST), TLI(Arg.TLI) {} ARMTTIImpl(ARMTTIImpl &&Arg) - : BaseT(std::move(static_cast<BaseT &>(Arg))), TM(std::move(Arg.TM)), - ST(std::move(Arg.ST)), TLI(std::move(Arg.TLI)) {} + : BaseT(std::move(static_cast<BaseT &>(Arg))), ST(std::move(Arg.ST)), + TLI(std::move(Arg.TLI)) {} ARMTTIImpl &operator=(const ARMTTIImpl &RHS) { BaseT::operator=(static_cast<const BaseT &>(RHS)); - TM = RHS.TM; ST = RHS.ST; TLI = RHS.TLI; return *this; } ARMTTIImpl &operator=(ARMTTIImpl &&RHS) { BaseT::operator=(std::move(static_cast<BaseT &>(RHS))); - TM = std::move(RHS.TM); ST = std::move(RHS.ST); TLI = std::move(RHS.TLI); return *this; diff --git a/llvm/lib/Target/Mips/MipsTargetMachine.cpp b/llvm/lib/Target/Mips/MipsTargetMachine.cpp index 0fd3a14b7cf..0ae3c991261 100644 --- a/llvm/lib/Target/Mips/MipsTargetMachine.cpp +++ b/llvm/lib/Target/Mips/MipsTargetMachine.cpp @@ -247,7 +247,7 @@ TargetIRAnalysis MipsTargetMachine::getTargetIRAnalysis() { } DEBUG(errs() << "Target Transform Info Pass Added\n"); - return TargetTransformInfo(BasicTTIImpl(this)); + return TargetTransformInfo(BasicTTIImpl(this, F)); }); } diff --git a/llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.h b/llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.h index 3e96979f086..bf21e881b4b 100644 --- a/llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.h +++ b/llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.h @@ -30,30 +30,31 @@ class NVPTXTTIImpl : public BasicTTIImplBase<NVPTXTTIImpl> { typedef TargetTransformInfo TTI; friend BaseT; - const NVPTXTargetMachine *TM; + const NVPTXSubtarget *ST; const NVPTXTargetLowering *TLI; - const NVPTXTargetMachine *getTM() const { return TM; }; + const NVPTXSubtarget *getST() const { return ST; }; const NVPTXTargetLowering *getTLI() const { return TLI; }; public: explicit NVPTXTTIImpl(const NVPTXTargetMachine *TM) - : BaseT(TM), TM(TM), TLI(TM->getSubtargetImpl()->getTargetLowering()) {} + : BaseT(TM), ST(TM->getSubtargetImpl()), TLI(ST->getTargetLowering()) {} // Provide value semantics. MSVC requires that we spell all of these out. NVPTXTTIImpl(const NVPTXTTIImpl &Arg) - : BaseT(static_cast<const BaseT &>(Arg)), TM(Arg.TM), TLI(Arg.TLI) {} + : BaseT(static_cast<const BaseT &>(Arg)), ST(Arg.ST), TLI(Arg.TLI) {} NVPTXTTIImpl(NVPTXTTIImpl &&Arg) - : BaseT(std::move(static_cast<BaseT &>(Arg))), TM(std::move(Arg.TM)), TLI(std::move(Arg.TLI)) {} + : BaseT(std::move(static_cast<BaseT &>(Arg))), ST(std::move(Arg.ST)), + TLI(std::move(Arg.TLI)) {} NVPTXTTIImpl &operator=(const NVPTXTTIImpl &RHS) { BaseT::operator=(static_cast<const BaseT &>(RHS)); - TM = RHS.TM; + ST = RHS.ST; TLI = RHS.TLI; return *this; } NVPTXTTIImpl &operator=(NVPTXTTIImpl &&RHS) { BaseT::operator=(std::move(static_cast<BaseT &>(RHS))); - TM = std::move(RHS.TM); + ST = std::move(RHS.ST); TLI = std::move(RHS.TLI); return *this; } diff --git a/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp b/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp index 3519229eb09..98fe5cdd8db 100644 --- a/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp +++ b/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp @@ -183,7 +183,7 @@ unsigned PPCTTIImpl::getIntImmCost(unsigned Opcode, unsigned Idx, void PPCTTIImpl::getUnrollingPreferences(const Function *F, Loop *L, TTI::UnrollingPreferences &UP) { - if (TM->getSubtarget<PPCSubtarget>(F).getDarwinDirective() == PPC::DIR_A2) { + if (ST->getDarwinDirective() == PPC::DIR_A2) { // The A2 is in-order with a deep pipeline, and concatenation unrolling // helps expose latency-hiding opportunities to the instruction scheduler. UP.Partial = UP.Runtime = true; diff --git a/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h b/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h index 83cb5e5d113..0429a26c200 100644 --- a/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h +++ b/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h @@ -30,35 +30,30 @@ class PPCTTIImpl : public BasicTTIImplBase<PPCTTIImpl> { typedef TargetTransformInfo TTI; friend BaseT; - const PPCTargetMachine *TM; const PPCSubtarget *ST; const PPCTargetLowering *TLI; - const PPCTargetMachine *getTM() const { return TM; } + const PPCSubtarget *getST() const { return ST; } const PPCTargetLowering *getTLI() const { return TLI; } public: explicit PPCTTIImpl(const PPCTargetMachine *TM, Function &F) - : BaseT(TM), TM(TM), ST(TM->getSubtargetImpl(F)), - TLI(ST->getTargetLowering()) {} + : BaseT(TM), ST(TM->getSubtargetImpl(F)), TLI(ST->getTargetLowering()) {} // Provide value semantics. MSVC requires that we spell all of these out. PPCTTIImpl(const PPCTTIImpl &Arg) - : BaseT(static_cast<const BaseT &>(Arg)), TM(Arg.TM), ST(Arg.ST), - TLI(Arg.TLI) {} + : BaseT(static_cast<const BaseT &>(Arg)), ST(Arg.ST), TLI(Arg.TLI) {} PPCTTIImpl(PPCTTIImpl &&Arg) - : BaseT(std::move(static_cast<BaseT &>(Arg))), TM(std::move(Arg.TM)), - ST(std::move(Arg.ST)), TLI(std::move(Arg.TLI)) {} + : BaseT(std::move(static_cast<BaseT &>(Arg))), ST(std::move(Arg.ST)), + TLI(std::move(Arg.TLI)) {} PPCTTIImpl &operator=(const PPCTTIImpl &RHS) { BaseT::operator=(static_cast<const BaseT &>(RHS)); - TM = RHS.TM; ST = RHS.ST; TLI = RHS.TLI; return *this; } PPCTTIImpl &operator=(PPCTTIImpl &&RHS) { BaseT::operator=(std::move(static_cast<BaseT &>(RHS))); - TM = std::move(RHS.TM); ST = std::move(RHS.ST); TLI = std::move(RHS.TLI); return *this; diff --git a/llvm/lib/Target/R600/AMDGPUTargetTransformInfo.h b/llvm/lib/Target/R600/AMDGPUTargetTransformInfo.h index 3d3f86e5d0e..4c410330206 100644 --- a/llvm/lib/Target/R600/AMDGPUTargetTransformInfo.h +++ b/llvm/lib/Target/R600/AMDGPUTargetTransformInfo.h @@ -30,35 +30,30 @@ class AMDGPUTTIImpl : public BasicTTIImplBase<AMDGPUTTIImpl> { typedef TargetTransformInfo TTI; friend BaseT; - const AMDGPUTargetMachine *TM; const AMDGPUSubtarget *ST; const AMDGPUTargetLowering *TLI; - const AMDGPUTargetMachine *getTM() const { return TM; } + const AMDGPUSubtarget *getST() const { return ST; } const AMDGPUTargetLowering *getTLI() const { return TLI; } public: explicit AMDGPUTTIImpl(const AMDGPUTargetMachine *TM) - : BaseT(TM), TM(TM), ST(TM->getSubtargetImpl()), - TLI(ST->getTargetLowering()) {} + : BaseT(TM), ST(TM->getSubtargetImpl()), TLI(ST->getTargetLowering()) {} // Provide value semantics. MSVC requires that we spell all of these out. AMDGPUTTIImpl(const AMDGPUTTIImpl &Arg) - : BaseT(static_cast<const BaseT &>(Arg)), TM(Arg.TM), ST(Arg.ST), - TLI(Arg.TLI) {} + : BaseT(static_cast<const BaseT &>(Arg)), ST(Arg.ST), TLI(Arg.TLI) {} AMDGPUTTIImpl(AMDGPUTTIImpl &&Arg) - : BaseT(std::move(static_cast<BaseT &>(Arg))), TM(std::move(Arg.TM)), - ST(std::move(Arg.ST)), TLI(std::move(Arg.TLI)) {} + : BaseT(std::move(static_cast<BaseT &>(Arg))), ST(std::move(Arg.ST)), + TLI(std::move(Arg.TLI)) {} AMDGPUTTIImpl &operator=(const AMDGPUTTIImpl &RHS) { BaseT::operator=(static_cast<const BaseT &>(RHS)); - TM = RHS.TM; ST = RHS.ST; TLI = RHS.TLI; return *this; } AMDGPUTTIImpl &operator=(AMDGPUTTIImpl &&RHS) { BaseT::operator=(std::move(static_cast<BaseT &>(RHS))); - TM = std::move(RHS.TM); ST = std::move(RHS.ST); TLI = std::move(RHS.TLI); return *this; diff --git a/llvm/lib/Target/X86/X86TargetTransformInfo.h b/llvm/lib/Target/X86/X86TargetTransformInfo.h index 57d40581a23..9f0adcfef62 100644 --- a/llvm/lib/Target/X86/X86TargetTransformInfo.h +++ b/llvm/lib/Target/X86/X86TargetTransformInfo.h @@ -30,37 +30,32 @@ class X86TTIImpl : public BasicTTIImplBase<X86TTIImpl> { typedef TargetTransformInfo TTI; friend BaseT; - const X86TargetMachine *TM; const X86Subtarget *ST; const X86TargetLowering *TLI; unsigned getScalarizationOverhead(Type *Ty, bool Insert, bool Extract); - const X86TargetMachine *getTM() const { return TM; } + const X86Subtarget *getST() const { return ST; } const X86TargetLowering *getTLI() const { return TLI; } public: explicit X86TTIImpl(const X86TargetMachine *TM, Function &F) - : BaseT(TM), TM(TM), ST(TM->getSubtargetImpl(F)), - TLI(ST->getTargetLowering()) {} + : BaseT(TM), ST(TM->getSubtargetImpl(F)), TLI(ST->getTargetLowering()) {} // Provide value semantics. MSVC requires that we spell all of these out. X86TTIImpl(const X86TTIImpl &Arg) - : BaseT(static_cast<const BaseT &>(Arg)), TM(Arg.TM), ST(Arg.ST), - TLI(Arg.TLI) {} + : BaseT(static_cast<const BaseT &>(Arg)), ST(Arg.ST), TLI(Arg.TLI) {} X86TTIImpl(X86TTIImpl &&Arg) - : BaseT(std::move(static_cast<BaseT &>(Arg))), TM(std::move(Arg.TM)), - ST(std::move(Arg.ST)), TLI(std::move(Arg.TLI)) {} + : BaseT(std::move(static_cast<BaseT &>(Arg))), ST(std::move(Arg.ST)), + TLI(std::move(Arg.TLI)) {} X86TTIImpl &operator=(const X86TTIImpl &RHS) { BaseT::operator=(static_cast<const BaseT &>(RHS)); - TM = RHS.TM; ST = RHS.ST; TLI = RHS.TLI; return *this; } X86TTIImpl &operator=(X86TTIImpl &&RHS) { BaseT::operator=(std::move(static_cast<BaseT &>(RHS))); - TM = std::move(RHS.TM); ST = std::move(RHS.ST); TLI = std::move(RHS.TLI); return *this; diff --git a/llvm/lib/Target/XCore/XCoreTargetTransformInfo.h b/llvm/lib/Target/XCore/XCoreTargetTransformInfo.h index 8a0c58ffaba..70b47dfa115 100644 --- a/llvm/lib/Target/XCore/XCoreTargetTransformInfo.h +++ b/llvm/lib/Target/XCore/XCoreTargetTransformInfo.h @@ -30,31 +30,31 @@ class XCoreTTIImpl : public BasicTTIImplBase<XCoreTTIImpl> { typedef TargetTransformInfo TTI; friend BaseT; - const XCoreTargetMachine *TM; + const XCoreSubtarget *ST; const XCoreTargetLowering *TLI; - const XCoreTargetMachine *getTM() const { return TM; } + const XCoreSubtarget *getST() const { return ST; } const XCoreTargetLowering *getTLI() const { return TLI; } public: explicit XCoreTTIImpl(const XCoreTargetMachine *TM) - : BaseT(TM), TM(TM), TLI(TM->getSubtargetImpl()->getTargetLowering()) {} + : BaseT(TM), ST(TM->getSubtargetImpl()), TLI(ST->getTargetLowering()) {} // Provide value semantics. MSVC requires that we spell all of these out. XCoreTTIImpl(const XCoreTTIImpl &Arg) - : BaseT(static_cast<const BaseT &>(Arg)), TM(Arg.TM), TLI(Arg.TLI) {} + : BaseT(static_cast<const BaseT &>(Arg)), ST(Arg.ST), TLI(Arg.TLI) {} XCoreTTIImpl(XCoreTTIImpl &&Arg) - : BaseT(std::move(static_cast<BaseT &>(Arg))), TM(std::move(Arg.TM)), + : BaseT(std::move(static_cast<BaseT &>(Arg))), ST(std::move(Arg.ST)), TLI(std::move(Arg.TLI)) {} XCoreTTIImpl &operator=(const XCoreTTIImpl &RHS) { BaseT::operator=(static_cast<const BaseT &>(RHS)); - TM = RHS.TM; + ST = RHS.ST; TLI = RHS.TLI; return *this; } XCoreTTIImpl &operator=(XCoreTTIImpl &&RHS) { BaseT::operator=(std::move(static_cast<BaseT &>(RHS))); - TM = std::move(RHS.TM); + ST = std::move(RHS.ST); TLI = std::move(RHS.TLI); return *this; } |

