OSDN Git Service

Extract a few variables to make 'if' smaller. NFC.
authorRafael Espindola <rafael.espindola@gmail.com>
Wed, 22 Jun 2016 21:56:34 +0000 (21:56 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Wed, 22 Jun 2016 21:56:34 +0000 (21:56 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273497 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/PowerPC/PPCISelLowering.cpp

index 11e53dc..68d1a67 100644 (file)
@@ -4284,13 +4284,14 @@ PrepareCall(SelectionDAG &DAG, SDValue &Callee, SDValue &InFlag, SDValue &Chain,
     // A call to a TLS address is actually an indirect call to a
     // thread-specific pointer.
     unsigned OpFlags = 0;
-    if ((DAG.getTarget().getRelocationModel() != Reloc::Static &&
-         (Subtarget.getTargetTriple().isMacOSX() &&
-          Subtarget.getTargetTriple().isMacOSXVersionLT(10, 5)) &&
-         !G->getGlobal()->isStrongDefinitionForLinker()) ||
-        (Subtarget.isTargetELF() && !isPPC64 &&
-         !G->getGlobal()->hasLocalLinkage() &&
-         DAG.getTarget().getRelocationModel() == Reloc::PIC_)) {
+    Reloc::Model RM = DAG.getTarget().getRelocationModel();
+    const Triple &TargetTriple = Subtarget.getTargetTriple();
+    const GlobalValue *GV = G->getGlobal();
+    if ((RM != Reloc::Static &&
+         (TargetTriple.isMacOSX() && TargetTriple.isMacOSXVersionLT(10, 5)) &&
+         !GV->isStrongDefinitionForLinker()) ||
+        (Subtarget.isTargetELF() && !isPPC64 && !GV->hasLocalLinkage() &&
+         RM == Reloc::PIC_)) {
       // PC-relative references to external symbols should go through $stub,
       // unless we're building with the leopard linker or later, which
       // automatically synthesizes these stubs.