| ; RUN: opt -passes='annotation-remarks' -pass-remarks-missed='annotation-remarks' -disable-output -pass-remarks-output=%t.opt.yaml %s |
| ; RUN: FileCheck --input-file=%t.opt.yaml %s |
| |
| ; CHECK: --- !Analysis |
| ; CHECK-NEXT: Pass: annotation-remarks |
| ; CHECK-NEXT: Name: AnnotationSummary |
| ; CHECK-NEXT: Function: test1 |
| ; CHECK-NEXT: Args: |
| ; CHECK-NEXT: - String: 'Annotated ' |
| ; CHECK-NEXT: - count: '4' |
| ; CHECK-NEXT: - String: ' instructions with ' |
| ; CHECK-NEXT: - type: _remarks1 |
| ; CHECK-NEXT: ... |
| ; CHECK-NEXT: --- !Analysis |
| ; CHECK-NEXT: Pass: annotation-remarks |
| ; CHECK-NEXT: Name: AnnotationSummary |
| ; CHECK-NEXT: Function: test1 |
| ; CHECK-NEXT: Args: |
| ; CHECK-NEXT: - String: 'Annotated ' |
| ; CHECK-NEXT: - count: '3' |
| ; CHECK-NEXT: - String: ' instructions with ' |
| ; CHECK-NEXT: - type: _remarks2 |
| ; CHECK-NEXT: ... |
| ; CHECK-NEXT: --- !Analysis |
| ; CHECK-NEXT: Pass: annotation-remarks |
| ; CHECK-NEXT: Name: AnnotationSummary |
| ; CHECK-NEXT: Function: test2 |
| ; CHECK-NEXT: Args: |
| ; CHECK-NEXT: - String: 'Annotated ' |
| ; CHECK-NEXT: - count: '2' |
| ; CHECK-NEXT: - String: ' instructions with ' |
| ; CHECK-NEXT: - type: _remarks1 |
| ; CHECK-NEXT: ... |
| |
| define void @test1(ptr %a) { |
| entry: |
| %a.addr = alloca ptr, align 8, !annotation !0 |
| store ptr null, ptr %a.addr, align 8, !annotation !1 |
| store ptr %a, ptr %a.addr, align 8, !annotation !0 |
| ret void, !annotation !0 |
| } |
| |
| define void @test2(ptr %a) { |
| entry: |
| %a.addr = alloca ptr, align 8, !annotation !1 |
| ret void, !annotation !1 |
| } |
| |
| !0 = !{!"_remarks1", !"_remarks2"} |
| !1 = !{!"_remarks1"} |