<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">I already reduced it from ~10,000 lines. The test needs to have enough branches in it to trigger the additive overflow.<div><br></div><div>Michael<br><div><br><div><div>On Aug 9, 2013, at 5:09 PM, Rafael Espíndola <<a href="mailto:rafael.espindola@gmail.com">rafael.espindola@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">This is a really large test. Can't it be reduced?<br><br>On 9 August 2013 19:22, Michael Gottesman <<a href="mailto:mgottesman@apple.com">mgottesman@apple.com</a>> wrote:<br><blockquote type="cite">Author: mgottesman<br>Date: Fri Aug  9 18:22:27 2013<br>New Revision: 188122<br><br>URL: <a href="http://llvm.org/viewvc/llvm-project?rev=188122&view=rev">http://llvm.org/viewvc/llvm-project?rev=188122&view=rev</a><br>Log:<br>[objc-arc] Track if we encountered an additive overflow while computing {TopDown,BottomUp}PathCounts and do nothing if it occurred.<br><br>I fixed the aforementioned problems that came up on some of the linux boxes.<br>Major thanks to Nick Lewycky for his help debugging!<br><br><a href="rdar://14590914">rdar://14590914</a><br><br>Modified:<br>   llvm/trunk/lib/Transforms/ObjCARC/ObjCARCOpts.cpp<br>   llvm/trunk/test/Transforms/ObjCARC/path-overflow.ll<br><br>Modified: llvm/trunk/lib/Transforms/ObjCARC/ObjCARCOpts.cpp<br>URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/ObjCARC/ObjCARCOpts.cpp?rev=188122&r1=188121&r2=188122&view=diff<br>==============================================================================<br>--- llvm/trunk/lib/Transforms/ObjCARC/ObjCARCOpts.cpp (original)<br>+++ llvm/trunk/lib/Transforms/ObjCARC/ObjCARCOpts.cpp Fri Aug  9 18:22:27 2013<br>@@ -674,7 +674,9 @@ namespace {<br>    SmallVector<BasicBlock *, 2> Succs;<br><br>  public:<br>-    BBState() : TopDownPathCount(0), BottomUpPathCount(0) {}<br>+    static const unsigned OverflowOccurredValue;<br>+<br>+    BBState() : TopDownPathCount(0), BottomUpPathCount(0) { }<br><br>    typedef MapTy::iterator ptr_iterator;<br>    typedef MapTy::const_iterator ptr_const_iterator;<br>@@ -745,13 +747,15 @@ namespace {<br>    /// Returns true if overflow occured. Returns false if overflow did not<br>    /// occur.<br>    bool GetAllPathCountWithOverflow(unsigned &PathCount) const {<br>-      assert(TopDownPathCount != 0);<br>-      assert(BottomUpPathCount != 0);<br>+      if (TopDownPathCount == OverflowOccurredValue ||<br>+          BottomUpPathCount == OverflowOccurredValue)<br>+        return true;<br>      unsigned long long Product =<br>        (unsigned long long)TopDownPathCount*BottomUpPathCount;<br>-      PathCount = Product;<br>-      // Overflow occured if any of the upper bits of Product are set.<br>-      return Product >> 32;<br>+      // Overflow occured if any of the upper bits of Product are set or if all<br>+      // the lower bits of Product are all set.<br>+      return (Product >> 32) ||<br>+             ((PathCount = Product) == OverflowOccurredValue);<br>    }<br><br>    // Specialized CFG utilities.<br>@@ -766,6 +770,8 @@ namespace {<br><br>    bool isExit() const { return Succs.empty(); }<br>  };<br>+<br>+  const unsigned BBState::OverflowOccurredValue = 0xffffffff;<br>}<br><br>void BBState::InitFromPred(const BBState &Other) {<br>@@ -781,13 +787,25 @@ void BBState::InitFromSucc(const BBState<br>/// The top-down traversal uses this to merge information about predecessors to<br>/// form the initial state for a new block.<br>void BBState::MergePred(const BBState &Other) {<br>+  if (TopDownPathCount == OverflowOccurredValue)<br>+    return;<br>+<br>  // Other.TopDownPathCount can be 0, in which case it is either dead or a<br>  // loop backedge. Loop backedges are special.<br>  TopDownPathCount += Other.TopDownPathCount;<br><br>+  // In order to be consistent, we clear the top down pointers when by adding<br>+  // TopDownPathCount becomes OverflowOccurredValue even though "true" overflow<br>+  // has not occured.<br>+  if (TopDownPathCount == OverflowOccurredValue) {<br>+    clearTopDownPointers();<br>+    return;<br>+  }<br>+<br>  // Check for overflow. If we have overflow, fall back to conservative<br>  // behavior.<br>  if (TopDownPathCount < Other.TopDownPathCount) {<br>+    TopDownPathCount = OverflowOccurredValue;<br>    clearTopDownPointers();<br>    return;<br>  }<br>@@ -813,13 +831,25 @@ void BBState::MergePred(const BBState &O<br>/// The bottom-up traversal uses this to merge information about successors to<br>/// form the initial state for a new block.<br>void BBState::MergeSucc(const BBState &Other) {<br>+  if (BottomUpPathCount == OverflowOccurredValue)<br>+    return;<br>+<br>  // Other.BottomUpPathCount can be 0, in which case it is either dead or a<br>  // loop backedge. Loop backedges are special.<br>  BottomUpPathCount += Other.BottomUpPathCount;<br><br>+  // In order to be consistent, we clear the top down pointers when by adding<br>+  // BottomUpPathCount becomes OverflowOccurredValue even though "true" overflow<br>+  // has not occured.<br>+  if (BottomUpPathCount == OverflowOccurredValue) {<br>+    clearBottomUpPointers();<br>+    return;<br>+  }<br>+<br>  // Check for overflow. If we have overflow, fall back to conservative<br>  // behavior.<br>  if (BottomUpPathCount < Other.BottomUpPathCount) {<br>+    BottomUpPathCount = OverflowOccurredValue;<br>    clearBottomUpPointers();<br>    return;<br>  }<br>@@ -2526,9 +2556,12 @@ ObjCARCOpt::ConnectTDBUTraversals(DenseM<br>          // If we overflow when we compute the path count, don't remove/move<br>          // anything.<br>          const BBState &NRRBBState = BBStates[NewRetainRelease->getParent()];<br>-          unsigned PathCount;<br>+          unsigned PathCount = BBState::OverflowOccurredValue;<br>          if (NRRBBState.GetAllPathCountWithOverflow(PathCount))<br>            return false;<br>+          assert(PathCount != BBState::OverflowOccurredValue &&<br>+                 "PathCount at this point can not be "<br>+                 "OverflowOccurredValue.");<br>          OldDelta -= PathCount;<br><br>          // Merge the ReleaseMetadata and IsTailCallRelease values.<br>@@ -2558,8 +2591,12 @@ ObjCARCOpt::ConnectTDBUTraversals(DenseM<br>                // If we overflow when we compute the path count, don't<br>                // remove/move anything.<br>                const BBState &RIPBBState = BBStates[RIP->getParent()];<br>+                PathCount = BBState::OverflowOccurredValue;<br>                if (RIPBBState.GetAllPathCountWithOverflow(PathCount))<br>                  return false;<br>+                assert(PathCount != BBState::OverflowOccurredValue &&<br>+                       "PathCount at this point can not be "<br>+                       "OverflowOccurredValue.");<br>                NewDelta -= PathCount;<br>              }<br>            }<br>@@ -2595,9 +2632,12 @@ ObjCARCOpt::ConnectTDBUTraversals(DenseM<br>          // If we overflow when we compute the path count, don't remove/move<br>          // anything.<br>          const BBState &NRRBBState = BBStates[NewReleaseRetain->getParent()];<br>-          unsigned PathCount;<br>+          unsigned PathCount = BBState::OverflowOccurredValue;<br>          if (NRRBBState.GetAllPathCountWithOverflow(PathCount))<br>            return false;<br>+          assert(PathCount != BBState::OverflowOccurredValue &&<br>+                 "PathCount at this point can not be "<br>+                 "OverflowOccurredValue.");<br>          OldDelta += PathCount;<br>          OldCount += PathCount;<br><br>@@ -2612,8 +2652,13 @@ ObjCARCOpt::ConnectTDBUTraversals(DenseM<br>                // If we overflow when we compute the path count, don't<br>                // remove/move anything.<br>                const BBState &RIPBBState = BBStates[RIP->getParent()];<br>+<br>+                PathCount = BBState::OverflowOccurredValue;<br>                if (RIPBBState.GetAllPathCountWithOverflow(PathCount))<br>                  return false;<br>+                assert(PathCount != BBState::OverflowOccurredValue &&<br>+                       "PathCount at this point can not be "<br>+                       "OverflowOccurredValue.");<br>                NewDelta += PathCount;<br>                NewCount += PathCount;<br>              }<br><br>Modified: llvm/trunk/test/Transforms/ObjCARC/path-overflow.ll<br>URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/ObjCARC/path-overflow.ll?rev=188122&r1=188121&r2=188122&view=diff<br>==============================================================================<br>--- llvm/trunk/test/Transforms/ObjCARC/path-overflow.ll (original)<br>+++ llvm/trunk/test/Transforms/ObjCARC/path-overflow.ll Fri Aug  9 18:22:27 2013<br>@@ -1,6 +1,7 @@<br>; RUN: opt -objc-arc -S < %s<br>; rdar://12277446<br>; rdar://12480535<br>+; rdar://14590914<br><br>; The total number of paths grows exponentially with the number of branches, and a<br>; computation of this number can overflow any reasonable fixed-sized<br>@@ -10,14 +11,20 @@<br>target datalayout = "e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:32:64-v128:32:128-a0:0:32-n32-S32"<br>target triple = "thumbv7-apple-ios5.0.0"<br><br>-%struct.NSConstantString.11.33.55.77.99.121.143.332.1130.1340.2768 = type { i32*, i32, i8*, i32 }<br>+%struct.NSConstantString = type { i32*, i32, i8*, i32 }<br>+%struct.CGPoint = type { float, float }<br><br>-@_unnamed_cfstring_591 = external constant %struct.NSConstantString.11.33.55.77.99.121.143.332.1130.1340.2768, section "__DATA,__cfstring"<br>+@_unnamed_cfstring = external constant %struct.NSConstantString, section "__DATA,__cfstring"<br><br>declare i8* @objc_retain(i8*) nonlazybind<br>declare i8* @objc_retainAutoreleasedReturnValue(i8*) nonlazybind<br>declare void @objc_release(i8*) nonlazybind<br>declare i8* @returner()<br>+declare i8* @objc_msgSend(i8*, i8*, ...) nonlazybind<br>+declare void @NSLog(i8*, ...)<br>+declare void @objc_msgSend_stret(i8*, i8*, ...)<br>+declare i32 @__gxx_personality_sj0(...)<br>+<br><br>define hidden void @test1() {<br>entry:<br>@@ -30,7 +37,7 @@ msgSend.nullinit:<br>  br label %msgSend.cont<br><br>msgSend.cont:                                     ; preds = %msgSend.nullinit, %msgSend.call<br>-  %0 = bitcast %struct.NSConstantString.11.33.55.77.99.121.143.332.1130.1340.2768* @_unnamed_cfstring_591 to i8*<br>+  %0 = bitcast %struct.NSConstantString* @_unnamed_cfstring to i8*<br>  %1 = call i8* @objc_retain(i8* %0) nounwind<br>  br i1 undef, label %msgSend.nullinit33, label %msgSend.call32<br><br>@@ -853,5 +860,1058 @@ bb222:<br>  ret void<br>}<br><br>+; Function Attrs: ssp<br>+define void @test3() #1 {<br>+entry:<br>+  %call2 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont unwind label %lpad<br>+<br>+invoke.cont:                                      ; preds = %entry<br>+  %call5 = invoke signext i8 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8 (i8*, i8*)*)(i8* undef, i8* undef)<br>+          to label %invoke.cont4 unwind label %lpad3<br>+<br>+invoke.cont4:                                     ; preds = %invoke.cont<br>+  br i1 undef, label %land.end, label %land.rhs<br>+<br>+land.rhs:                                         ; preds = %invoke.cont4<br>+  %call7 = invoke i32 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i32 (i8*, i8*)*)(i8* undef, i8* undef)<br>+          to label %land.end unwind label %lpad3<br>+<br>+land.end:                                         ; preds = %land.rhs, %invoke.cont4<br>+  invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont.i unwind label %lpad.i<br>+<br>+invoke.cont.i:                                    ; preds = %land.end<br>+  br i1 undef, label %invoke.cont8, label %if.then.i<br>+<br>+if.then.i:                                        ; preds = %invoke.cont.i<br>+  br label %invoke.cont8<br>+<br>+lpad.i:                                           ; preds = %land.end<br>+  %tmp13 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+invoke.cont8:                                     ; preds = %if.then.i, %invoke.cont.i<br>+  %call18 = invoke i8* (i8*, i8*, i8*, ...)* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*, ...)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef)<br>+          to label %invoke.cont17 unwind label %lpad16<br>+<br>+invoke.cont17:                                    ; preds = %invoke.cont8<br>+  %call22 = invoke signext i8 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8 (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont21 unwind label %lpad20<br>+<br>+invoke.cont21:                                    ; preds = %invoke.cont17<br>+  invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont.i1980 unwind label %lpad.i1982<br>+<br>+invoke.cont.i1980:                                ; preds = %invoke.cont21<br>+  br i1 undef, label %invoke.cont24, label %if.then.i1981<br>+<br>+if.then.i1981:                                    ; preds = %invoke.cont.i1980<br>+  br label %invoke.cont24<br>+<br>+lpad.i1982:                                       ; preds = %invoke.cont21<br>+  %tmp28 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+invoke.cont24:                                    ; preds = %if.then.i1981, %invoke.cont.i1980<br>+  %call37 = invoke signext i8 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8 (i8*, i8*)*)(i8* undef, i8* undef)<br>+          to label %invoke.cont36 unwind label %lpad35<br>+<br>+invoke.cont36:                                    ; preds = %invoke.cont24<br>+  br i1 undef, label %land.end43, label %land.rhs39<br>+<br>+land.rhs39:                                       ; preds = %invoke.cont36<br>+  %call41 = invoke signext i8 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8 (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %land.end43 unwind label %lpad35<br>+<br>+land.end43:                                       ; preds = %land.rhs39, %invoke.cont36<br>+  invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont.i1986 unwind label %lpad.i1988<br>+<br>+invoke.cont.i1986:                                ; preds = %land.end43<br>+  br i1 undef, label %invoke.cont44, label %if.then.i1987<br>+<br>+if.then.i1987:                                    ; preds = %invoke.cont.i1986<br>+  br label %invoke.cont44<br>+<br>+lpad.i1988:                                       ; preds = %land.end43<br>+  %tmp42 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+invoke.cont44:                                    ; preds = %if.then.i1987, %invoke.cont.i1986<br>+  %call53 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont52 unwind label %lpad51<br>+<br>+invoke.cont52:                                    ; preds = %invoke.cont44<br>+  br i1 undef, label %land.end70, label %land.rhs58<br>+<br>+land.rhs58:                                       ; preds = %invoke.cont52<br>+  %call63 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* undef, i8* undef, i32 42)<br>+          to label %invoke.cont62 unwind label %lpad61<br>+<br>+invoke.cont62:                                    ; preds = %land.rhs58<br>+  %call68 = invoke signext i8 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8 (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* undef)<br>+          to label %land.end70 unwind label %lpad66.body.thread<br>+<br>+land.end70:                                       ; preds = %invoke.cont62, %invoke.cont52<br>+  invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont.i1992 unwind label %lpad66.body<br>+<br>+invoke.cont.i1992:                                ; preds = %land.end70<br>+  br i1 undef, label %invoke.cont71, label %if.then.i1993<br>+<br>+if.then.i1993:                                    ; preds = %invoke.cont.i1992<br>+  br label %invoke.cont71<br>+<br>+invoke.cont71:                                    ; preds = %if.then.i1993, %invoke.cont.i1992<br>+  invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont.i1998 unwind label %lpad.i2000<br>+<br>+invoke.cont.i1998:                                ; preds = %invoke.cont71<br>+  br i1 undef, label %invoke.cont91, label %if.then.i1999<br>+<br>+if.then.i1999:                                    ; preds = %invoke.cont.i1998<br>+  br label %invoke.cont91<br>+<br>+lpad.i2000:                                       ; preds = %invoke.cont71<br>+  %tmp74 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  br label %ehcleanup102<br>+<br>+invoke.cont91:                                    ; preds = %if.then.i1999, %invoke.cont.i1998<br>+  %call96 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*)*)(i8* undef, i8* undef)<br>+          to label %invoke.cont95 unwind label %lpad94<br>+<br>+invoke.cont95:                                    ; preds = %invoke.cont91<br>+  %call98 = invoke signext i8 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8 (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* %call96)<br>+          to label %invoke.cont97 unwind label %lpad94<br>+<br>+invoke.cont97:                                    ; preds = %invoke.cont95<br>+  invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont.i2004 unwind label %lpad.i2006<br>+<br>+invoke.cont.i2004:                                ; preds = %invoke.cont97<br>+  br i1 undef, label %invoke.cont100, label %if.then.i2005<br>+<br>+if.then.i2005:                                    ; preds = %invoke.cont.i2004<br>+  br label %invoke.cont100<br>+<br>+lpad.i2006:                                       ; preds = %invoke.cont97<br>+  %tmp82 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+invoke.cont100:                                   ; preds = %if.then.i2005, %invoke.cont.i2004<br>+  invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont110 unwind label %lpad109<br>+<br>+invoke.cont110:                                   ; preds = %invoke.cont100<br>+  invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont.i2010 unwind label %lpad.i2012<br>+<br>+invoke.cont.i2010:                                ; preds = %invoke.cont110<br>+  br i1 undef, label %invoke.cont117, label %if.then.i2011<br>+<br>+if.then.i2011:                                    ; preds = %invoke.cont.i2010<br>+  br label %invoke.cont117<br>+<br>+lpad.i2012:                                       ; preds = %invoke.cont110<br>+  %tmp98 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+invoke.cont117:                                   ; preds = %if.then.i2011, %invoke.cont.i2010<br>+  invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont.i2022 unwind label %lpad156.body<br>+<br>+lpad:                                             ; preds = %entry<br>+  %tmp118 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  br label %ehcleanup<br>+<br>+lpad3:                                            ; preds = %land.rhs, %invoke.cont<br>+  %tmp119 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  br label %ehcleanup<br>+<br>+ehcleanup:                                        ; preds = %lpad3, %lpad<br>+  unreachable<br>+<br>+lpad16:                                           ; preds = %invoke.cont8<br>+  %tmp121 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  br label %ehcleanup26<br>+<br>+lpad20:                                           ; preds = %invoke.cont17<br>+  %tmp122 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  br label %ehcleanup26<br>+<br>+ehcleanup26:                                      ; preds = %lpad20, %lpad16<br>+  unreachable<br>+<br>+lpad35:                                           ; preds = %land.rhs39, %invoke.cont24<br>+  %tmp124 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+lpad51:                                           ; preds = %invoke.cont44<br>+  %tmp125 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+lpad61:                                           ; preds = %land.rhs58<br>+  %tmp127 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+lpad66.body.thread:                               ; preds = %invoke.cont62<br>+  %tmp128 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+lpad66.body:                                      ; preds = %land.end70<br>+  %tmp129 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+lpad94:                                           ; preds = %invoke.cont95, %invoke.cont91<br>+  %tmp133 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  br label %ehcleanup102<br>+<br>+ehcleanup102:                                     ; preds = %lpad94, %lpad.i2000<br>+  unreachable<br>+<br>+lpad109:                                          ; preds = %invoke.cont100<br>+  %tmp134 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+invoke.cont.i2022:                                ; preds = %invoke.cont117<br>+  br i1 undef, label %invoke.cont157, label %if.then.i2023<br>+<br>+if.then.i2023:                                    ; preds = %invoke.cont.i2022<br>+  br label %invoke.cont157<br>+<br>+invoke.cont157:                                   ; preds = %if.then.i2023, %invoke.cont.i2022<br>+  invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont.i2028 unwind label %lpad164.body<br>+<br>+invoke.cont.i2028:                                ; preds = %invoke.cont157<br>+  br i1 undef, label %invoke.cont165, label %if.then.i2029<br>+<br>+if.then.i2029:                                    ; preds = %invoke.cont.i2028<br>+  br label %invoke.cont165<br>+<br>+invoke.cont165:                                   ; preds = %if.then.i2029, %invoke.cont.i2028<br>+  invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, void (i8*, i8*)*)*)(i8* undef, i8* undef, void (i8*, i8*)* undef)<br>+          to label %invoke.cont184 unwind label %lpad183<br>+<br>+invoke.cont184:                                   ; preds = %invoke.cont165<br>+  %call186 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont185 unwind label %lpad183<br>+<br>+invoke.cont185:                                   ; preds = %invoke.cont184<br>+  invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont.i2034 unwind label %lpad.i2036<br>+<br>+invoke.cont.i2034:                                ; preds = %invoke.cont185<br>+  br i1 undef, label %invoke.cont190, label %if.then.i2035<br>+<br>+if.then.i2035:                                    ; preds = %invoke.cont.i2034<br>+  br label %invoke.cont190<br>+<br>+lpad.i2036:                                       ; preds = %invoke.cont185<br>+  %tmp168 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  br label %lpad183.body<br>+<br>+invoke.cont190:                                   ; preds = %if.then.i2035, %invoke.cont.i2034<br>+  invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont197 unwind label %lpad196<br>+<br>+invoke.cont197:                                   ; preds = %invoke.cont190<br>+  %call202 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont201 unwind label %lpad200<br>+<br>+invoke.cont201:                                   ; preds = %invoke.cont197<br>+  %call205 = invoke signext i8 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8 (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont204 unwind label %lpad203<br>+<br>+invoke.cont204:                                   ; preds = %invoke.cont201<br>+  invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont.i2040 unwind label %lpad.i2042<br>+<br>+invoke.cont.i2040:                                ; preds = %invoke.cont204<br>+  br i1 undef, label %invoke.cont207, label %if.then.i2041<br>+<br>+if.then.i2041:                                    ; preds = %invoke.cont.i2040<br>+  br label %invoke.cont207<br>+<br>+lpad.i2042:                                       ; preds = %invoke.cont204<br>+  %tmp181 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+invoke.cont207:                                   ; preds = %if.then.i2041, %invoke.cont.i2040<br>+  %call209 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*)*)(i8* undef, i8* undef)<br>+          to label %invoke.cont208 unwind label %lpad203<br>+<br>+invoke.cont208:                                   ; preds = %invoke.cont207<br>+  invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont.i2046 unwind label %lpad212.body<br>+<br>+invoke.cont.i2046:                                ; preds = %invoke.cont208<br>+  br i1 undef, label %invoke.cont213, label %if.then.i2047<br>+<br>+if.then.i2047:                                    ; preds = %invoke.cont.i2046<br>+  br label %invoke.cont213<br>+<br>+invoke.cont213:                                   ; preds = %if.then.i2047, %invoke.cont.i2046<br>+  invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont221 unwind label %lpad220<br>+<br>+invoke.cont221:                                   ; preds = %invoke.cont213<br>+  %call229 = invoke signext i8 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8 (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont228 unwind label %lpad227<br>+<br>+invoke.cont228:                                   ; preds = %invoke.cont221<br>+  invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont.i2052 unwind label %lpad.i2054<br>+<br>+invoke.cont.i2052:                                ; preds = %invoke.cont228<br>+  br i1 undef, label %invoke.cont231, label %if.then.i2053<br>+<br>+if.then.i2053:                                    ; preds = %invoke.cont.i2052<br>+  br label %invoke.cont231<br>+<br>+lpad.i2054:                                       ; preds = %invoke.cont228<br>+  %tmp198 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+invoke.cont231:                                   ; preds = %if.then.i2053, %invoke.cont.i2052<br>+  %call233 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*)*)(i8* undef, i8* undef)<br>+          to label %invoke.cont232 unwind label %lpad227<br>+<br>+invoke.cont232:                                   ; preds = %invoke.cont231<br>+  invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont.i2058 unwind label %lpad236.body<br>+<br>+invoke.cont.i2058:                                ; preds = %invoke.cont232<br>+  br i1 undef, label %invoke.cont237, label %if.then.i2059<br>+<br>+if.then.i2059:                                    ; preds = %invoke.cont.i2058<br>+  br label %invoke.cont237<br>+<br>+invoke.cont237:                                   ; preds = %if.then.i2059, %invoke.cont.i2058<br>+  %call246 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont245 unwind label %lpad244<br>+<br>+invoke.cont245:                                   ; preds = %invoke.cont237<br>+  %call248 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* undef, i8* undef, i32 13)<br>+          to label %invoke.cont247 unwind label %lpad244<br>+<br>+invoke.cont247:                                   ; preds = %invoke.cont245<br>+  %call251 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* undef, i8* undef, i32 2)<br>+          to label %invoke.cont250 unwind label %lpad249<br>+<br>+invoke.cont250:                                   ; preds = %invoke.cont247<br>+  %call254 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* undef, i8* undef, i32 7)<br>+          to label %invoke.cont253 unwind label %lpad252<br>+<br>+invoke.cont253:                                   ; preds = %invoke.cont250<br>+  %call257 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8**, i32)*)(i8* undef, i8* undef, i8** undef, i32 3)<br>+          to label %invoke.cont256 unwind label %lpad255<br>+<br>+invoke.cont256:                                   ; preds = %invoke.cont253<br>+  %call260 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* undef, i8* undef)<br>+          to label %invoke.cont259 unwind label %lpad258<br>+<br>+invoke.cont259:                                   ; preds = %invoke.cont256<br>+  %call267 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont266 unwind label %lpad265<br>+<br>+invoke.cont266:                                   ; preds = %invoke.cont259<br>+  %call275 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* undef)<br>+          to label %invoke.cont274 unwind label %lpad273<br>+<br>+invoke.cont274:                                   ; preds = %invoke.cont266<br>+  %call279 = invoke i32 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i32 (i8*, i8*)*)(i8* undef, i8* undef)<br>+          to label %invoke.cont278 unwind label %lpad277<br>+<br>+invoke.cont278:                                   ; preds = %invoke.cont274<br>+  invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont.i2064 unwind label %lpad.i2066<br>+<br>+invoke.cont.i2064:                                ; preds = %invoke.cont278<br>+  br i1 undef, label %invoke.cont281, label %if.then.i2065<br>+<br>+if.then.i2065:                                    ; preds = %invoke.cont.i2064<br>+  br label %invoke.cont281<br>+<br>+lpad.i2066:                                       ; preds = %invoke.cont278<br>+  %tmp253 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+invoke.cont281:                                   ; preds = %if.then.i2065, %invoke.cont.i2064<br>+  %call291 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont290 unwind label %lpad289<br>+<br>+invoke.cont290:                                   ; preds = %invoke.cont281<br>+  %call303 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* undef, i8* undef, i32 8)<br>+          to label %invoke.cont302 unwind label %lpad301<br>+<br>+invoke.cont302:                                   ; preds = %invoke.cont290<br>+  %call310 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, double)*)(i8* undef, i8* undef, double 5.000000e-01)<br>+          to label %invoke.cont309 unwind label %lpad308<br>+<br>+invoke.cont309:                                   ; preds = %invoke.cont302<br>+  %call313 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* undef, i8* undef, i32 42)<br>+          to label %invoke.cont312 unwind label %lpad311<br>+<br>+invoke.cont312:                                   ; preds = %invoke.cont309<br>+  %call316 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8**, i8**, i32)*)(i8* undef, i8* undef, i8** undef, i8** undef, i32 2)<br>+          to label %invoke.cont315 unwind label %lpad314<br>+<br>+invoke.cont315:                                   ; preds = %invoke.cont312<br>+  %call322 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* undef)<br>+          to label %invoke.cont321 unwind label %lpad320<br>+<br>+invoke.cont321:                                   ; preds = %invoke.cont315<br>+  br i1 undef, label %land.end344, label %land.rhs335<br>+<br>+land.rhs335:                                      ; preds = %invoke.cont321<br>+  %call342 = invoke signext i8 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8 (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %land.end344 unwind label %lpad340.body.thread<br>+<br>+land.end344:                                      ; preds = %land.rhs335, %invoke.cont321<br>+  invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont.i2070 unwind label %lpad340.body<br>+<br>+invoke.cont.i2070:                                ; preds = %land.end344<br>+  br i1 undef, label %invoke.cont345, label %if.then.i2071<br>+<br>+if.then.i2071:                                    ; preds = %invoke.cont.i2070<br>+  br label %invoke.cont345<br>+<br>+invoke.cont345:                                   ; preds = %if.then.i2071, %invoke.cont.i2070<br>+  %call362 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* undef)<br>+          to label %invoke.cont361 unwind label %lpad360<br>+<br>+invoke.cont361:                                   ; preds = %invoke.cont345<br>+  %call365 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont364 unwind label %lpad363<br>+<br>+invoke.cont364:                                   ; preds = %invoke.cont361<br>+  %call371 = invoke i32 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i32 (i8*, i8*)*)(i8* undef, i8* undef)<br>+          to label %invoke.cont370 unwind label %lpad369<br>+<br>+invoke.cont370:                                   ; preds = %invoke.cont364<br>+  invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont.i2076 unwind label %lpad.i2078<br>+<br>+invoke.cont.i2076:                                ; preds = %invoke.cont370<br>+  br i1 undef, label %invoke.cont373, label %if.then.i2077<br>+<br>+if.then.i2077:                                    ; preds = %invoke.cont.i2076<br>+  br label %invoke.cont373<br>+<br>+lpad.i2078:                                       ; preds = %invoke.cont370<br>+  %tmp340 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+invoke.cont373:                                   ; preds = %if.then.i2077, %invoke.cont.i2076<br>+  %call377 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32, i8*)*)(i8* undef, i8* undef, i32 42, i8* undef)<br>+          to label %invoke.cont376 unwind label %lpad363<br>+<br>+invoke.cont376:                                   ; preds = %invoke.cont373<br>+  invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, i8*, i32)*)(i8* undef, i8* undef, i8* undef, i32 5)<br>+          to label %invoke.cont382 unwind label %lpad381<br>+<br>+invoke.cont382:                                   ; preds = %invoke.cont376<br>+  %call384 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont383 unwind label %lpad381<br>+<br>+invoke.cont383:                                   ; preds = %invoke.cont382<br>+  invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont.i2082 unwind label %lpad.i2084<br>+<br>+invoke.cont.i2082:                                ; preds = %invoke.cont383<br>+  br i1 undef, label %invoke.cont392, label %if.then.i2083<br>+<br>+if.then.i2083:                                    ; preds = %invoke.cont.i2082<br>+  br label %invoke.cont392<br>+<br>+lpad.i2084:                                       ; preds = %invoke.cont383<br>+  %tmp360 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+invoke.cont392:                                   ; preds = %if.then.i2083, %invoke.cont.i2082<br>+  invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, i8*, i32)*)(i8* undef, i8* undef, i8* undef, i32 -2)<br>+          to label %invoke.cont395 unwind label %lpad381<br>+<br>+invoke.cont395:                                   ; preds = %invoke.cont392<br>+  %call397 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont396 unwind label %lpad381<br>+<br>+invoke.cont396:                                   ; preds = %invoke.cont395<br>+  %call400 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*)*)(i8* undef, i8* undef)<br>+          to label %invoke.cont399 unwind label %lpad398<br>+<br>+invoke.cont399:                                   ; preds = %invoke.cont396<br>+  %call403 = invoke i32 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i32 (i8*, i8*)*)(i8* undef, i8* undef)<br>+          to label %invoke.cont402 unwind label %lpad401<br>+<br>+invoke.cont402:                                   ; preds = %invoke.cont399<br>+  invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont.i2088 unwind label %lpad.i2090<br>+<br>+invoke.cont.i2088:                                ; preds = %invoke.cont402<br>+  br i1 undef, label %invoke.cont405, label %if.then.i2089<br>+<br>+if.then.i2089:                                    ; preds = %invoke.cont.i2088<br>+  br label %invoke.cont405<br>+<br>+lpad.i2090:                                       ; preds = %invoke.cont402<br>+  %tmp370 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+invoke.cont405:                                   ; preds = %if.then.i2089, %invoke.cont.i2088<br>+  invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, i8*, i32)*)(i8* undef, i8* undef, i8* undef, i32 -1)<br>+          to label %invoke.cont408 unwind label %lpad381<br>+<br>+invoke.cont408:                                   ; preds = %invoke.cont405<br>+  %call410 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont409 unwind label %lpad381<br>+<br>+invoke.cont409:                                   ; preds = %invoke.cont408<br>+  %call413 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*)*)(i8* undef, i8* undef)<br>+          to label %invoke.cont412 unwind label %lpad411<br>+<br>+invoke.cont412:                                   ; preds = %invoke.cont409<br>+  invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont.i2094 unwind label %lpad.i2096<br>+<br>+invoke.cont.i2094:                                ; preds = %invoke.cont412<br>+  br i1 undef, label %invoke.cont418, label %if.then.i2095<br>+<br>+if.then.i2095:                                    ; preds = %invoke.cont.i2094<br>+  br label %invoke.cont418<br>+<br>+lpad.i2096:                                       ; preds = %invoke.cont412<br>+  %tmp380 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+invoke.cont418:                                   ; preds = %if.then.i2095, %invoke.cont.i2094<br>+  invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, i8*, i32)*)(i8* undef, i8* undef, i8* undef, i32 0)<br>+          to label %invoke.cont422 unwind label %lpad381<br>+<br>+invoke.cont422:                                   ; preds = %invoke.cont418<br>+  %call424 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont423 unwind label %lpad381<br>+<br>+invoke.cont423:                                   ; preds = %invoke.cont422<br>+  %call427 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*)*)(i8* undef, i8* undef)<br>+          to label %invoke.cont426 unwind label %lpad425<br>+<br>+invoke.cont426:                                   ; preds = %invoke.cont423<br>+  %call430 = invoke i32 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i32 (i8*, i8*)*)(i8* undef, i8* undef)<br>+          to label %invoke.cont429 unwind label %lpad428<br>+<br>+invoke.cont429:                                   ; preds = %invoke.cont426<br>+  invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont.i2100 unwind label %lpad.i2102<br>+<br>+invoke.cont.i2100:                                ; preds = %invoke.cont429<br>+  br i1 undef, label %invoke.cont432, label %if.then.i2101<br>+<br>+if.then.i2101:                                    ; preds = %invoke.cont.i2100<br>+  br label %invoke.cont432<br>+<br>+lpad.i2102:                                       ; preds = %invoke.cont429<br>+  %tmp390 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+invoke.cont432:                                   ; preds = %if.then.i2101, %invoke.cont.i2100<br>+  %call436 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* undef, i8* undef, i32 0)<br>+          to label %invoke.cont435 unwind label %lpad381<br>+<br>+invoke.cont435:                                   ; preds = %invoke.cont432<br>+  invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont.i2106 unwind label %lpad.i2108<br>+<br>+invoke.cont.i2106:                                ; preds = %invoke.cont435<br>+  %call444 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* undef, i8* undef, i32 5)<br>+          to label %invoke.cont443 unwind label %lpad381<br>+<br>+lpad.i2108:                                       ; preds = %invoke.cont435<br>+  %tmp396 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+invoke.cont443:                                   ; preds = %invoke.cont.i2106<br>+  invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont.i2112 unwind label %lpad.i2114<br>+<br>+invoke.cont.i2112:                                ; preds = %invoke.cont443<br>+  br i1 undef, label %invoke.cont449, label %if.then.i2113<br>+<br>+if.then.i2113:                                    ; preds = %invoke.cont.i2112<br>+  br label %invoke.cont449<br>+<br>+lpad.i2114:                                       ; preds = %invoke.cont443<br>+  %tmp402 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+invoke.cont449:                                   ; preds = %if.then.i2113, %invoke.cont.i2112<br>+  %call453 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* undef, i8* undef, i32 -2)<br>+          to label %invoke.cont452 unwind label %lpad381<br>+<br>+invoke.cont452:                                   ; preds = %invoke.cont449<br>+  %call456 = invoke i32 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i32 (i8*, i8*)*)(i8* undef, i8* undef)<br>+          to label %invoke.cont455 unwind label %lpad454<br>+<br>+invoke.cont455:                                   ; preds = %invoke.cont452<br>+  invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont.i2118 unwind label %lpad.i2120<br>+<br>+invoke.cont.i2118:                                ; preds = %invoke.cont455<br>+  br i1 undef, label %invoke.cont458, label %if.then.i2119<br>+<br>+if.then.i2119:                                    ; preds = %invoke.cont.i2118<br>+  br label %invoke.cont458<br>+<br>+lpad.i2120:                                       ; preds = %invoke.cont455<br>+  %tmp408 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+invoke.cont458:                                   ; preds = %if.then.i2119, %invoke.cont.i2118<br>+  %call461 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* undef, i8* undef, i32 -1)<br>+          to label %invoke.cont460 unwind label %lpad381<br>+<br>+invoke.cont460:                                   ; preds = %invoke.cont458<br>+  invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont.i2124 unwind label %lpad.i2126<br>+<br>+invoke.cont.i2124:                                ; preds = %invoke.cont460<br>+  br i1 undef, label %invoke.cont466, label %if.then.i2125<br>+<br>+if.then.i2125:                                    ; preds = %invoke.cont.i2124<br>+  br label %invoke.cont466<br>+<br>+lpad.i2126:                                       ; preds = %invoke.cont460<br>+  %tmp414 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  br label %ehcleanup477<br>+<br>+invoke.cont466:                                   ; preds = %if.then.i2125, %invoke.cont.i2124<br>+  %call470 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* undef, i8* undef, i32 0)<br>+          to label %invoke.cont469 unwind label %lpad381<br>+<br>+invoke.cont469:                                   ; preds = %invoke.cont466<br>+  invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont.i2130 unwind label %lpad.i2132<br>+<br>+invoke.cont.i2130:                                ; preds = %invoke.cont469<br>+  br i1 undef, label %invoke.cont475, label %if.then.i2131<br>+<br>+if.then.i2131:                                    ; preds = %invoke.cont.i2130<br>+  br label %invoke.cont475<br>+<br>+lpad.i2132:                                       ; preds = %invoke.cont469<br>+  %tmp420 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  br label %ehcleanup477<br>+<br>+invoke.cont475:                                   ; preds = %if.then.i2131, %invoke.cont.i2130<br>+  %call491 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* undef, i8* undef, i32 1)<br>+          to label %invoke.cont490 unwind label %lpad489<br>+<br>+invoke.cont490:                                   ; preds = %invoke.cont475<br>+  invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont499 unwind label %lpad498<br>+<br>+invoke.cont499:                                   ; preds = %invoke.cont490<br>+  %call504 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont503 unwind label %lpad489<br>+<br>+invoke.cont503:                                   ; preds = %invoke.cont499<br>+  %call507 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* undef, i8* undef, i32 3)<br>+          to label %invoke.cont506 unwind label %lpad505<br>+<br>+invoke.cont506:                                   ; preds = %invoke.cont503<br>+  invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont509 unwind label %lpad508<br>+<br>+invoke.cont509:                                   ; preds = %invoke.cont506<br>+  %call513 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont512 unwind label %lpad489<br>+<br>+invoke.cont512:                                   ; preds = %invoke.cont509<br>+  br i1 undef, label %msgSend.null-receiver, label %msgSend.call<br>+<br>+msgSend.call:                                     ; preds = %invoke.cont512<br>+  invoke void bitcast (void (i8*, i8*, ...)* @objc_msgSend_stret to void (%struct.CGPoint*, i8*, i8*)*)(%struct.CGPoint* sret undef, i8* undef, i8* undef)<br>+          to label %msgSend.cont unwind label %lpad514<br>+<br>+msgSend.null-receiver:                            ; preds = %invoke.cont512<br>+  br label %msgSend.cont<br>+<br>+msgSend.cont:                                     ; preds = %msgSend.null-receiver, %msgSend.call<br>+  invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont.i2136 unwind label %lpad.i2138<br>+<br>+invoke.cont.i2136:                                ; preds = %msgSend.cont<br>+  br i1 undef, label %invoke.cont521, label %if.then.i2137<br>+<br>+if.then.i2137:                                    ; preds = %invoke.cont.i2136<br>+  br label %invoke.cont521<br>+<br>+lpad.i2138:                                       ; preds = %msgSend.cont<br>+  %tmp468 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+invoke.cont521:                                   ; preds = %if.then.i2137, %invoke.cont.i2136<br>+  invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef)<br>+          to label %invoke.cont528 unwind label %lpad527<br>+<br>+invoke.cont528:                                   ; preds = %invoke.cont521<br>+  %call532 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont531 unwind label %lpad489<br>+<br>+invoke.cont531:                                   ; preds = %invoke.cont528<br>+  %call535 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*)*)(i8* undef, i8* undef)<br>+          to label %invoke.cont534 unwind label %lpad533<br>+<br>+invoke.cont534:                                   ; preds = %invoke.cont531<br>+  invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont.i2142 unwind label %lpad.i2144<br>+<br>+invoke.cont.i2142:                                ; preds = %invoke.cont534<br>+  br i1 undef, label %invoke.cont540, label %if.then.i2143<br>+<br>+if.then.i2143:                                    ; preds = %invoke.cont.i2142<br>+  br label %invoke.cont540<br>+<br>+lpad.i2144:                                       ; preds = %invoke.cont534<br>+  %tmp486 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+invoke.cont540:                                   ; preds = %if.then.i2143, %invoke.cont.i2142<br>+  %call544 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i32)*)(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i32 3)<br>+          to label %invoke.cont543 unwind label %lpad489<br>+<br>+invoke.cont543:                                   ; preds = %invoke.cont540<br>+  invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef)<br>+          to label %invoke.cont546 unwind label %lpad545<br>+<br>+invoke.cont546:                                   ; preds = %invoke.cont543<br>+  %call549 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont548 unwind label %lpad489<br>+<br>+invoke.cont548:                                   ; preds = %invoke.cont546<br>+  %call555 = invoke signext i8 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8 (i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont554 unwind label %lpad553<br>+<br>+invoke.cont554:                                   ; preds = %invoke.cont548<br>+  %tmp499 = call i8* @objc_retain(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) #3<br>+  invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* %tmp499, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont.i2148 unwind label %lpad.i2150<br>+<br>+invoke.cont.i2148:                                ; preds = %invoke.cont554<br>+  call void @objc_release(i8* %tmp499) #3, !clang.imprecise_release !0<br>+  invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont566 unwind label %lpad565<br>+<br>+lpad.i2150:                                       ; preds = %invoke.cont554<br>+  %tmp500 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  call void @objc_release(i8* %tmp499) #3, !clang.imprecise_release !0<br>+  unreachable<br>+<br>+invoke.cont566:                                   ; preds = %invoke.cont.i2148<br>+  invoke void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, i8*, i8*)*)(i8* undef, i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))<br>+          to label %invoke.cont572 unwind label %lpad571<br>+<br>+invoke.cont572:                                   ; preds = %invoke.cont566<br>+  %call582 = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*)*)(i8* undef, i8* undef)<br>+          to label %invoke.cont581 unwind label %lpad580<br>+<br>+invoke.cont581:                                   ; preds = %invoke.cont572<br>+  unreachable<br>+<br>+lpad156.body:                                     ; preds = %invoke.cont117<br>+  %tmp1157 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+lpad164.body:                                     ; preds = %invoke.cont157<br>+  %tmp1158 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+lpad183:                                          ; preds = %invoke.cont184, %invoke.cont165<br>+  %tmp1159 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  br label %lpad183.body<br>+<br>+lpad183.body:                                     ; preds = %lpad183, %lpad.i2036<br>+  unreachable<br>+<br>+lpad196:                                          ; preds = %invoke.cont190<br>+  %tmp1160 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+lpad200:                                          ; preds = %invoke.cont197<br>+  %tmp1161 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+lpad203:                                          ; preds = %invoke.cont207, %invoke.cont201<br>+  %tmp1162 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+lpad212.body:                                     ; preds = %invoke.cont208<br>+  %tmp1163 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+lpad220:                                          ; preds = %invoke.cont213<br>+  %tmp1164 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  br label %eh.resume<br>+<br>+lpad227:                                          ; preds = %invoke.cont231, %invoke.cont221<br>+  %tmp1166 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  br label %ehcleanup239<br>+<br>+lpad236.body:                                     ; preds = %invoke.cont232<br>+  %tmp1167 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  br label %ehcleanup239<br>+<br>+ehcleanup239:                                     ; preds = %lpad236.body, %lpad227<br>+  unreachable<br>+<br>+lpad244:                                          ; preds = %invoke.cont245, %invoke.cont237<br>+  %tmp1168 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+lpad249:                                          ; preds = %invoke.cont247<br>+  %tmp1169 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+lpad252:                                          ; preds = %invoke.cont250<br>+  %tmp1170 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  br label %ehcleanup263<br>+<br>+lpad255:                                          ; preds = %invoke.cont253<br>+  %tmp1171 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  br label %ehcleanup263<br>+<br>+lpad258:                                          ; preds = %invoke.cont256<br>+  %tmp1172 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+ehcleanup263:                                     ; preds = %lpad255, %lpad252<br>+  unreachable<br>+<br>+lpad265:                                          ; preds = %invoke.cont259<br>+  %tmp1173 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+lpad273:                                          ; preds = %invoke.cont266<br>+  %tmp1175 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+lpad277:                                          ; preds = %invoke.cont274<br>+  %tmp1176 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+lpad289:                                          ; preds = %invoke.cont281<br>+  %tmp1177 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+lpad301:                                          ; preds = %invoke.cont290<br>+  %tmp1180 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+lpad308:                                          ; preds = %invoke.cont302<br>+  %tmp1182 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+lpad311:                                          ; preds = %invoke.cont309<br>+  %tmp1183 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+lpad314:                                          ; preds = %invoke.cont312<br>+  %tmp1184 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+lpad320:                                          ; preds = %invoke.cont315<br>+  %tmp1186 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+lpad340.body.thread:                              ; preds = %land.rhs335<br>+  %tmp1188 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+lpad340.body:                                     ; preds = %land.end344<br>+  %tmp1189 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+lpad360:                                          ; preds = %invoke.cont345<br>+  %tmp1191 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  br label %eh.resume<br>+<br>+lpad363:                                          ; preds = %invoke.cont373, %invoke.cont361<br>+  %tmp1192 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+lpad369:                                          ; preds = %invoke.cont364<br>+  %tmp1194 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+lpad381:                                          ; preds = %invoke.cont466, %invoke.cont458, %invoke.cont449, %invoke.cont.i2106, %invoke.cont432, %invoke.cont422, %invoke.cont418, %invoke.cont408, %invoke.cont405, %invoke.cont395, %invoke.cont392, %invoke.cont382, %invoke.cont376<br>+  %tmp1196 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  br label %ehcleanup477<br>+<br>+lpad398:                                          ; preds = %invoke.cont396<br>+  %tmp1199 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+lpad401:                                          ; preds = %invoke.cont399<br>+  %tmp1200 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+lpad411:                                          ; preds = %invoke.cont409<br>+  %tmp1201 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+lpad425:                                          ; preds = %invoke.cont423<br>+  %tmp1203 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  br label %ehcleanup477<br>+<br>+lpad428:                                          ; preds = %invoke.cont426<br>+  %tmp1204 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+lpad454:                                          ; preds = %invoke.cont452<br>+  %tmp1207 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+ehcleanup477:                                     ; preds = %lpad425, %lpad381, %lpad.i2132, %lpad.i2126<br>+  unreachable<br>+<br>+lpad489:                                          ; preds = %invoke.cont546, %invoke.cont540, %invoke.cont528, %invoke.cont509, %invoke.cont499, %invoke.cont475<br>+  %tmp1211 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  br label %ehcleanup560<br>+<br>+lpad498:                                          ; preds = %invoke.cont490<br>+  %tmp1214 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+lpad505:                                          ; preds = %invoke.cont503<br>+  %tmp1215 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+lpad508:                                          ; preds = %invoke.cont506<br>+  %tmp1216 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+lpad514:                                          ; preds = %msgSend.call<br>+  %tmp1217 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+lpad527:                                          ; preds = %invoke.cont521<br>+  %tmp1219 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  br label %ehcleanup560<br>+<br>+lpad533:                                          ; preds = %invoke.cont531<br>+  %tmp1220 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+lpad545:                                          ; preds = %invoke.cont543<br>+  %tmp1222 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+lpad553:                                          ; preds = %invoke.cont548<br>+  %tmp1224 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+ehcleanup560:                                     ; preds = %lpad527, %lpad489<br>+  br label %eh.resume<br>+<br>+lpad565:                                          ; preds = %invoke.cont.i2148<br>+  %tmp1225 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+lpad571:                                          ; preds = %invoke.cont566<br>+  %tmp1227 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  unreachable<br>+<br>+lpad580:                                          ; preds = %invoke.cont572<br>+  %tmp1228 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_sj0 to i8*)<br>+          cleanup<br>+  br label %eh.resume<br>+<br>+eh.resume:                                        ; preds = %lpad580, %ehcleanup560, %lpad360, %lpad220<br>+  resume { i8*, i32 } undef<br>+}<br><br>!0 = metadata !{}<br><br><br>_______________________________________________<br>llvm-commits mailing list<br>llvm-commits@cs.uiuc.edu<br>http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</blockquote></div></blockquote></div><br></div></div></body></html>