diff options
author | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2015-08-28 20:26:49 +0000 |
---|---|---|
committer | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2015-08-28 20:26:49 +0000 |
commit | a5ae7c1c9fdbaaa648ae7bcf945ce714fcba91cc (patch) | |
tree | ed609439904135d6bbb0da82fb4e8718677cb2cd /test/CodeGen/PowerPC | |
parent | 18188f126182961d3882347f27d3e82f5f2f71e3 (diff) |
DI: Require subprogram definitions to be distinct
As a follow-up to r246098, require `DISubprogram` definitions
(`isDefinition: true`) to be 'distinct'. Specifically, add an assembler
check, a verifier check, and bitcode upgrading logic to combat testcase
bitrot after the `DIBuilder` change.
While working on the testcases, I realized that
test/Linker/subprogram-linkonce-weak-odr.ll isn't relevant anymore. Its
purpose was to check for a corner case in PR22792 where two subprogram
definitions match exactly and share the same metadata node. The new
verifier check, requiring that subprogram definitions are 'distinct',
precludes that possibility.
I updated almost all the IR with the following script:
git grep -l -E -e '= !DISubprogram\(.* isDefinition: true' |
grep -v test/Bitcode |
xargs sed -i '' -e 's/= \(!DISubprogram(.*, isDefinition: true\)/= distinct \1/'
Likely some variant of would work for out-of-tree testcases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@246327 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/PowerPC')
-rw-r--r-- | test/CodeGen/PowerPC/dbg.ll | 2 | ||||
-rw-r--r-- | test/CodeGen/PowerPC/pr17168.ll | 56 | ||||
-rw-r--r-- | test/CodeGen/PowerPC/pr24546.ll | 4 | ||||
-rw-r--r-- | test/CodeGen/PowerPC/unwind-dw2-g.ll | 2 |
4 files changed, 32 insertions, 32 deletions
diff --git a/test/CodeGen/PowerPC/dbg.ll b/test/CodeGen/PowerPC/dbg.ll index f29bc0eaae4..9b33134babe 100644 --- a/test/CodeGen/PowerPC/dbg.ll +++ b/test/CodeGen/PowerPC/dbg.ll @@ -20,7 +20,7 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon !0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.1", isOptimized: true, emissionKind: 0, file: !21, enums: !1, retainedTypes: !1, subprograms: !3, globals: !1, imports: !1) !1 = !{} !3 = !{!5} -!5 = !DISubprogram(name: "main", line: 1, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, file: !21, scope: null, type: !7, function: i32 (i32, i8**)* @main, variables: !13) +!5 = distinct !DISubprogram(name: "main", line: 1, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, file: !21, scope: null, type: !7, function: i32 (i32, i8**)* @main, variables: !13) !6 = !DIFile(filename: "dbg.c", directory: "/src") !7 = !DISubroutineType(types: !8) !8 = !{!9, !9, !10} diff --git a/test/CodeGen/PowerPC/pr17168.ll b/test/CodeGen/PowerPC/pr17168.ll index 1a909423548..41eef12afb8 100644 --- a/test/CodeGen/PowerPC/pr17168.ll +++ b/test/CodeGen/PowerPC/pr17168.ll @@ -58,7 +58,7 @@ attributes #1 = { nounwind readnone } !1 = !DIFile(filename: "bt.c", directory: "/home/hfinkel/src/NPB2.3-omp-C/BT") !2 = !{} !3 = !{!4, !82, !102, !114, !132, !145, !154, !155, !162, !183, !200, !201, !207, !208, !215, !221, !230, !238, !246, !255, !260, !261, !268, !274, !279, !280, !287, !293} -!4 = !DISubprogram(name: "main", line: 74, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 74, file: !1, scope: !5, type: !6, variables: !12) +!4 = distinct !DISubprogram(name: "main", line: 74, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 74, file: !1, scope: !5, type: !6, variables: !12) !5 = !DIFile(filename: "bt.c", directory: "/home/hfinkel/src/NPB2.3-omp-C/BT") !6 = !DISubroutineType(types: !7) !7 = !{!8, !8, !9} @@ -136,7 +136,7 @@ attributes #1 = { nounwind readnone } !79 = !DICompositeType(tag: DW_TAG_array_type, size: 160, align: 8, baseType: !11, elements: !80) !80 = !{!81} !81 = !DISubrange(count: 20) -!82 = !DISubprogram(name: "verify", line: 2388, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 2388, file: !1, scope: !5, type: !83, variables: !86) +!82 = distinct !DISubprogram(name: "verify", line: 2388, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 2388, file: !1, scope: !5, type: !83, variables: !86) !83 = !DISubroutineType(types: !84) !84 = !{null, !8, !10, !85} !85 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, baseType: !24) @@ -156,7 +156,7 @@ attributes #1 = { nounwind readnone } !99 = !DILocalVariable(name: "xcr", line: 2398, scope: !82, file: !5, type: !91) !100 = !DILocalVariable(name: "dtref", line: 2398, scope: !82, file: !5, type: !20) !101 = !DILocalVariable(name: "m", line: 2399, scope: !82, file: !5, type: !8) -!102 = !DISubprogram(name: "rhs_norm", line: 266, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 266, file: !1, scope: !5, type: !103, variables: !106) +!102 = distinct !DISubprogram(name: "rhs_norm", line: 266, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 266, file: !1, scope: !5, type: !103, variables: !106) !103 = !DISubroutineType(types: !104) !104 = !{null, !105} !105 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, baseType: !20) @@ -168,7 +168,7 @@ attributes #1 = { nounwind readnone } !111 = !DILocalVariable(name: "d", line: 271, scope: !102, file: !5, type: !8) !112 = !DILocalVariable(name: "m", line: 271, scope: !102, file: !5, type: !8) !113 = !DILocalVariable(name: "add", line: 272, scope: !102, file: !5, type: !20) -!114 = !DISubprogram(name: "compute_rhs", line: 1767, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 1767, file: !1, scope: !5, type: !115, function: void ()* @compute_rhs, variables: !117) +!114 = distinct !DISubprogram(name: "compute_rhs", line: 1767, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 1767, file: !1, scope: !5, type: !115, function: void ()* @compute_rhs, variables: !117) !115 = !DISubroutineType(types: !116) !116 = !{null} !117 = !{!118, !119, !120, !121, !122, !123, !124, !125, !126, !127, !128, !129, !130, !131} @@ -186,7 +186,7 @@ attributes #1 = { nounwind readnone } !129 = !DILocalVariable(name: "wijk", line: 1770, scope: !114, file: !5, type: !20) !130 = !DILocalVariable(name: "wp1", line: 1770, scope: !114, file: !5, type: !20) !131 = !DILocalVariable(name: "wm1", line: 1770, scope: !114, file: !5, type: !20) -!132 = !DISubprogram(name: "error_norm", line: 225, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 225, file: !1, scope: !5, type: !103, variables: !133) +!132 = distinct !DISubprogram(name: "error_norm", line: 225, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 225, file: !1, scope: !5, type: !103, variables: !133) !133 = !{!134, !135, !136, !137, !138, !139, !140, !141, !142, !143, !144} !134 = !DILocalVariable(name: "rms", line: 225, arg: 1, scope: !132, file: !5, type: !105) !135 = !DILocalVariable(name: "i", line: 232, scope: !132, file: !5, type: !8) @@ -199,7 +199,7 @@ attributes #1 = { nounwind readnone } !142 = !DILocalVariable(name: "zeta", line: 233, scope: !132, file: !5, type: !20) !143 = !DILocalVariable(name: "u_exact", line: 233, scope: !132, file: !5, type: !91) !144 = !DILocalVariable(name: "add", line: 233, scope: !132, file: !5, type: !20) -!145 = !DISubprogram(name: "exact_solution", line: 643, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 644, file: !1, scope: !5, type: !146, variables: !148) +!145 = distinct !DISubprogram(name: "exact_solution", line: 643, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 644, file: !1, scope: !5, type: !146, variables: !148) !146 = !DISubroutineType(types: !147) !147 = !{null, !20, !20, !20, !105} !148 = !{!149, !150, !151, !152, !153} @@ -208,15 +208,15 @@ attributes #1 = { nounwind readnone } !151 = !DILocalVariable(name: "zeta", line: 643, arg: 3, scope: !145, file: !5, type: !20) !152 = !DILocalVariable(name: "dtemp", line: 644, arg: 4, scope: !145, file: !5, type: !105) !153 = !DILocalVariable(name: "m", line: 653, scope: !145, file: !5, type: !8) -!154 = !DISubprogram(name: "set_constants", line: 2191, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 2191, file: !1, scope: !5, type: !115, variables: !2) -!155 = !DISubprogram(name: "lhsinit", line: 855, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 855, file: !1, scope: !5, type: !115, variables: !156) +!154 = distinct !DISubprogram(name: "set_constants", line: 2191, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 2191, file: !1, scope: !5, type: !115, variables: !2) +!155 = distinct !DISubprogram(name: "lhsinit", line: 855, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 855, file: !1, scope: !5, type: !115, variables: !156) !156 = !{!157, !158, !159, !160, !161} !157 = !DILocalVariable(name: "i", line: 857, scope: !155, file: !5, type: !8) !158 = !DILocalVariable(name: "j", line: 857, scope: !155, file: !5, type: !8) !159 = !DILocalVariable(name: "k", line: 857, scope: !155, file: !5, type: !8) !160 = !DILocalVariable(name: "m", line: 857, scope: !155, file: !5, type: !8) !161 = !DILocalVariable(name: "n", line: 857, scope: !155, file: !5, type: !8) -!162 = !DISubprogram(name: "initialize", line: 669, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 669, file: !1, scope: !5, type: !115, variables: !163) +!162 = distinct !DISubprogram(name: "initialize", line: 669, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 669, file: !1, scope: !5, type: !115, variables: !163) !163 = !{!164, !165, !166, !167, !168, !169, !170, !171, !172, !173, !174, !179, !180, !181, !182} !164 = !DILocalVariable(name: "i", line: 679, scope: !162, file: !5, type: !8) !165 = !DILocalVariable(name: "j", line: 679, scope: !162, file: !5, type: !8) @@ -237,7 +237,7 @@ attributes #1 = { nounwind readnone } !180 = !DILocalVariable(name: "Peta", line: 680, scope: !162, file: !5, type: !20) !181 = !DILocalVariable(name: "Pzeta", line: 680, scope: !162, file: !5, type: !20) !182 = !DILocalVariable(name: "temp", line: 680, scope: !162, file: !5, type: !91) -!183 = !DISubprogram(name: "exact_rhs", line: 301, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 301, file: !1, scope: !5, type: !115, variables: !184) +!183 = distinct !DISubprogram(name: "exact_rhs", line: 301, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 301, file: !1, scope: !5, type: !115, variables: !184) !184 = !{!185, !186, !187, !188, !189, !190, !191, !192, !193, !194, !195, !196, !197, !198, !199} !185 = !DILocalVariable(name: "dtemp", line: 310, scope: !183, file: !5, type: !91) !186 = !DILocalVariable(name: "xi", line: 310, scope: !183, file: !5, type: !20) @@ -254,28 +254,28 @@ attributes #1 = { nounwind readnone } !197 = !DILocalVariable(name: "jm1", line: 311, scope: !183, file: !5, type: !8) !198 = !DILocalVariable(name: "km1", line: 311, scope: !183, file: !5, type: !8) !199 = !DILocalVariable(name: "kp1", line: 311, scope: !183, file: !5, type: !8) -!200 = !DISubprogram(name: "adi", line: 210, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 210, file: !1, scope: !5, type: !115, variables: !2) -!201 = !DISubprogram(name: "add", line: 187, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 187, file: !1, scope: !5, type: !115, variables: !202) +!200 = distinct !DISubprogram(name: "adi", line: 210, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 210, file: !1, scope: !5, type: !115, variables: !2) +!201 = distinct !DISubprogram(name: "add", line: 187, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 187, file: !1, scope: !5, type: !115, variables: !202) !202 = !{!203, !204, !205, !206} !203 = !DILocalVariable(name: "i", line: 193, scope: !201, file: !5, type: !8) !204 = !DILocalVariable(name: "j", line: 193, scope: !201, file: !5, type: !8) !205 = !DILocalVariable(name: "k", line: 193, scope: !201, file: !5, type: !8) !206 = !DILocalVariable(name: "m", line: 193, scope: !201, file: !5, type: !8) -!207 = !DISubprogram(name: "z_solve", line: 3457, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 3457, file: !1, scope: !5, type: !115, variables: !2) -!208 = !DISubprogram(name: "z_backsubstitute", line: 3480, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 3480, file: !1, scope: !5, type: !115, variables: !209) +!207 = distinct !DISubprogram(name: "z_solve", line: 3457, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 3457, file: !1, scope: !5, type: !115, variables: !2) +!208 = distinct !DISubprogram(name: "z_backsubstitute", line: 3480, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 3480, file: !1, scope: !5, type: !115, variables: !209) !209 = !{!210, !211, !212, !213, !214} !210 = !DILocalVariable(name: "i", line: 3492, scope: !208, file: !5, type: !8) !211 = !DILocalVariable(name: "j", line: 3492, scope: !208, file: !5, type: !8) !212 = !DILocalVariable(name: "k", line: 3492, scope: !208, file: !5, type: !8) !213 = !DILocalVariable(name: "m", line: 3492, scope: !208, file: !5, type: !8) !214 = !DILocalVariable(name: "n", line: 3492, scope: !208, file: !5, type: !8) -!215 = !DISubprogram(name: "z_solve_cell", line: 3512, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 3512, file: !1, scope: !5, type: !115, variables: !216) +!215 = distinct !DISubprogram(name: "z_solve_cell", line: 3512, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 3512, file: !1, scope: !5, type: !115, variables: !216) !216 = !{!217, !218, !219, !220} !217 = !DILocalVariable(name: "i", line: 3527, scope: !215, file: !5, type: !8) !218 = !DILocalVariable(name: "j", line: 3527, scope: !215, file: !5, type: !8) !219 = !DILocalVariable(name: "k", line: 3527, scope: !215, file: !5, type: !8) !220 = !DILocalVariable(name: "ksize", line: 3527, scope: !215, file: !5, type: !8) -!221 = !DISubprogram(name: "binvrhs", line: 3154, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 3154, file: !1, scope: !5, type: !222, variables: !225) +!221 = distinct !DISubprogram(name: "binvrhs", line: 3154, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 3154, file: !1, scope: !5, type: !222, variables: !225) !222 = !DISubroutineType(types: !223) !223 = !{null, !224, !105} !224 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, baseType: !91) @@ -284,7 +284,7 @@ attributes #1 = { nounwind readnone } !227 = !DILocalVariable(name: "r", line: 3154, arg: 2, scope: !221, file: !5, type: !105) !228 = !DILocalVariable(name: "pivot", line: 3159, scope: !221, file: !5, type: !20) !229 = !DILocalVariable(name: "coeff", line: 3159, scope: !221, file: !5, type: !20) -!230 = !DISubprogram(name: "matmul_sub", line: 2841, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 2842, file: !1, scope: !5, type: !231, variables: !233) +!230 = distinct !DISubprogram(name: "matmul_sub", line: 2841, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 2842, file: !1, scope: !5, type: !231, variables: !233) !231 = !DISubroutineType(types: !232) !232 = !{null, !224, !224, !224} !233 = !{!234, !235, !236, !237} @@ -292,7 +292,7 @@ attributes #1 = { nounwind readnone } !235 = !DILocalVariable(name: "bblock", line: 2841, arg: 2, scope: !230, file: !5, type: !224) !236 = !DILocalVariable(name: "cblock", line: 2842, arg: 3, scope: !230, file: !5, type: !224) !237 = !DILocalVariable(name: "j", line: 2851, scope: !230, file: !5, type: !8) -!238 = !DISubprogram(name: "matvec_sub", line: 2814, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 2814, file: !1, scope: !5, type: !239, variables: !241) +!238 = distinct !DISubprogram(name: "matvec_sub", line: 2814, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 2814, file: !1, scope: !5, type: !239, variables: !241) !239 = !DISubroutineType(types: !240) !240 = !{null, !224, !105, !105} !241 = !{!242, !243, !244, !245} @@ -300,7 +300,7 @@ attributes #1 = { nounwind readnone } !243 = !DILocalVariable(name: "avec", line: 2814, arg: 2, scope: !238, file: !5, type: !105) !244 = !DILocalVariable(name: "bvec", line: 2814, arg: 3, scope: !238, file: !5, type: !105) !245 = !DILocalVariable(name: "i", line: 2823, scope: !238, file: !5, type: !8) -!246 = !DISubprogram(name: "binvcrhs", line: 2885, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 2885, file: !1, scope: !5, type: !247, variables: !249) +!246 = distinct !DISubprogram(name: "binvcrhs", line: 2885, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 2885, file: !1, scope: !5, type: !247, variables: !249) !247 = !DISubroutineType(types: !248) !248 = !{null, !224, !224, !105} !249 = !{!250, !251, !252, !253, !254} @@ -309,45 +309,45 @@ attributes #1 = { nounwind readnone } !252 = !DILocalVariable(name: "r", line: 2885, arg: 3, scope: !246, file: !5, type: !105) !253 = !DILocalVariable(name: "pivot", line: 2890, scope: !246, file: !5, type: !20) !254 = !DILocalVariable(name: "coeff", line: 2890, scope: !246, file: !5, type: !20) -!255 = !DISubprogram(name: "lhsz", line: 1475, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 1475, file: !1, scope: !5, type: !115, variables: !256) +!255 = distinct !DISubprogram(name: "lhsz", line: 1475, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 1475, file: !1, scope: !5, type: !115, variables: !256) !256 = !{!257, !258, !259} !257 = !DILocalVariable(name: "i", line: 1484, scope: !255, file: !5, type: !8) !258 = !DILocalVariable(name: "j", line: 1484, scope: !255, file: !5, type: !8) !259 = !DILocalVariable(name: "k", line: 1484, scope: !255, file: !5, type: !8) -!260 = !DISubprogram(name: "y_solve", line: 3299, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 3299, file: !1, scope: !5, type: !115, variables: !2) -!261 = !DISubprogram(name: "y_backsubstitute", line: 3323, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 3323, file: !1, scope: !5, type: !115, variables: !262) +!260 = distinct !DISubprogram(name: "y_solve", line: 3299, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 3299, file: !1, scope: !5, type: !115, variables: !2) +!261 = distinct !DISubprogram(name: "y_backsubstitute", line: 3323, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 3323, file: !1, scope: !5, type: !115, variables: !262) !262 = !{!263, !264, !265, !266, !267} !263 = !DILocalVariable(name: "i", line: 3335, scope: !261, file: !5, type: !8) !264 = !DILocalVariable(name: "j", line: 3335, scope: !261, file: !5, type: !8) !265 = !DILocalVariable(name: "k", line: 3335, scope: !261, file: !5, type: !8) !266 = !DILocalVariable(name: "m", line: 3335, scope: !261, file: !5, type: !8) !267 = !DILocalVariable(name: "n", line: 3335, scope: !261, file: !5, type: !8) -!268 = !DISubprogram(name: "y_solve_cell", line: 3355, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 3355, file: !1, scope: !5, type: !115, variables: !269) +!268 = distinct !DISubprogram(name: "y_solve_cell", line: 3355, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 3355, file: !1, scope: !5, type: !115, variables: !269) !269 = !{!270, !271, !272, !273} !270 = !DILocalVariable(name: "i", line: 3370, scope: !268, file: !5, type: !8) !271 = !DILocalVariable(name: "j", line: 3370, scope: !268, file: !5, type: !8) !272 = !DILocalVariable(name: "k", line: 3370, scope: !268, file: !5, type: !8) !273 = !DILocalVariable(name: "jsize", line: 3370, scope: !268, file: !5, type: !8) -!274 = !DISubprogram(name: "lhsy", line: 1181, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 1181, file: !1, scope: !5, type: !115, variables: !275) +!274 = distinct !DISubprogram(name: "lhsy", line: 1181, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 1181, file: !1, scope: !5, type: !115, variables: !275) !275 = !{!276, !277, !278} !276 = !DILocalVariable(name: "i", line: 1190, scope: !274, file: !5, type: !8) !277 = !DILocalVariable(name: "j", line: 1190, scope: !274, file: !5, type: !8) !278 = !DILocalVariable(name: "k", line: 1190, scope: !274, file: !5, type: !8) -!279 = !DISubprogram(name: "x_solve", line: 2658, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 2658, file: !1, scope: !5, type: !115, variables: !2) -!280 = !DISubprogram(name: "x_backsubstitute", line: 2684, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 2684, file: !1, scope: !5, type: !115, variables: !281) +!279 = distinct !DISubprogram(name: "x_solve", line: 2658, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 2658, file: !1, scope: !5, type: !115, variables: !2) +!280 = distinct !DISubprogram(name: "x_backsubstitute", line: 2684, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 2684, file: !1, scope: !5, type: !115, variables: !281) !281 = !{!282, !283, !284, !285, !286} !282 = !DILocalVariable(name: "i", line: 2696, scope: !280, file: !5, type: !8) !283 = !DILocalVariable(name: "j", line: 2696, scope: !280, file: !5, type: !8) !284 = !DILocalVariable(name: "k", line: 2696, scope: !280, file: !5, type: !8) !285 = !DILocalVariable(name: "m", line: 2696, scope: !280, file: !5, type: !8) !286 = !DILocalVariable(name: "n", line: 2696, scope: !280, file: !5, type: !8) -!287 = !DISubprogram(name: "x_solve_cell", line: 2716, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 2716, file: !1, scope: !5, type: !115, variables: !288) +!287 = distinct !DISubprogram(name: "x_solve_cell", line: 2716, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 2716, file: !1, scope: !5, type: !115, variables: !288) !288 = !{!289, !290, !291, !292} !289 = !DILocalVariable(name: "i", line: 2728, scope: !287, file: !5, type: !8) !290 = !DILocalVariable(name: "j", line: 2728, scope: !287, file: !5, type: !8) !291 = !DILocalVariable(name: "k", line: 2728, scope: !287, file: !5, type: !8) !292 = !DILocalVariable(name: "isize", line: 2728, scope: !287, file: !5, type: !8) -!293 = !DISubprogram(name: "lhsx", line: 898, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 898, file: !1, scope: !5, type: !115, variables: !294) +!293 = distinct !DISubprogram(name: "lhsx", line: 898, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 898, file: !1, scope: !5, type: !115, variables: !294) !294 = !{!295, !296, !297} !295 = !DILocalVariable(name: "i", line: 907, scope: !293, file: !5, type: !8) !296 = !DILocalVariable(name: "j", line: 907, scope: !293, file: !5, type: !8) diff --git a/test/CodeGen/PowerPC/pr24546.ll b/test/CodeGen/PowerPC/pr24546.ll index 8c4cdfa4f8c..a04edfe65ea 100644 --- a/test/CodeGen/PowerPC/pr24546.ll +++ b/test/CodeGen/PowerPC/pr24546.ll @@ -62,7 +62,7 @@ attributes #3 = { nounwind } !3 = !{!4} !4 = !DIBasicType(name: "double", size: 64, align: 64, encoding: DW_ATE_float) !5 = !{!6, !18} -!6 = !DISubprogram(name: "_php_math_round", scope: !1, file: !1, line: 15, type: !7, isLocal: false, isDefinition: true, scopeLine: 16, flags: DIFlagPrototyped, isOptimized: true, function: double (double, i32, i32)* @_php_math_round, variables: !10) +!6 = distinct !DISubprogram(name: "_php_math_round", scope: !1, file: !1, line: 15, type: !7, isLocal: false, isDefinition: true, scopeLine: 16, flags: DIFlagPrototyped, isOptimized: true, function: double (double, i32, i32)* @_php_math_round, variables: !10) !7 = !DISubroutineType(types: !8) !8 = !{!4, !4, !9, !9} !9 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed) @@ -74,7 +74,7 @@ attributes #3 = { nounwind } !15 = !DILocalVariable(name: "f2", scope: !6, file: !1, line: 17, type: !4) !16 = !DILocalVariable(name: "tmp_value", scope: !6, file: !1, line: 18, type: !4) !17 = !DILocalVariable(name: "precision_places", scope: !6, file: !1, line: 19, type: !9) -!18 = !DISubprogram(name: "php_intpow10", scope: !1, file: !1, line: 1, type: !19, isLocal: true, isDefinition: true, scopeLine: 2, flags: DIFlagPrototyped, isOptimized: true, variables: !21) +!18 = distinct !DISubprogram(name: "php_intpow10", scope: !1, file: !1, line: 1, type: !19, isLocal: true, isDefinition: true, scopeLine: 2, flags: DIFlagPrototyped, isOptimized: true, variables: !21) !19 = !DISubroutineType(types: !20) !20 = !{!4, !9} !21 = !{!22} diff --git a/test/CodeGen/PowerPC/unwind-dw2-g.ll b/test/CodeGen/PowerPC/unwind-dw2-g.ll index 4e21503a495..69adf2d2052 100644 --- a/test/CodeGen/PowerPC/unwind-dw2-g.ll +++ b/test/CodeGen/PowerPC/unwind-dw2-g.ll @@ -25,7 +25,7 @@ attributes #0 = { nounwind } !1 = !DIFile(filename: "/tmp/unwind-dw2.c", directory: "/tmp") !2 = !{} !3 = !{!4} -!4 = !DISubprogram(name: "foo", line: 1, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, scopeLine: 1, file: !1, scope: !5, type: !6, function: void ()* @foo, variables: !2) +!4 = distinct !DISubprogram(name: "foo", line: 1, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, scopeLine: 1, file: !1, scope: !5, type: !6, function: void ()* @foo, variables: !2) !5 = !DIFile(filename: "/tmp/unwind-dw2.c", directory: "/tmp") !6 = !DISubroutineType(types: !7) !7 = !{null} |