brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.4 KiB · b6dd6fb Raw
202 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt < %s -fix-irreducible --verify-loop-info -S | FileCheck %s3; RUN: opt < %s -passes='fix-irreducible,verify<loops>' -S | FileCheck %s4; RUN: opt < %s -passes='verify<loops>,fix-irreducible,verify<loops>' -S | FileCheck %s5 6define dso_local void @tre_tnfa_run_backtrack(i1 %arg) {7; CHECK-LABEL: @tre_tnfa_run_backtrack(8; CHECK-NEXT:  entry:9; CHECK-NEXT:    [[ARG_INV:%.*]] = xor i1 [[ARG:%.*]], true10; CHECK-NEXT:    br label [[RETRY:%.*]]11; CHECK:       retry:12; CHECK-NEXT:    br label [[IRR_GUARD:%.*]]13; CHECK:       while.body248:14; CHECK-NEXT:    br i1 [[ARG]], label [[IF_THEN250:%.*]], label [[IF_END275:%.*]]15; CHECK:       if.then250:16; CHECK-NEXT:    br label [[FOR_COND264:%.*]]17; CHECK:       for.cond264:18; CHECK-NEXT:    br i1 [[ARG]], label [[FOR_BODY267:%.*]], label [[BACKTRACK:%.*]]19; CHECK:       for.body267:20; CHECK-NEXT:    br label [[FOR_COND264]]21; CHECK:       if.end275:22; CHECK-NEXT:    br label [[FOR_COND342:%.*]]23; CHECK:       for.cond342:24; CHECK-NEXT:    br i1 [[ARG]], label [[FOR_BODY345:%.*]], label [[FOR_END580:%.*]]25; CHECK:       for.body345:26; CHECK-NEXT:    br label [[FOR_COND342]]27; CHECK:       for.end580:28; CHECK-NEXT:    br label [[BACKTRACK]]29; CHECK:       backtrack:30; CHECK-NEXT:    br i1 [[ARG]], label [[IF_THEN595:%.*]], label [[IF_ELSE629:%.*]]31; CHECK:       if.then595:32; CHECK-NEXT:    br label [[FOR_COND616:%.*]]33; CHECK:       for.cond616:34; CHECK-NEXT:    br i1 [[ARG]], label [[FOR_BODY619:%.*]], label [[FOR_END626:%.*]]35; CHECK:       for.body619:36; CHECK-NEXT:    br label [[FOR_COND616]]37; CHECK:       for.end626:38; CHECK-NEXT:    br label [[IRR_GUARD]]39; CHECK:       if.else629:40; CHECK-NEXT:    br label [[RETRY]]41; CHECK:       irr.guard:42; CHECK-NEXT:    [[GUARD_WHILE_BODY248:%.*]] = phi i1 [ true, [[FOR_END626]] ], [ [[ARG_INV]], [[RETRY]] ]43; CHECK-NEXT:    br i1 [[GUARD_WHILE_BODY248]], label [[WHILE_BODY248:%.*]], label [[BACKTRACK]]44;45entry:46  br label %retry47 48retry:49  br i1 %arg, label %backtrack, label %while.body24850 51while.body248:                                    ; preds = %for.end626, %retry52  br i1 %arg, label %if.then250, label %if.end27553 54if.then250:                                       ; preds = %while.body24855  br label %for.cond26456 57for.cond264:                                      ; preds = %for.body267, %if.then25058  br i1 %arg, label %for.body267, label %backtrack59 60for.body267:                                      ; preds = %for.cond26461  br label %for.cond26462 63if.end275:                                        ; preds = %while.body24864  br label %for.cond34265 66for.cond342:                                      ; preds = %for.body345, %if.end27567  br i1 %arg, label %for.body345, label %for.end58068 69for.body345:                                      ; preds = %for.cond34270  br label %for.cond34271 72for.end580:                                       ; preds = %for.cond34273  br label %backtrack74 75backtrack:                                        ; preds = %for.end580, %for.cond264, %retry76  br i1 %arg, label %if.then595, label %if.else62977 78if.then595:                                       ; preds = %backtrack79  br label %for.cond61680 81for.cond616:                                      ; preds = %for.body619, %if.then59582  br i1 %arg, label %for.body619, label %for.end62683 84for.body619:                                      ; preds = %for.cond61685  br label %for.cond61686 87for.end626:                                       ; preds = %for.cond61688  br label %while.body24889 90if.else629:                                       ; preds = %backtrack91  br label %retry92}93 94define void @tre_tnfa_run_backtrack_callbr(i1 %arg) {95; CHECK-LABEL: @tre_tnfa_run_backtrack_callbr(96; CHECK-NEXT:  entry:97; CHECK-NEXT:    callbr void asm "", ""()98; CHECK-NEXT:            to label [[RETRY:%.*]] []99; CHECK:       retry:100; CHECK-NEXT:    callbr void asm "", "r,!i"(i1 [[ARG:%.*]])101; CHECK-NEXT:            to label [[RETRY_TARGET_BACKTRACK:%.*]] [label %retry.target.while.body248]102; CHECK:       while.body248:103; CHECK-NEXT:    callbr void asm "", "r,!i"(i1 [[ARG]])104; CHECK-NEXT:            to label [[IF_THEN250:%.*]] [label %if.end275]105; CHECK:       if.then250:106; CHECK-NEXT:    callbr void asm "", ""()107; CHECK-NEXT:            to label [[FOR_COND264:%.*]] []108; CHECK:       for.cond264:109; CHECK-NEXT:    callbr void asm "", "r,!i"(i1 [[ARG]])110; CHECK-NEXT:            to label [[FOR_BODY267:%.*]] [label %backtrack]111; CHECK:       for.body267:112; CHECK-NEXT:    callbr void asm "", ""()113; CHECK-NEXT:            to label [[FOR_COND264]] []114; CHECK:       if.end275:115; CHECK-NEXT:    callbr void asm "", ""()116; CHECK-NEXT:            to label [[FOR_COND342:%.*]] []117; CHECK:       for.cond342:118; CHECK-NEXT:    callbr void asm "", "r,!i"(i1 [[ARG]])119; CHECK-NEXT:            to label [[FOR_BODY345:%.*]] [label %for.end580]120; CHECK:       for.body345:121; CHECK-NEXT:    callbr void asm "", ""()122; CHECK-NEXT:            to label [[FOR_COND342]] []123; CHECK:       for.end580:124; CHECK-NEXT:    callbr void asm "", ""()125; CHECK-NEXT:            to label [[BACKTRACK:%.*]] []126; CHECK:       backtrack:127; CHECK-NEXT:    callbr void asm "", "r,!i"(i1 [[ARG]])128; CHECK-NEXT:            to label [[IF_THEN595:%.*]] [label %if.else629]129; CHECK:       if.then595:130; CHECK-NEXT:    callbr void asm "", ""()131; CHECK-NEXT:            to label [[FOR_COND616:%.*]] []132; CHECK:       for.cond616:133; CHECK-NEXT:    callbr void asm "", "r,!i"(i1 [[ARG]])134; CHECK-NEXT:            to label [[FOR_BODY619:%.*]] [label %for.end626]135; CHECK:       for.body619:136; CHECK-NEXT:    callbr void asm "", ""()137; CHECK-NEXT:            to label [[FOR_COND616]] []138; CHECK:       for.end626:139; CHECK-NEXT:    callbr void asm "", ""()140; CHECK-NEXT:            to label [[FOR_END626_TARGET_WHILE_BODY248:%.*]] []141; CHECK:       if.else629:142; CHECK-NEXT:    callbr void asm "", ""()143; CHECK-NEXT:            to label [[RETRY]] []144; CHECK:       for.end626.target.while.body248:145; CHECK-NEXT:    br label [[IRR_GUARD:%.*]]146; CHECK:       retry.target.backtrack:147; CHECK-NEXT:    br label [[IRR_GUARD]]148; CHECK:       retry.target.while.body248:149; CHECK-NEXT:    br label [[IRR_GUARD]]150; CHECK:       irr.guard:151; CHECK-NEXT:    [[GUARD_WHILE_BODY248:%.*]] = phi i1 [ true, [[FOR_END626_TARGET_WHILE_BODY248]] ], [ false, [[RETRY_TARGET_BACKTRACK]] ], [ true, [[RETRY_TARGET_WHILE_BODY248:%.*]] ]152; CHECK-NEXT:    br i1 [[GUARD_WHILE_BODY248]], label [[WHILE_BODY248:%.*]], label [[BACKTRACK]]153;154entry:155  callbr void asm "", ""() to label %retry []156 157retry:158  callbr void asm "", "r,!i"(i1 %arg) to label %backtrack [label %while.body248]159 160while.body248:                                    ; preds = %for.end626, %retry161  callbr void asm "", "r,!i"(i1 %arg) to label %if.then250 [label %if.end275]162 163if.then250:                                       ; preds = %while.body248164  callbr void asm "", ""() to label %for.cond264 []165 166for.cond264:                                      ; preds = %for.body267, %if.then250167  callbr void asm "", "r,!i"(i1 %arg) to label %for.body267 [label %backtrack]168 169for.body267:                                      ; preds = %for.cond264170  callbr void asm "", ""() to label %for.cond264 []171 172if.end275:                                        ; preds = %while.body248173  callbr void asm "", ""() to label %for.cond342 []174 175for.cond342:                                      ; preds = %for.body345, %if.end275176  callbr void asm "", "r,!i"(i1 %arg) to label %for.body345 [label %for.end580]177 178for.body345:                                      ; preds = %for.cond342179  callbr void asm "", ""() to label %for.cond342 []180 181for.end580:                                       ; preds = %for.cond342182  callbr void asm "", ""() to label %backtrack []183 184backtrack:                                        ; preds = %for.end580, %for.cond264, %retry185  callbr void asm "", "r,!i"(i1 %arg) to label %if.then595 [label %if.else629]186 187if.then595:                                       ; preds = %backtrack188  callbr void asm "", ""() to label %for.cond616 []189 190for.cond616:                                      ; preds = %for.body619, %if.then595191  callbr void asm "", "r,!i"(i1 %arg) to label %for.body619 [label %for.end626]192 193for.body619:                                      ; preds = %for.cond616194  callbr void asm "", ""() to label %for.cond616 []195 196for.end626:                                       ; preds = %for.cond616197  callbr void asm "", ""() to label %while.body248 []198 199if.else629:                                       ; preds = %backtrack200  callbr void asm "", ""() to label %retry []201}202