annotate llvm/test/Transforms/LoopTransformWarning/distribution-remarks-missed.ll @ 201:a96fbbdf2d0f

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 04 Jun 2021 21:07:06 +0900
parents 1d019706d866
children 1f2b6ac9f198
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 ; Legacy pass manager
anatofuz
parents:
diff changeset
2 ; RUN: opt < %s -transform-warning -disable-output -pass-remarks-missed=transform-warning -pass-remarks-analysis=transform-warning 2>&1 | FileCheck %s
anatofuz
parents:
diff changeset
3 ; RUN: opt < %s -transform-warning -disable-output -pass-remarks-output=%t.yaml
anatofuz
parents:
diff changeset
4 ; RUN: cat %t.yaml | FileCheck -check-prefix=YAML %s
anatofuz
parents:
diff changeset
5
anatofuz
parents:
diff changeset
6 ; New pass manager
anatofuz
parents:
diff changeset
7 ; RUN: opt < %s -passes=transform-warning -disable-output -pass-remarks-missed=transform-warning -pass-remarks-analysis=transform-warning 2>&1 | FileCheck %s
anatofuz
parents:
diff changeset
8 ; RUN: opt < %s -passes=transform-warning -disable-output -pass-remarks-output=%t.yaml
anatofuz
parents:
diff changeset
9 ; RUN: cat %t.yaml | FileCheck -check-prefix=YAML %s
anatofuz
parents:
diff changeset
10
anatofuz
parents:
diff changeset
11
anatofuz
parents:
diff changeset
12 ; CHECK: warning: source.cpp:19:5: loop not distributed: the optimizer was unable to perform the requested transformation; the transformation might be disabled or specified as part of an unsupported transformation ordering
anatofuz
parents:
diff changeset
13
anatofuz
parents:
diff changeset
14 ; YAML: --- !Failure
anatofuz
parents:
diff changeset
15 ; YAML-NEXT: Pass: transform-warning
anatofuz
parents:
diff changeset
16 ; YAML-NEXT: Name: FailedRequestedDistribution
anatofuz
parents:
diff changeset
17 ; YAML-NEXT: DebugLoc: { File: source.cpp, Line: 19, Column: 5 }
anatofuz
parents:
diff changeset
18 ; YAML-NEXT: Function: _Z17test_array_boundsPiS_i
anatofuz
parents:
diff changeset
19 ; YAML-NEXT: Args:
anatofuz
parents:
diff changeset
20 ; YAML-NEXT: - String: 'loop not distributed: the optimizer was unable to perform the requested transformation; the transformation might be disabled or specified as part of an unsupported transformation ordering'
anatofuz
parents:
diff changeset
21 ; YAML-NEXT: ...
anatofuz
parents:
diff changeset
22
anatofuz
parents:
diff changeset
23 target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
anatofuz
parents:
diff changeset
24
anatofuz
parents:
diff changeset
25 define void @_Z17test_array_boundsPiS_i(i32* nocapture %A, i32* nocapture readonly %B, i32 %Length) !dbg !8 {
anatofuz
parents:
diff changeset
26 entry:
anatofuz
parents:
diff changeset
27 %cmp9 = icmp sgt i32 %Length, 0, !dbg !32
anatofuz
parents:
diff changeset
28 br i1 %cmp9, label %for.body.preheader, label %for.end, !dbg !32
anatofuz
parents:
diff changeset
29
anatofuz
parents:
diff changeset
30 for.body.preheader:
anatofuz
parents:
diff changeset
31 br label %for.body, !dbg !35
anatofuz
parents:
diff changeset
32
anatofuz
parents:
diff changeset
33 for.body:
anatofuz
parents:
diff changeset
34 %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %for.body.preheader ]
anatofuz
parents:
diff changeset
35 %arrayidx = getelementptr inbounds i32, i32* %B, i64 %indvars.iv, !dbg !35
anatofuz
parents:
diff changeset
36 %0 = load i32, i32* %arrayidx, align 4, !dbg !35, !tbaa !18
anatofuz
parents:
diff changeset
37 %idxprom1 = sext i32 %0 to i64, !dbg !35
anatofuz
parents:
diff changeset
38 %arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %idxprom1, !dbg !35
anatofuz
parents:
diff changeset
39 %1 = load i32, i32* %arrayidx2, align 4, !dbg !35, !tbaa !18
anatofuz
parents:
diff changeset
40 %arrayidx4 = getelementptr inbounds i32, i32* %A, i64 %indvars.iv, !dbg !35
anatofuz
parents:
diff changeset
41 store i32 %1, i32* %arrayidx4, align 4, !dbg !35, !tbaa !18
anatofuz
parents:
diff changeset
42 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1, !dbg !32
anatofuz
parents:
diff changeset
43 %lftr.wideiv = trunc i64 %indvars.iv.next to i32, !dbg !32
anatofuz
parents:
diff changeset
44 %exitcond = icmp eq i32 %lftr.wideiv, %Length, !dbg !32
anatofuz
parents:
diff changeset
45 br i1 %exitcond, label %for.end.loopexit, label %for.body, !dbg !32, !llvm.loop !50
anatofuz
parents:
diff changeset
46
anatofuz
parents:
diff changeset
47 for.end.loopexit:
anatofuz
parents:
diff changeset
48 br label %for.end
anatofuz
parents:
diff changeset
49
anatofuz
parents:
diff changeset
50 for.end:
anatofuz
parents:
diff changeset
51 ret void, !dbg !36
anatofuz
parents:
diff changeset
52 }
anatofuz
parents:
diff changeset
53
anatofuz
parents:
diff changeset
54 !llvm.dbg.cu = !{!0}
anatofuz
parents:
diff changeset
55 !llvm.module.flags = !{!9, !10}
anatofuz
parents:
diff changeset
56 !llvm.ident = !{!11}
anatofuz
parents:
diff changeset
57
anatofuz
parents:
diff changeset
58 !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, producer: "clang version 3.5.0", isOptimized: true, runtimeVersion: 6, emissionKind: LineTablesOnly, file: !1, enums: !2, retainedTypes: !2, globals: !2, imports: !2)
anatofuz
parents:
diff changeset
59 !1 = !DIFile(filename: "source.cpp", directory: ".")
anatofuz
parents:
diff changeset
60 !2 = !{}
anatofuz
parents:
diff changeset
61 !4 = distinct !DISubprogram(name: "test", line: 1, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 1, file: !1, scope: !5, type: !6, retainedNodes: !2)
anatofuz
parents:
diff changeset
62 !5 = !DIFile(filename: "source.cpp", directory: ".")
anatofuz
parents:
diff changeset
63 !6 = !DISubroutineType(types: !2)
anatofuz
parents:
diff changeset
64 !7 = distinct !DISubprogram(name: "test_disabled", line: 10, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 10, file: !1, scope: !5, type: !6, retainedNodes: !2)
anatofuz
parents:
diff changeset
65 !8 = distinct !DISubprogram(name: "test_array_bounds", line: 16, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 16, file: !1, scope: !5, type: !6, retainedNodes: !2)
anatofuz
parents:
diff changeset
66 !9 = !{i32 2, !"Dwarf Version", i32 2}
anatofuz
parents:
diff changeset
67 !10 = !{i32 2, !"Debug Info Version", i32 3}
anatofuz
parents:
diff changeset
68 !11 = !{!"clang version 3.5.0"}
anatofuz
parents:
diff changeset
69 !12 = !DILocation(line: 3, column: 8, scope: !13)
anatofuz
parents:
diff changeset
70 !13 = distinct !DILexicalBlock(line: 3, column: 3, file: !1, scope: !4)
anatofuz
parents:
diff changeset
71 !16 = !DILocation(line: 4, column: 5, scope: !17)
anatofuz
parents:
diff changeset
72 !17 = distinct !DILexicalBlock(line: 3, column: 36, file: !1, scope: !13)
anatofuz
parents:
diff changeset
73 !18 = !{!19, !19, i64 0}
anatofuz
parents:
diff changeset
74 !19 = !{!"int", !20, i64 0}
anatofuz
parents:
diff changeset
75 !20 = !{!"omnipotent char", !21, i64 0}
anatofuz
parents:
diff changeset
76 !21 = !{!"Simple C/C++ TBAA"}
anatofuz
parents:
diff changeset
77 !22 = !DILocation(line: 5, column: 9, scope: !23)
anatofuz
parents:
diff changeset
78 !23 = distinct !DILexicalBlock(line: 5, column: 9, file: !1, scope: !17)
anatofuz
parents:
diff changeset
79 !24 = !DILocation(line: 8, column: 1, scope: !4)
anatofuz
parents:
diff changeset
80 !25 = !DILocation(line: 12, column: 8, scope: !26)
anatofuz
parents:
diff changeset
81 !26 = distinct !DILexicalBlock(line: 12, column: 3, file: !1, scope: !7)
anatofuz
parents:
diff changeset
82 !30 = !DILocation(line: 13, column: 5, scope: !26)
anatofuz
parents:
diff changeset
83 !31 = !DILocation(line: 14, column: 1, scope: !7)
anatofuz
parents:
diff changeset
84 !32 = !DILocation(line: 18, column: 8, scope: !33)
anatofuz
parents:
diff changeset
85 !33 = distinct !DILexicalBlock(line: 18, column: 3, file: !1, scope: !8)
anatofuz
parents:
diff changeset
86 !35 = !DILocation(line: 19, column: 5, scope: !33)
anatofuz
parents:
diff changeset
87 !36 = !DILocation(line: 20, column: 1, scope: !8)
anatofuz
parents:
diff changeset
88 !37 = distinct !DILexicalBlock(line: 24, column: 3, file: !1, scope: !46)
anatofuz
parents:
diff changeset
89 !38 = !DILocation(line: 27, column: 3, scope: !37)
anatofuz
parents:
diff changeset
90 !39 = !DILocation(line: 31, column: 3, scope: !37)
anatofuz
parents:
diff changeset
91 !40 = !DILocation(line: 28, column: 9, scope: !37)
anatofuz
parents:
diff changeset
92 !41 = !DILocation(line: 29, column: 11, scope: !37)
anatofuz
parents:
diff changeset
93 !42 = !DILocation(line: 29, column: 7, scope: !37)
anatofuz
parents:
diff changeset
94 !43 = !DILocation(line: 27, column: 32, scope: !37)
anatofuz
parents:
diff changeset
95 !44 = !DILocation(line: 27, column: 30, scope: !37)
anatofuz
parents:
diff changeset
96 !45 = !DILocation(line: 27, column: 21, scope: !37)
anatofuz
parents:
diff changeset
97 !46 = distinct !DISubprogram(name: "test_multiple_failures", line: 26, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 26, file: !1, scope: !5, type: !6, retainedNodes: !2)
anatofuz
parents:
diff changeset
98
anatofuz
parents:
diff changeset
99 !50 = !{!50, !{!"llvm.loop.distribute.enable"}}