1; RUN: opt < %s -lcssa -disable-output 2; RUN: opt < %s -passes=lcssa -disable-output 3; PR977 4; END. 5 6define void @process_backlog() { 7entry: 8 br label %loopentry.preheader 9loopentry.preheader: ; preds = %dead_block_after_break, %entry 10 %work.0.ph = phi i32 [ %inc, %dead_block_after_break ], [ 0, %entry ] ; <i32> [#uses=0] 11 br label %loopentry 12loopentry: ; preds = %endif.1, %loopentry.preheader 13 br i1 false, label %then.i, label %loopentry.__skb_dequeue67.exit_crit_edge 14loopentry.__skb_dequeue67.exit_crit_edge: ; preds = %loopentry 15 br label %__skb_dequeue67.exit 16then.i: ; preds = %loopentry 17 br label %__skb_dequeue67.exit 18__skb_dequeue67.exit: ; preds = %then.i, %loopentry.__skb_dequeue67.exit_crit_edge 19 br i1 false, label %then.0, label %__skb_dequeue67.exit.endif.0_crit_edge 20__skb_dequeue67.exit.endif.0_crit_edge: ; preds = %__skb_dequeue67.exit 21 br label %endif.0 22then.0: ; preds = %__skb_dequeue67.exit 23 br label %job_done 24dead_block_after_goto: ; No predecessors! 25 unreachable 26endif.0: ; preds = %__skb_dequeue67.exit.endif.0_crit_edge 27 br i1 false, label %then.0.i, label %endif.0.endif.0.i_crit_edge 28endif.0.endif.0.i_crit_edge: ; preds = %endif.0 29 br label %endif.0.i 30then.0.i: ; preds = %endif.0 31 br label %endif.0.i 32endif.0.i: ; preds = %then.0.i, %endif.0.endif.0.i_crit_edge 33 br i1 false, label %then.i.i, label %endif.0.i.skb_bond.exit.i_crit_edge 34endif.0.i.skb_bond.exit.i_crit_edge: ; preds = %endif.0.i 35 br label %skb_bond.exit.i 36then.i.i: ; preds = %endif.0.i 37 br label %skb_bond.exit.i 38skb_bond.exit.i: ; preds = %then.i.i, %endif.0.i.skb_bond.exit.i_crit_edge 39 br label %loopentry.0.i 40loopentry.0.i: ; preds = %loopentry.0.i.backedge, %skb_bond.exit.i 41 br i1 false, label %loopentry.0.i.no_exit.0.i_crit_edge, label %loopentry.0.i.loopexit.0.i_crit_edge 42loopentry.0.i.loopexit.0.i_crit_edge: ; preds = %loopentry.0.i 43 br label %loopexit.0.i 44loopentry.0.i.no_exit.0.i_crit_edge: ; preds = %loopentry.0.i 45 br label %no_exit.0.i 46no_exit.0.i: ; preds = %then.3.i.no_exit.0.i_crit_edge, %loopentry.0.i.no_exit.0.i_crit_edge 47 br i1 false, label %no_exit.0.i.shortcirc_done.0.i_crit_edge, label %shortcirc_next.0.i 48no_exit.0.i.shortcirc_done.0.i_crit_edge: ; preds = %no_exit.0.i 49 br label %shortcirc_done.0.i 50shortcirc_next.0.i: ; preds = %no_exit.0.i 51 br label %shortcirc_done.0.i 52shortcirc_done.0.i: ; preds = %shortcirc_next.0.i, %no_exit.0.i.shortcirc_done.0.i_crit_edge 53 br i1 false, label %then.1.i, label %endif.1.i 54then.1.i: ; preds = %shortcirc_done.0.i 55 br i1 false, label %then.2.i, label %then.1.i.endif.2.i_crit_edge 56then.1.i.endif.2.i_crit_edge: ; preds = %then.1.i 57 br label %endif.2.i 58then.2.i: ; preds = %then.1.i 59 br i1 false, label %then.3.i, label %else.0.i 60then.3.i: ; preds = %then.2.i 61 br i1 false, label %then.3.i.no_exit.0.i_crit_edge, label %then.3.i.loopexit.0.i_crit_edge 62then.3.i.loopexit.0.i_crit_edge: ; preds = %then.3.i 63 br label %loopexit.0.i 64then.3.i.no_exit.0.i_crit_edge: ; preds = %then.3.i 65 br label %no_exit.0.i 66else.0.i: ; preds = %then.2.i 67 br label %endif.2.i 68endif.3.i: ; No predecessors! 69 unreachable 70endif.2.i: ; preds = %else.0.i, %then.1.i.endif.2.i_crit_edge 71 br label %loopentry.0.i.backedge 72endif.1.i: ; preds = %shortcirc_done.0.i 73 br label %loopentry.0.i.backedge 74loopentry.0.i.backedge: ; preds = %endif.1.i, %endif.2.i 75 br label %loopentry.0.i 76loopexit.0.i: ; preds = %then.3.i.loopexit.0.i_crit_edge, %loopentry.0.i.loopexit.0.i_crit_edge 77 br label %loopentry.1.i 78loopentry.1.i: ; preds = %loopentry.1.i.backedge, %loopexit.0.i 79 br i1 false, label %loopentry.1.i.no_exit.1.i_crit_edge, label %loopentry.1.i.loopexit.1.i_crit_edge 80loopentry.1.i.loopexit.1.i_crit_edge: ; preds = %loopentry.1.i 81 br label %loopexit.1.i 82loopentry.1.i.no_exit.1.i_crit_edge: ; preds = %loopentry.1.i 83 br label %no_exit.1.i 84no_exit.1.i: ; preds = %then.6.i.no_exit.1.i_crit_edge, %loopentry.1.i.no_exit.1.i_crit_edge 85 br i1 false, label %shortcirc_next.1.i, label %no_exit.1.i.shortcirc_done.1.i_crit_edge 86no_exit.1.i.shortcirc_done.1.i_crit_edge: ; preds = %no_exit.1.i 87 br label %shortcirc_done.1.i 88shortcirc_next.1.i: ; preds = %no_exit.1.i 89 br i1 false, label %shortcirc_next.1.i.shortcirc_done.2.i_crit_edge, label %shortcirc_next.2.i 90shortcirc_next.1.i.shortcirc_done.2.i_crit_edge: ; preds = %shortcirc_next.1.i 91 br label %shortcirc_done.2.i 92shortcirc_next.2.i: ; preds = %shortcirc_next.1.i 93 br label %shortcirc_done.2.i 94shortcirc_done.2.i: ; preds = %shortcirc_next.2.i, %shortcirc_next.1.i.shortcirc_done.2.i_crit_edge 95 br label %shortcirc_done.1.i 96shortcirc_done.1.i: ; preds = %shortcirc_done.2.i, %no_exit.1.i.shortcirc_done.1.i_crit_edge 97 br i1 false, label %then.4.i, label %endif.4.i 98then.4.i: ; preds = %shortcirc_done.1.i 99 br i1 false, label %then.5.i, label %then.4.i.endif.5.i_crit_edge 100then.4.i.endif.5.i_crit_edge: ; preds = %then.4.i 101 br label %endif.5.i 102then.5.i: ; preds = %then.4.i 103 br i1 false, label %then.6.i, label %else.1.i 104then.6.i: ; preds = %then.5.i 105 br i1 false, label %then.6.i.no_exit.1.i_crit_edge, label %then.6.i.loopexit.1.i_crit_edge 106then.6.i.loopexit.1.i_crit_edge: ; preds = %then.6.i 107 br label %loopexit.1.i 108then.6.i.no_exit.1.i_crit_edge: ; preds = %then.6.i 109 br label %no_exit.1.i 110else.1.i: ; preds = %then.5.i 111 br label %endif.5.i 112endif.6.i: ; No predecessors! 113 unreachable 114endif.5.i: ; preds = %else.1.i, %then.4.i.endif.5.i_crit_edge 115 br label %loopentry.1.i.backedge 116endif.4.i: ; preds = %shortcirc_done.1.i 117 br label %loopentry.1.i.backedge 118loopentry.1.i.backedge: ; preds = %endif.4.i, %endif.5.i 119 br label %loopentry.1.i 120loopexit.1.i: ; preds = %then.6.i.loopexit.1.i_crit_edge, %loopentry.1.i.loopexit.1.i_crit_edge 121 br i1 false, label %then.7.i, label %else.2.i 122then.7.i: ; preds = %loopexit.1.i 123 br i1 false, label %then.8.i, label %else.3.i 124then.8.i: ; preds = %then.7.i 125 br label %netif_receive_skb.exit 126else.3.i: ; preds = %then.7.i 127 br label %netif_receive_skb.exit 128endif.8.i: ; No predecessors! 129 unreachable 130else.2.i: ; preds = %loopexit.1.i 131 br i1 false, label %else.2.i.shortcirc_done.i.i_crit_edge, label %shortcirc_next.i.i 132else.2.i.shortcirc_done.i.i_crit_edge: ; preds = %else.2.i 133 br label %shortcirc_done.i.i 134shortcirc_next.i.i: ; preds = %else.2.i 135 br label %shortcirc_done.i.i 136shortcirc_done.i.i: ; preds = %shortcirc_next.i.i, %else.2.i.shortcirc_done.i.i_crit_edge 137 br i1 false, label %then.i1.i, label %shortcirc_done.i.i.kfree_skb65.exit.i_crit_edge 138shortcirc_done.i.i.kfree_skb65.exit.i_crit_edge: ; preds = %shortcirc_done.i.i 139 br label %kfree_skb65.exit.i 140then.i1.i: ; preds = %shortcirc_done.i.i 141 br label %kfree_skb65.exit.i 142kfree_skb65.exit.i: ; preds = %then.i1.i, %shortcirc_done.i.i.kfree_skb65.exit.i_crit_edge 143 br label %netif_receive_skb.exit 144netif_receive_skb.exit: ; preds = %kfree_skb65.exit.i, %else.3.i, %then.8.i 145 br i1 false, label %then.i1, label %netif_receive_skb.exit.dev_put69.exit_crit_edge 146netif_receive_skb.exit.dev_put69.exit_crit_edge: ; preds = %netif_receive_skb.exit 147 br label %dev_put69.exit 148then.i1: ; preds = %netif_receive_skb.exit 149 br label %dev_put69.exit 150dev_put69.exit: ; preds = %then.i1, %netif_receive_skb.exit.dev_put69.exit_crit_edge 151 %inc = add i32 0, 1 ; <i32> [#uses=1] 152 br i1 false, label %dev_put69.exit.shortcirc_done_crit_edge, label %shortcirc_next 153dev_put69.exit.shortcirc_done_crit_edge: ; preds = %dev_put69.exit 154 br label %shortcirc_done 155shortcirc_next: ; preds = %dev_put69.exit 156 br label %shortcirc_done 157shortcirc_done: ; preds = %shortcirc_next, %dev_put69.exit.shortcirc_done_crit_edge 158 br i1 false, label %then.1, label %endif.1 159then.1: ; preds = %shortcirc_done 160 ret void 161dead_block_after_break: ; No predecessors! 162 br label %loopentry.preheader 163endif.1: ; preds = %shortcirc_done 164 br label %loopentry 165loopexit: ; No predecessors! 166 unreachable 167after_ret.0: ; No predecessors! 168 br label %job_done 169job_done: ; preds = %after_ret.0, %then.0 170 br label %loopentry.i 171loopentry.i: ; preds = %no_exit.i, %job_done 172 br i1 false, label %no_exit.i, label %clear_bit62.exit 173no_exit.i: ; preds = %loopentry.i 174 br label %loopentry.i 175clear_bit62.exit: ; preds = %loopentry.i 176 br i1 false, label %then.2, label %endif.2 177then.2: ; preds = %clear_bit62.exit 178 ret void 179endif.2: ; preds = %clear_bit62.exit 180 ret void 181after_ret.1: ; No predecessors! 182 ret void 183return: ; No predecessors! 184 unreachable 185} 186