diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2016-06-27 14:19:45 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2016-06-27 14:19:45 +0000 |
commit | 0db11db56012a19d3f0d0ff0aad223a5bc07db05 (patch) | |
tree | 44bf58b0ea0f41c9a99a88376ab51937c62a6097 /llvm/lib | |
parent | 2bad85c14bbf22338f923a7d9682fc53b7f1eee1 (diff) | |
download | bcm5719-llvm-0db11db56012a19d3f0d0ff0aad223a5bc07db05.tar.gz bcm5719-llvm-0db11db56012a19d3f0d0ff0aad223a5bc07db05.zip |
Move isPositionIndependent up to AsmPrinter.
Use it in ppc too.
llvm-svn: 273877
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp | 4 | ||||
-rw-r--r-- | llvm/lib/Target/ARM/ARMAsmPrinter.cpp | 4 | ||||
-rw-r--r-- | llvm/lib/Target/ARM/ARMAsmPrinter.h | 1 | ||||
-rw-r--r-- | llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp | 6 |
4 files changed, 7 insertions, 8 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp index 3f2ef090b86..37099c468cb 100644 --- a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp @@ -124,6 +124,10 @@ AsmPrinter::~AsmPrinter() { } } +bool AsmPrinter::isPositionIndependent() const { + return TM.getRelocationModel() == Reloc::PIC_; +} + /// getFunctionNumber - Return a unique ID for the current function. /// unsigned AsmPrinter::getFunctionNumber() const { diff --git a/llvm/lib/Target/ARM/ARMAsmPrinter.cpp b/llvm/lib/Target/ARM/ARMAsmPrinter.cpp index 72b4c6a932c..3cf405eedb0 100644 --- a/llvm/lib/Target/ARM/ARMAsmPrinter.cpp +++ b/llvm/lib/Target/ARM/ARMAsmPrinter.cpp @@ -614,10 +614,6 @@ static ARMBuildAttrs::CPUArch getArchForCPU(StringRef CPU, return ARMBuildAttrs::v4; } -bool ARMAsmPrinter::isPositionIndependent() const { - return TM.getRelocationModel() == Reloc::PIC_; -} - void ARMAsmPrinter::emitAttributes() { MCTargetStreamer &TS = *OutStreamer->getTargetStreamer(); ARMTargetStreamer &ATS = static_cast<ARMTargetStreamer &>(TS); diff --git a/llvm/lib/Target/ARM/ARMAsmPrinter.h b/llvm/lib/Target/ARM/ARMAsmPrinter.h index d38669a6634..97f5ca0ecbc 100644 --- a/llvm/lib/Target/ARM/ARMAsmPrinter.h +++ b/llvm/lib/Target/ARM/ARMAsmPrinter.h @@ -95,7 +95,6 @@ public: bool lowerOperand(const MachineOperand &MO, MCOperand &MCOp); private: - bool isPositionIndependent() const; // Helpers for EmitStartOfAsmFile() and EmitEndOfAsmFile() void emitAttributes(); diff --git a/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp b/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp index 0b879995d9a..570165b81c9 100644 --- a/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp +++ b/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp @@ -459,7 +459,7 @@ void PPCAsmPrinter::EmitTlsCall(const MachineInstr *MI, "GETtls[ld]ADDR[32] must read GPR3"); if (!Subtarget->isPPC64() && !Subtarget->isDarwin() && - TM.getRelocationModel() == Reloc::PIC_) + isPositionIndependent()) Kind = MCSymbolRefExpr::VK_PLT; const MCSymbolRefExpr *TlsRef = MCSymbolRefExpr::create(TlsGetAddr, Kind, OutContext); @@ -1027,7 +1027,7 @@ void PPCLinuxAsmPrinter::EmitStartOfAsmFile(Module &M) { } if (static_cast<const PPCTargetMachine &>(TM).isPPC64() || - TM.getRelocationModel() != Reloc::PIC_) + !isPositionIndependent()) return AsmPrinter::EmitStartOfAsmFile(M); if (M.getPICLevel() == PICLevel::SmallPIC) @@ -1056,7 +1056,7 @@ void PPCLinuxAsmPrinter::EmitStartOfAsmFile(Module &M) { void PPCLinuxAsmPrinter::EmitFunctionEntryLabel() { // linux/ppc32 - Normal entry label. if (!Subtarget->isPPC64() && - (TM.getRelocationModel() != Reloc::PIC_ || + (!isPositionIndependent() || MF->getFunction()->getParent()->getPICLevel() == PICLevel::SmallPIC)) return AsmPrinter::EmitFunctionEntryLabel(); |