This is just a clean-up patch that simplifies the initial-exec TLS logic by
avoiding use of machine operand flags.  No change in observable behavior, so
no new test cases.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170141 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/PowerPC/PPCISelLowering.cpp b/lib/Target/PowerPC/PPCISelLowering.cpp
index 68f1bc6..0748bd5 100644
--- a/lib/Target/PowerPC/PPCISelLowering.cpp
+++ b/lib/Target/PowerPC/PPCISelLowering.cpp
@@ -1351,15 +1351,11 @@
     llvm_unreachable("only local-exec is currently supported for ppc32");
 
   if (Model == TLSModel::InitialExec) {
-    SDValue GOTOffset = DAG.getTargetGlobalAddress(GV, dl, PtrVT, 0,
-                                                   PPCII::MO_GOT_TPREL16_DS);
-    SDValue TPReg = DAG.getTargetGlobalAddress(GV, dl, PtrVT, 0,
-                                               PPCII::MO_TLS);
-    SDValue GOTReg = DAG.getRegister(is64bit ? PPC::X2  : PPC::R2,
-                                     is64bit ? MVT::i64 : MVT::i32);
-    SDValue TPOffset = DAG.getNode(PPCISD::LD_GOT_TPREL, dl, PtrVT,
-                                   GOTOffset, GOTReg);
-    return DAG.getNode(PPCISD::ADD_TLS, dl, PtrVT, TPOffset, TPReg);
+    SDValue TGA = DAG.getTargetGlobalAddress(GV, dl, PtrVT, 0, 0);
+    SDValue GOTReg = DAG.getRegister(PPC::X2, MVT::i64);
+    SDValue TPOffset = DAG.getNode(PPCISD::LD_GOT_TPREL, dl,
+                                   PtrVT, TGA, GOTReg);
+    return DAG.getNode(PPCISD::ADD_TLS, dl, PtrVT, TPOffset, TGA);
   }
 
   if (Model == TLSModel::GeneralDynamic) {