[stackprotector] Small Bit of computation hoisting.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188771 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/StackProtector.cpp b/lib/CodeGen/StackProtector.cpp
index 2cd2219..86ca53d 100644
--- a/lib/CodeGen/StackProtector.cpp
+++ b/lib/CodeGen/StackProtector.cpp
@@ -387,7 +387,8 @@
 ///    value. It calls __stack_chk_fail if they differ.
 bool StackProtector::InsertStackProtectors() {
   bool HasPrologue = false;
-  bool SupportsSelectionDAGSP = false;
+  bool SupportsSelectionDAGSP =
+    EnableSelectionDAGSP && !TM->Options.EnableFastISel;
   AllocaInst *AI = 0;           // Place on stack that stores the stack guard.
   Value *StackGuardVar = 0;     // The stack guard variable.
 
@@ -398,12 +399,11 @@
 
     if (!HasPrologue) {
       HasPrologue = true;
-      SupportsSelectionDAGSP = CreatePrologue(F, M, RI, TLI, Trip, AI,
-                                              StackGuardVar);
+      SupportsSelectionDAGSP &= CreatePrologue(F, M, RI, TLI, Trip, AI,
+                                               StackGuardVar);
     }
 
-    if (EnableSelectionDAGSP && !TM->Options.EnableFastISel &&
-        SupportsSelectionDAGSP) {
+    if (SupportsSelectionDAGSP) {
       // Since we have a potential tail call, insert the special stack check
       // intrinsic.
       Instruction *InsertionPt = 0;