Migrate some of PPC away from the use of bare getSubtarget/getSubtargetImpl.

llvm-svn: 227547
This commit is contained in:
Eric Christopher 2015-01-30 02:11:24 +00:00
parent 065d16bcbe
commit 85806141fd
2 changed files with 10 additions and 10 deletions

View File

@ -230,7 +230,8 @@ bool PPCCTRLoops::mightUseCTR(const Triple &TT, BasicBlock *BB) {
if (!TM)
return true;
const TargetLowering *TLI = TM->getSubtargetImpl()->getTargetLowering();
const TargetLowering *TLI =
TM->getSubtargetImpl(*BB->getParent())->getTargetLowering();
if (Function *F = CI->getCalledFunction()) {
// Most intrinsics don't become function calls, but some might.

View File

@ -85,18 +85,19 @@ typedef struct Address {
class PPCFastISel final : public FastISel {
const TargetMachine &TM;
const PPCSubtarget *PPCSubTarget;
const TargetInstrInfo &TII;
const TargetLowering &TLI;
const PPCSubtarget *PPCSubTarget;
LLVMContext *Context;
public:
explicit PPCFastISel(FunctionLoweringInfo &FuncInfo,
const TargetLibraryInfo *LibInfo)
: FastISel(FuncInfo, LibInfo), TM(FuncInfo.MF->getTarget()),
TII(*TM.getSubtargetImpl()->getInstrInfo()),
TLI(*TM.getSubtargetImpl()->getTargetLowering()),
PPCSubTarget(&TM.getSubtarget<PPCSubtarget>()),
PPCSubTarget(
&static_cast<const PPCSubtarget &>(FuncInfo.MF->getSubtarget())),
TII(*PPCSubTarget->getInstrInfo()),
TLI(*PPCSubTarget->getTargetLowering()),
Context(&FuncInfo.Fn->getContext()) {}
// Backend specific FastISel code.
@ -2298,13 +2299,11 @@ namespace llvm {
// Create the fast instruction selector for PowerPC64 ELF.
FastISel *PPC::createFastISel(FunctionLoweringInfo &FuncInfo,
const TargetLibraryInfo *LibInfo) {
const TargetMachine &TM = FuncInfo.MF->getTarget();
// Only available on 64-bit ELF for now.
const PPCSubtarget *Subtarget = &TM.getSubtarget<PPCSubtarget>();
if (Subtarget->isPPC64() && Subtarget->isSVR4ABI())
const PPCSubtarget &Subtarget =
static_cast<const PPCSubtarget &>(FuncInfo.MF->getSubtarget());
if (Subtarget.isPPC64() && Subtarget.isSVR4ABI())
return new PPCFastISel(FuncInfo, LibInfo);
return nullptr;
}
}