Index: lib/Transforms/IPO/SampleProfile.cpp =================================================================== --- lib/Transforms/IPO/SampleProfile.cpp +++ lib/Transforms/IPO/SampleProfile.cpp @@ -474,7 +474,7 @@ const DILocation *DIL = DLoc; uint32_t LineOffset = getOffset(DIL); - uint32_t Discriminator = DIL->getDiscriminator(); + uint32_t Discriminator = DIL->getBaseDiscriminator(); ErrorOr R = IsCall ? FS->findCallSamplesAt(LineOffset, Discriminator) : FS->findSamplesAt(LineOffset, Discriminator); @@ -490,9 +490,10 @@ " samples from profile (offset: " + Twine(LineOffset) + ((Discriminator) ? Twine(".") + Twine(Discriminator) : "") + ")"); } - DEBUG(dbgs() << " " << DLoc.getLine() << "." << DIL->getDiscriminator() - << ":" << Inst << " (line offset: " << LineOffset << "." - << DIL->getDiscriminator() << " - weight: " << R.get() + DEBUG(dbgs() << " " << DLoc.getLine() << "." + << DIL->getBaseDiscriminator() << ":" << Inst + << " (line offset: " << LineOffset << "." + << DIL->getBaseDiscriminator() << " - weight: " << R.get() << ")\n"); } return R; @@ -564,7 +565,7 @@ return nullptr; return FS->findFunctionSamplesAt( - LineLocation(getOffset(DIL), DIL->getDiscriminator())); + LineLocation(getOffset(DIL), DIL->getBaseDiscriminator())); } /// \brief Get the FunctionSamples for an instruction. @@ -584,7 +585,7 @@ return Samples; } for (DIL = DIL->getInlinedAt(); DIL; DIL = DIL->getInlinedAt()) - S.push_back(LineLocation(getOffset(DIL), DIL->getDiscriminator())); + S.push_back(LineLocation(getOffset(DIL), DIL->getBaseDiscriminator())); if (S.size() == 0) return Samples; const FunctionSamples *FS = Samples; @@ -1105,7 +1106,7 @@ continue; const DILocation *DIL = DLoc; uint32_t LineOffset = getOffset(DIL); - uint32_t Discriminator = DIL->getDiscriminator(); + uint32_t Discriminator = DIL->getBaseDiscriminator(); const FunctionSamples *FS = findFunctionSamples(I); if (!FS) Index: test/Transforms/SampleProfile/calls.ll =================================================================== --- test/Transforms/SampleProfile/calls.ll +++ test/Transforms/SampleProfile/calls.ll @@ -103,14 +103,14 @@ !12 = !DILocation(line: 8, scope: !7) !13 = !DILocation(line: 9, scope: !7) !14 = !DILocation(line: 9, scope: !15) -!15 = !DILexicalBlockFile(discriminator: 1, file: !1, scope: !7) +!15 = !DILexicalBlockFile(discriminator: 2, file: !1, scope: !7) !16 = !DILocation(line: 10, scope: !17) !17 = distinct !DILexicalBlock(line: 10, column: 0, file: !1, scope: !7) !18 = !DILocation(line: 10, scope: !19) -!19 = !DILexicalBlockFile(discriminator: 1, file: !1, scope: !17) +!19 = !DILexicalBlockFile(discriminator: 2, file: !1, scope: !17) !20 = !DILocation(line: 10, scope: !21) -!21 = !DILexicalBlockFile(discriminator: 2, file: !1, scope: !17) +!21 = !DILexicalBlockFile(discriminator: 4, file: !1, scope: !17) !22 = !DILocation(line: 10, scope: !23) -!23 = !DILexicalBlockFile(discriminator: 3, file: !1, scope: !17) +!23 = !DILexicalBlockFile(discriminator: 6, file: !1, scope: !17) !24 = !DILocation(line: 11, scope: !7) !25 = !DILocation(line: 12, scope: !7) Index: test/Transforms/SampleProfile/cov-zero-samples.ll =================================================================== --- test/Transforms/SampleProfile/cov-zero-samples.ll +++ test/Transforms/SampleProfile/cov-zero-samples.ll @@ -106,7 +106,7 @@ !13 = !{!14, !14} !14 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !15 = !DILocation(line: 5, column: 27, scope: !16) -!16 = !DILexicalBlockFile(scope: !11, file: !3, discriminator: 3) +!16 = !DILexicalBlockFile(scope: !11, file: !3, discriminator: 6) !17 = distinct !DISubprogram(name: "main", scope: !3, file: !3, line: 7, type: !18, isLocal: false, isDefinition: true, scopeLine: 7, flags: DIFlagPrototyped, isOptimized: false, unit: !2, variables: !4) !18 = !DISubroutineType(types: !19) !19 = !{!14} @@ -118,7 +118,7 @@ !25 = !DILocation(line: 9, column: 18, scope: !24) !26 = !DILocation(line: 9, column: 8, scope: !24) !27 = !DILocation(line: 9, column: 25, scope: !28) -!28 = !DILexicalBlockFile(scope: !29, file: !3, discriminator: 1) +!28 = !DILexicalBlockFile(scope: !29, file: !3, discriminator: 2) !29 = distinct !DILexicalBlock(scope: !24, file: !3, line: 9, column: 3) !30 = !DILocation(line: 9, column: 29, scope: !28) !31 = !DILocation(line: 9, column: 27, scope: !28) @@ -130,7 +130,7 @@ !37 = !DILocation(line: 10, column: 11, scope: !34) !38 = !DILocation(line: 10, column: 9, scope: !35) !39 = !DILocation(line: 10, column: 36, scope: !40) -!40 = !DILexicalBlockFile(scope: !34, file: !3, discriminator: 1) +!40 = !DILexicalBlockFile(scope: !34, file: !3, discriminator: 2) !41 = !DILocation(line: 10, column: 23, scope: !40) !42 = !DILocation(line: 10, column: 20, scope: !40) !43 = !DILocation(line: 10, column: 16, scope: !40) @@ -139,7 +139,7 @@ !46 = !DILocation(line: 11, column: 9, scope: !35) !47 = !DILocation(line: 12, column: 3, scope: !35) !48 = !DILocation(line: 9, column: 33, scope: !49) -!49 = !DILexicalBlockFile(scope: !29, file: !3, discriminator: 2) +!49 = !DILexicalBlockFile(scope: !29, file: !3, discriminator: 4) !50 = !DILocation(line: 9, column: 3, scope: !49) !51 = !DILocation(line: 13, column: 25, scope: !17) !52 = !DILocation(line: 13, column: 3, scope: !17) Index: test/Transforms/SampleProfile/discriminator.ll =================================================================== --- test/Transforms/SampleProfile/discriminator.ll +++ test/Transforms/SampleProfile/discriminator.ll @@ -79,12 +79,12 @@ !10 = !DILocation(line: 2, scope: !4) !11 = !DILocation(line: 3, scope: !4) !12 = !DILocation(line: 3, scope: !13) -!13 = !DILexicalBlockFile(discriminator: 1, file: !1, scope: !4) +!13 = !DILexicalBlockFile(discriminator: 2, file: !1, scope: !4) !14 = !DILocation(line: 4, scope: !15) !15 = distinct !DILexicalBlock(line: 4, column: 0, file: !1, scope: !16) !16 = distinct !DILexicalBlock(line: 3, column: 0, file: !1, scope: !4) !17 = !DILocation(line: 4, scope: !18) -!18 = !DILexicalBlockFile(discriminator: 1, file: !1, scope: !15) +!18 = !DILexicalBlockFile(discriminator: 2, file: !1, scope: !15) !19 = !DILocation(line: 5, scope: !16) !20 = !DILocation(line: 6, scope: !16) !21 = !DILocation(line: 7, scope: !4) Index: test/Transforms/SampleProfile/inline-coverage.ll =================================================================== --- test/Transforms/SampleProfile/inline-coverage.ll +++ test/Transforms/SampleProfile/inline-coverage.ll @@ -120,7 +120,7 @@ !27 = !DILocation(line: 9, column: 12, scope: !26) !28 = !DILocation(line: 9, column: 8, scope: !26) !29 = !DILocation(line: 9, column: 19, scope: !30) -!30 = !DILexicalBlockFile(scope: !31, file: !1, discriminator: 1) +!30 = !DILexicalBlockFile(scope: !31, file: !1, discriminator: 2) !31 = distinct !DILexicalBlock(scope: !26, file: !1, line: 9, column: 3) !32 = !DILocation(line: 9, column: 21, scope: !30) !33 = !DILocation(line: 9, column: 3, scope: !30) Index: test/Transforms/SampleProfile/inline.ll =================================================================== --- test/Transforms/SampleProfile/inline.ll +++ test/Transforms/SampleProfile/inline.ll @@ -96,14 +96,14 @@ !12 = !DILocation(line: 8, scope: !7) !13 = !DILocation(line: 9, scope: !7) !14 = !DILocation(line: 9, scope: !15) -!15 = !DILexicalBlockFile(discriminator: 1, file: !1, scope: !7) +!15 = !DILexicalBlockFile(discriminator: 2, file: !1, scope: !7) !16 = !DILocation(line: 10, scope: !17) !17 = distinct !DILexicalBlock(line: 10, column: 0, file: !1, scope: !7) !18 = !DILocation(line: 10, scope: !19) -!19 = !DILexicalBlockFile(discriminator: 1, file: !1, scope: !17) +!19 = !DILexicalBlockFile(discriminator: 2, file: !1, scope: !17) !20 = !DILocation(line: 10, scope: !21) -!21 = !DILexicalBlockFile(discriminator: 2, file: !1, scope: !17) +!21 = !DILexicalBlockFile(discriminator: 4, file: !1, scope: !17) !22 = !DILocation(line: 10, scope: !23) -!23 = !DILexicalBlockFile(discriminator: 3, file: !1, scope: !17) +!23 = !DILexicalBlockFile(discriminator: 6, file: !1, scope: !17) !24 = !DILocation(line: 11, scope: !7) !25 = !DILocation(line: 12, scope: !7) Index: test/Transforms/SampleProfile/propagate.ll =================================================================== --- test/Transforms/SampleProfile/propagate.ll +++ test/Transforms/SampleProfile/propagate.ll @@ -244,7 +244,7 @@ !31 = !DILocation(line: 7, column: 15, scope: !29) !32 = !DILocation(line: 7, column: 10, scope: !29) !33 = !DILocation(line: 7, column: 22, scope: !34) -!34 = !DILexicalBlockFile(scope: !35, file: !1, discriminator: 1) +!34 = !DILexicalBlockFile(scope: !35, file: !1, discriminator: 2) !35 = distinct !DILexicalBlock(scope: !29, file: !1, line: 7, column: 5) !36 = !DILocation(line: 7, column: 26, scope: !34) !37 = !DILocation(line: 7, column: 24, scope: !34) @@ -275,7 +275,7 @@ !62 = !DILocation(line: 14, column: 24, scope: !59) !63 = !DILocation(line: 14, column: 14, scope: !59) !64 = !DILocation(line: 14, column: 31, scope: !65) -!65 = !DILexicalBlockFile(scope: !66, file: !1, discriminator: 1) +!65 = !DILexicalBlockFile(scope: !66, file: !1, discriminator: 2) !66 = distinct !DILexicalBlock(scope: !59, file: !1, line: 14, column: 9) !67 = !DILocation(line: 14, column: 33, scope: !65) !68 = !DILocation(line: 14, column: 9, scope: !65) @@ -285,11 +285,11 @@ !72 = !DILocation(line: 16, column: 13, scope: !70) !73 = !DILocation(line: 17, column: 9, scope: !70) !74 = !DILocation(line: 14, column: 41, scope: !75) -!75 = !DILexicalBlockFile(scope: !66, file: !1, discriminator: 2) +!75 = !DILexicalBlockFile(scope: !66, file: !1, discriminator: 4) !76 = !DILocation(line: 14, column: 9, scope: !75) !77 = !DILocation(line: 19, column: 5, scope: !41) !78 = !DILocation(line: 7, column: 30, scope: !79) -!79 = !DILexicalBlockFile(scope: !35, file: !1, discriminator: 2) +!79 = !DILexicalBlockFile(scope: !35, file: !1, discriminator: 4) !80 = !DILocation(line: 7, column: 5, scope: !79) !81 = !DILocation(line: 21, column: 10, scope: !6) !82 = !DILocation(line: 21, column: 14, scope: !6) @@ -313,5 +313,5 @@ !100 = !DILocation(line: 28, column: 57, scope: !86) !101 = !DILocation(line: 28, column: 47, scope: !86) !102 = !DILocation(line: 28, column: 3, scope: !103) -!103 = !DILexicalBlockFile(scope: !86, file: !1, discriminator: 1) +!103 = !DILexicalBlockFile(scope: !86, file: !1, discriminator: 2) !104 = !DILocation(line: 29, column: 3, scope: !86)