From 7b93acde3206e916752d94288f25ae5f08a4d419 Mon Sep 17 00:00:00 2001 From: Eric Christopher Date: Fri, 13 Feb 2015 22:23:04 +0000 Subject: [PATCH] Stash the TargetMachine on the subtarget so we can access it later. Clean up a subtarget function that has it passed in while we're at it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229164 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/PowerPC/PPCISelLowering.cpp | 2 +- lib/Target/PowerPC/PPCSubtarget.cpp | 5 ++--- lib/Target/PowerPC/PPCSubtarget.h | 5 +++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/Target/PowerPC/PPCISelLowering.cpp b/lib/Target/PowerPC/PPCISelLowering.cpp index d33eacb291e..0765638dce2 100644 --- a/lib/Target/PowerPC/PPCISelLowering.cpp +++ b/lib/Target/PowerPC/PPCISelLowering.cpp @@ -1577,7 +1577,7 @@ static bool GetLabelAccessInfo(const TargetMachine &TM, // If this is a reference to a global value that requires a non-lazy-ptr, make // sure that instruction lowering adds it. - if (GV && Subtarget.hasLazyResolverStub(GV, TM)) { + if (GV && Subtarget.hasLazyResolverStub(GV)) { HiOpFlags |= PPCII::MO_NLP_FLAG; LoOpFlags |= PPCII::MO_NLP_FLAG; diff --git a/lib/Target/PowerPC/PPCSubtarget.cpp b/lib/Target/PowerPC/PPCSubtarget.cpp index e025a3bbcf5..0bda6653386 100644 --- a/lib/Target/PowerPC/PPCSubtarget.cpp +++ b/lib/Target/PowerPC/PPCSubtarget.cpp @@ -51,7 +51,7 @@ PPCSubtarget::PPCSubtarget(const std::string &TT, const std::string &CPU, TargetTriple.getArch() == Triple::ppc64le), TargetABI(PPC_ABI_UNKNOWN), FrameLowering(initializeSubtargetDependencies(CPU, FS)), InstrInfo(*this), - TLInfo(TM, *this), TSInfo(TM.getDataLayout()) {} + TLInfo(TM, *this), TSInfo(TM.getDataLayout()), TM(TM) {} void PPCSubtarget::initializeEnvironment() { StackAlignment = 16; @@ -147,8 +147,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) { /// hasLazyResolverStub - Return true if accesses to the specified global have /// to go through a dyld lazy resolution stub. This means that an extra load /// is required to get the address of the global. -bool PPCSubtarget::hasLazyResolverStub(const GlobalValue *GV, - const TargetMachine &TM) const { +bool PPCSubtarget::hasLazyResolverStub(const GlobalValue *GV) const { // We never have stubs if HasLazyResolverStubs=false or if in static mode. if (!HasLazyResolverStubs || TM.getRelocationModel() == Reloc::Static) return false; diff --git a/lib/Target/PowerPC/PPCSubtarget.h b/lib/Target/PowerPC/PPCSubtarget.h index 7f674a73f05..ed1e9ac674f 100644 --- a/lib/Target/PowerPC/PPCSubtarget.h +++ b/lib/Target/PowerPC/PPCSubtarget.h @@ -124,6 +124,7 @@ protected: PPCInstrInfo InstrInfo; PPCTargetLowering TLInfo; PPCSelectionDAGInfo TSInfo; + const PPCTargetMachine &TM; public: /// This constructor initializes the data members to match that @@ -164,6 +165,7 @@ public: const PPCRegisterInfo *getRegisterInfo() const override { return &getInstrInfo()->getRegisterInfo(); } + const PPCTargetMachine &getTargetMachine() const { return TM; } /// initializeSubtargetDependencies - Initializes using a CPU and feature string /// so that we can use initializer lists for subtarget initialization. @@ -194,8 +196,7 @@ public: /// hasLazyResolverStub - Return true if accesses to the specified global have /// to go through a dyld lazy resolution stub. This means that an extra load /// is required to get the address of the global. - bool hasLazyResolverStub(const GlobalValue *GV, - const TargetMachine &TM) const; + bool hasLazyResolverStub(const GlobalValue *GV) const; // isLittleEndian - True if generating little-endian code bool isLittleEndian() const { return IsLittleEndian; } -- 2.34.1