Use isPositionIndependent in a few more places.

I think this converts all the simple cases that really just care about
the generated code being position independent or not. The remaining
uses are a bit more complicated and are checking things like "is this
a library or executable" or "can this symbol be preempted".

llvm-svn: 274055
This commit is contained in:
Rafael Espindola 2016-06-28 20:13:36 +00:00
parent 2012d744f4
commit b1556c42ce
5 changed files with 7 additions and 8 deletions

View File

@ -125,7 +125,7 @@ AsmPrinter::~AsmPrinter() {
}
bool AsmPrinter::isPositionIndependent() const {
return TM.getRelocationModel() == Reloc::PIC_;
return TM.isPositionIndependent();
}
/// getFunctionNumber - Return a unique ID for the current function.

View File

@ -3510,7 +3510,7 @@ bool SelectionDAGLegalize::ExpandNode(SDNode *Node) {
MachinePointerInfo::getJumpTable(DAG.getMachineFunction()), MemVT,
false, false, false, 0);
Addr = LD;
if (TM.getRelocationModel() == Reloc::PIC_) {
if (TM.isPositionIndependent()) {
// For PIC, the sequence is:
// BRIND(load(Jumptable + index) + RelocBase)
// RelocBase can be JumpTable, GOT or some sort of global base.

View File

@ -45,7 +45,7 @@ const char *TargetLowering::getTargetNodeName(unsigned Opcode) const {
}
bool TargetLowering::isPositionIndependent() const {
return getTargetMachine().getRelocationModel() == Reloc::PIC_;
return getTargetMachine().isPositionIndependent();
}
/// Check whether a given call node is in tail position within its function. If

View File

@ -1058,7 +1058,7 @@ bool HexagonFrameLowering::insertCSRSpillsInBlock(MachineBasicBlock &MBB,
const char *SpillFun = getSpillFunctionFor(MaxReg, SK_ToMem,
StkOvrFlowEnabled);
auto &HTM = static_cast<const HexagonTargetMachine&>(MF.getTarget());
bool IsPIC = HTM.getRelocationModel() == Reloc::PIC_;
bool IsPIC = HTM.isPositionIndependent();
// Call spill function.
DebugLoc DL = MI != MBB.end() ? MI->getDebugLoc() : DebugLoc();
@ -1112,7 +1112,7 @@ bool HexagonFrameLowering::insertCSRRestoresInBlock(MachineBasicBlock &MBB,
SpillKind Kind = HasTC ? SK_FromMemTailcall : SK_FromMem;
const char *RestoreFn = getSpillFunctionFor(MaxR, Kind);
auto &HTM = static_cast<const HexagonTargetMachine&>(MF.getTarget());
bool IsPIC = HTM.getRelocationModel() == Reloc::PIC_;
bool IsPIC = HTM.isPositionIndependent();
// Call spill function.
DebugLoc DL = MI != MBB.end() ? MI->getDebugLoc()

View File

@ -260,7 +260,7 @@ BitVector PPCRegisterInfo::getReservedRegs(const MachineFunction &MF) const {
if (TFI->needsFP(MF))
Reserved.set(PPC::R31);
bool IsPositionIndependent = TM.getRelocationModel() == Reloc::PIC_;
bool IsPositionIndependent = TM.isPositionIndependent();
if (hasBasePointer(MF)) {
if (Subtarget.isSVR4ABI() && !TM.isPPC64() && IsPositionIndependent)
Reserved.set(PPC::R29);
@ -934,8 +934,7 @@ unsigned PPCRegisterInfo::getBaseRegister(const MachineFunction &MF) const {
if (TM.isPPC64())
return PPC::X30;
if (Subtarget.isSVR4ABI() &&
TM.getRelocationModel() == Reloc::PIC_)
if (Subtarget.isSVR4ABI() && TM.isPositionIndependent())
return PPC::R29;
return PPC::R30;