| ; Test that prof-inject only injects missing metadata |
| |
| ; RUN: opt -passes=prof-inject -profcheck-default-function-entry-count=10 %s -S -o - | FileCheck %s |
| |
| define void @foo(i32 %i) { |
| %c = icmp eq i32 %i, 0 |
| br i1 %c, label %yes, label %no, !prof !0 |
| yes: |
| br i1 %c, label %yes2, label %no |
| yes2: |
| ret void |
| no: |
| ret void |
| } |
| |
| define void @cold(i32 %i) !prof !1 { |
| %c = icmp eq i32 %i, 0 |
| br i1 %c, label %yes, label %no |
| yes: |
| br i1 %c, label %yes2, label %no |
| yes2: |
| ret void |
| no: |
| ret void |
| } |
| !0 = !{!"branch_weights", i32 1, i32 2} |
| !1 = !{!"function_entry_count", i32 0} |
| |
| ; CHECK-LABEL: @foo |
| ; CHECK: br i1 %c, label %yes, label %no, !prof !1 |
| ; CHECK: br i1 %c, label %yes2, label %no, !prof !2 |
| ; CHECK-LABEL: @cold |
| ; CHECK: br i1 %c, label %yes, label %no{{$}} |
| ; CHECK: br i1 %c, label %yes2, label %no{{$}} |
| ; CHECK: !0 = !{!"function_entry_count", i64 10} |
| ; CHECK: !1 = !{!"branch_weights", i32 1, i32 2} |
| ; CHECK: !2 = !{!"branch_weights", i32 3, i32 5} |
| ; CHECK: !3 = !{!"function_entry_count", i32 0} |