brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.1 KiB · dabd2fb Raw
226 lines · plain
1; RUN: opt < %s -passes='print<block-freq>' -disable-output 2>&1 | FileCheck %s2 3; Function Attrs: noinline norecurse nounwind readnone uwtable4define i32 @_Z11irreducibleii(i32 %iter_outer, i32 %iter_inner) local_unnamed_addr !prof !27 {5entry:6  %cmp24 = icmp sgt i32 %iter_outer, 07  br i1 %cmp24, label %for.body, label %entry.for.cond.cleanup_crit_edge, !prof !288 9entry.for.cond.cleanup_crit_edge:                 ; preds = %entry10  br label %for.cond.cleanup11 12for.cond.cleanup:                                 ; preds = %for.end, %entry.for.cond.cleanup_crit_edge13  %sum.0.lcssa = phi i32 [ 0, %entry.for.cond.cleanup_crit_edge ], [ %sum.1, %for.end ]14  ret i32 %sum.0.lcssa15 16for.body:                                         ; preds = %for.end, %entry17  %k.026 = phi i32 [ %inc12, %for.end ], [ 0, %entry ]18  %sum.025 = phi i32 [ %sum.1, %for.end ], [ 0, %entry ]19  %rem23 = and i32 %k.026, 120  %cmp1 = icmp eq i32 %rem23, 021  br i1 %cmp1, label %entry8, label %for.cond2, !prof !2922 23for.cond2:                                        ; preds = %if.end9, %for.body24  %sum.1 = phi i32 [ %add10, %if.end9 ], [ %sum.025, %for.body ]25  %i.0 = phi i32 [ %inc, %if.end9 ], [ 0, %for.body ]26  %cmp3 = icmp slt i32 %i.0, %iter_inner27  br i1 %cmp3, label %for.body4, label %for.end, !prof !30, !irr_loop !3128 29for.body4:                                        ; preds = %for.cond230  %rem5 = srem i32 %k.026, 331  %cmp6 = icmp eq i32 %rem5, 032  br i1 %cmp6, label %entry8, label %if.end9, !prof !3233 34entry8:                                           ; preds = %for.body4, %for.body35  %sum.2 = phi i32 [ %sum.025, %for.body ], [ %sum.1, %for.body4 ]36  %i.1 = phi i32 [ 0, %for.body ], [ %i.0, %for.body4 ]37  %add = add nsw i32 %sum.2, 438  br label %if.end9, !irr_loop !3339 40if.end9:                                          ; preds = %entry8, %for.body441  %sum.3 = phi i32 [ %add, %entry8 ], [ %sum.1, %for.body4 ]42  %i.2 = phi i32 [ %i.1, %entry8 ], [ %i.0, %for.body4 ]43  %add10 = add nsw i32 %sum.3, 144  %inc = add nsw i32 %i.2, 145  br label %for.cond2, !irr_loop !3446 47for.end:                                          ; preds = %for.cond248  %inc12 = add nuw nsw i32 %k.026, 149  %exitcond = icmp eq i32 %inc12, %iter_outer50  br i1 %exitcond, label %for.cond.cleanup, label %for.body, !prof !3551}52 53!27 = !{!"function_entry_count", i64 1}54!28 = !{!"branch_weights", i32 1, i32 0}55!29 = !{!"branch_weights", i32 50, i32 50}56!30 = !{!"branch_weights", i32 950, i32 100}57!31 = !{!"loop_header_weight", i64 1050}58!32 = !{!"branch_weights", i32 323, i32 627}59!33 = !{!"loop_header_weight", i64 373}60!34 = !{!"loop_header_weight", i64 1000}61!35 = !{!"branch_weights", i32 1, i32 99}62 63; CHECK-LABEL: Printing analysis {{.*}} for function '_Z11irreducibleii':64; CHECK-NEXT: block-frequency-info: _Z11irreducibleii65; CHECK-NEXT: - entry: {{.*}} count = 166; CHECK-NEXT: - entry.for.cond.cleanup_crit_edge: {{.*}} count = 067; CHECK-NEXT: - for.cond.cleanup: {{.*}} count = 168; CHECK-NEXT: - for.body: {{.*}} count = 10069; CHECK-NEXT: - for.cond2: {{.*}} count = 1050, irr_loop_header_weight = 105070; CHECK-NEXT: - for.body4: {{.*}} count = 95071; CHECK-NEXT: - entry8: {{.*}} count = 373, irr_loop_header_weight = 37372; CHECK-NEXT: - if.end9: {{.*}} count = 1000, irr_loop_header_weight = 100073; CHECK-NEXT: - for.end: {{.*}} count = 10074 75@targets = local_unnamed_addr global [256 x ptr] zeroinitializer, align 1676@tracing = local_unnamed_addr global i32 0, align 477 78; Function Attrs: noinline norecurse nounwind uwtable79define i32 @_Z11irreduciblePh(ptr nocapture readonly %p) !prof !27 {80entry:81  %0 = load i32, ptr @tracing, align 482  %1 = trunc i32 %0 to i883  %tobool = icmp eq i32 %0, 084  br label %for.cond185 86for.cond1:                                        ; preds = %sw.default, %entry87  br label %dispatch_op88 89dispatch_op:                                      ; preds = %sw.bb6, %for.cond190  switch i8 %1, label %sw.default [91    i8 0, label %sw.bb92    i8 1, label %dispatch_op.sw.bb6_crit_edge93    i8 2, label %sw.bb1594  ], !prof !3695 96dispatch_op.sw.bb6_crit_edge:                     ; preds = %dispatch_op97  br label %sw.bb698 99sw.bb:                                            ; preds = %indirectgoto, %dispatch_op100  br label %exit101 102TARGET_1:                                         ; preds = %indirectgoto103  br label %sw.bb6104 105sw.bb6:                                           ; preds = %TARGET_1, %dispatch_op.sw.bb6_crit_edge106  br i1 %tobool, label %dispatch_op, label %if.then, !prof !37, !irr_loop !38107 108if.then:                                          ; preds = %sw.bb6109  br label %indirectgoto110 111TARGET_2:                                         ; preds = %indirectgoto112  br label %sw.bb15113 114sw.bb15:                                          ; preds = %TARGET_2, %dispatch_op115  br i1 %tobool, label %if.then18, label %exit, !prof !39, !irr_loop !40116 117if.then18:                                        ; preds = %sw.bb15118  br label %indirectgoto119 120unknown_op:                                       ; preds = %indirectgoto121  br label %sw.default122 123sw.default:                                       ; preds = %unknown_op, %dispatch_op124  br label %for.cond1125 126exit:                                             ; preds = %sw.bb15, %sw.bb127  ret i32 0128 129indirectgoto:                                     ; preds = %if.then18, %if.then130  %idxprom21 = zext i32 %0 to i64131  %arrayidx22 = getelementptr inbounds [256 x ptr], ptr @targets, i64 0, i64 %idxprom21132  %target = load ptr, ptr %arrayidx22, align 8133  indirectbr ptr %target, [label %unknown_op, label %sw.bb, label %TARGET_1, label %TARGET_2], !prof !41, !irr_loop !42134}135 136!36 = !{!"branch_weights", i32 0, i32 0, i32 201, i32 1}137!37 = !{!"branch_weights", i32 201, i32 300}138!38 = !{!"loop_header_weight", i64 501}139!39 = !{!"branch_weights", i32 100, i32 0}140!40 = !{!"loop_header_weight", i64 100}141!41 = !{!"branch_weights", i32 0, i32 1, i32 300, i32 99}142!42 = !{!"loop_header_weight", i64 400}143 144; CHECK-LABEL: Printing analysis {{.*}} for function '_Z11irreduciblePh':145; CHECK-NEXT: block-frequency-info: _Z11irreduciblePh146; CHECK-NEXT: - entry: {{.*}} count = 1147; CHECK-NEXT: - for.cond1: {{.*}} count = 1148; CHECK-NEXT: - dispatch_op: {{.*}} count = 202149; CHECK-NEXT: - dispatch_op.sw.bb6_crit_edge: {{.*}} count = 201150; CHECK-NEXT: - sw.bb: {{.*}} count = 1151; CHECK-NEXT: - TARGET_1: {{.*}} count = 300152; CHECK-NEXT: - sw.bb6: {{.*}} count = 501, irr_loop_header_weight = 501153; CHECK-NEXT: - if.then: {{.*}} count = 300154; CHECK-NEXT: - TARGET_2: {{.*}} count = 99155; CHECK-NEXT: - sw.bb15: {{.*}} count = 100, irr_loop_header_weight = 100156; CHECK-NEXT: - if.then18: {{.*}} count = 100157; CHECK-NEXT: - unknown_op: {{.*}} count = 0158; CHECK-NEXT: - sw.default: {{.*}} count = 0159; CHECK-NEXT: - exit: {{.*}} count = 1160; CHECK-NEXT: - indirectgoto: {{.*}} count = 400, irr_loop_header_weight = 400161 162; Missing some irr loop annotations.163; Function Attrs: noinline norecurse nounwind uwtable164define i32 @_Z11irreduciblePh2(ptr nocapture readonly %p) !prof !27 {165entry:166  %0 = load i32, ptr @tracing, align 4167  %1 = trunc i32 %0 to i8168  %tobool = icmp eq i32 %0, 0169  br label %for.cond1170 171for.cond1:                                        ; preds = %sw.default, %entry172  br label %dispatch_op173 174dispatch_op:                                      ; preds = %sw.bb6, %for.cond1175switch i8 %1, label %sw.default [176    i8 0, label %sw.bb177    i8 1, label %dispatch_op.sw.bb6_crit_edge178    i8 2, label %sw.bb15179  ], !prof !36180 181dispatch_op.sw.bb6_crit_edge:                     ; preds = %dispatch_op182  br label %sw.bb6183 184sw.bb:                                            ; preds = %indirectgoto, %dispatch_op185  br label %exit186 187TARGET_1:                                         ; preds = %indirectgoto188  br label %sw.bb6189 190sw.bb6:                                           ; preds = %TARGET_1, %dispatch_op.sw.bb6_crit_edge191  br i1 %tobool, label %dispatch_op, label %if.then, !prof !37  ; Missing !irr_loop !38192 193if.then:                                          ; preds = %sw.bb6194  br label %indirectgoto195 196TARGET_2:                                         ; preds = %indirectgoto197  br label %sw.bb15198 199sw.bb15:                                          ; preds = %TARGET_2, %dispatch_op200  br i1 %tobool, label %if.then18, label %exit, !prof !39, !irr_loop !40201 202if.then18:                                        ; preds = %sw.bb15203  br label %indirectgoto204 205unknown_op:                                       ; preds = %indirectgoto206  br label %sw.default207 208sw.default:                                       ; preds = %unknown_op, %dispatch_op209  br label %for.cond1210 211exit:                                             ; preds = %sw.bb15, %sw.bb212  ret i32 0213 214indirectgoto:                                     ; preds = %if.then18, %if.then215  %idxprom21 = zext i32 %0 to i64216  %arrayidx22 = getelementptr inbounds [256 x ptr], ptr @targets, i64 0, i64 %idxprom21217  %target = load ptr, ptr %arrayidx22, align 8218  indirectbr ptr %target, [label %unknown_op, label %sw.bb, label %TARGET_1, label %TARGET_2], !prof !41, !irr_loop !42219}220 221; CHECK-LABEL: Printing analysis {{.*}} for function '_Z11irreduciblePh2':222; CHECK: block-frequency-info: _Z11irreduciblePh2223; CHECK: - sw.bb6: {{.*}} count = 100224; CHECK: - sw.bb15: {{.*}} count = 100, irr_loop_header_weight = 100225; CHECK: - indirectgoto: {{.*}} count = 400, irr_loop_header_weight = 400226