Author: adrian Date: Fri Apr 8 17:43:06 2016 New Revision: 265862 URL: http://llvm.org/viewvc/llvm-project?rev=265862&view=rev Log: Use NoDebug compile units to mark debug metadata used only for sample-based profiling and optimization remarks and indicate that no debug info shall be emitted for these compile units.
http://reviews.llvm.org/D18808 <rdar://problem/25427165> Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.cpp cfe/trunk/test/Frontend/optimization-remark.c cfe/trunk/test/Frontend/profile-sample-use-loc-tracking.c Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.cpp?rev=265862&r1=265861&r2=265862&view=diff ============================================================================== --- cfe/trunk/lib/CodeGen/CGDebugInfo.cpp (original) +++ cfe/trunk/lib/CodeGen/CGDebugInfo.cpp Fri Apr 8 17:43:06 2016 @@ -396,16 +396,27 @@ void CGDebugInfo::CreateCompileUnit() { if (LO.ObjC1) RuntimeVers = LO.ObjCRuntime.isNonFragile() ? 2 : 1; + llvm::DICompileUnit::DebugEmissionKind EmissionKind; + switch (DebugKind) { + case codegenoptions::NoDebugInfo: + case codegenoptions::LocTrackingOnly: + EmissionKind = llvm::DICompileUnit::NoDebug; + break; + case codegenoptions::DebugLineTablesOnly: + EmissionKind = llvm::DICompileUnit::LineTablesOnly; + break; + case codegenoptions::LimitedDebugInfo: + case codegenoptions::FullDebugInfo: + EmissionKind = llvm::DICompileUnit::FullDebug; + break; + } + // Create new compile unit. // FIXME - Eliminate TheCU. TheCU = DBuilder.createCompileUnit( LangTag, remapDIPath(MainFileName), remapDIPath(getCurrentDirname()), Producer, LO.Optimize, CGM.getCodeGenOpts().DwarfDebugFlags, RuntimeVers, - CGM.getCodeGenOpts().SplitDwarfFile, - DebugKind <= codegenoptions::DebugLineTablesOnly - ? llvm::DICompileUnit::LineTablesOnly - : llvm::DICompileUnit::FullDebug, - 0 /* DWOid */, DebugKind != codegenoptions::LocTrackingOnly); + CGM.getCodeGenOpts().SplitDwarfFile, EmissionKind, 0 /* DWOid */); } llvm::DIType *CGDebugInfo::CreateType(const BuiltinType *BT) { Modified: cfe/trunk/test/Frontend/optimization-remark.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Frontend/optimization-remark.c?rev=265862&r1=265861&r2=265862&view=diff ============================================================================== --- cfe/trunk/test/Frontend/optimization-remark.c (original) +++ cfe/trunk/test/Frontend/optimization-remark.c Fri Apr 8 17:43:06 2016 @@ -27,9 +27,10 @@ // CHECK: , !dbg ! // CHECK-NOT: DW_TAG_base_type -// But llvm.dbg.cu should be missing (to prevent writing debug info to +// The CU should be marked NoDebug (to prevent writing debug info to // the final output). -// CHECK-NOT: !llvm.dbg.cu = !{ +// CHECK: !llvm.dbg.cu = !{![[CU:.*]]} +// CHECK: ![[CU]] = distinct !DICompileUnit({{.*}}emissionKind: NoDebug int foo(int x, int y) __attribute__((always_inline)); int foo(int x, int y) { return x + y; } Modified: cfe/trunk/test/Frontend/profile-sample-use-loc-tracking.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Frontend/profile-sample-use-loc-tracking.c?rev=265862&r1=265861&r2=265862&view=diff ============================================================================== --- cfe/trunk/test/Frontend/profile-sample-use-loc-tracking.c (original) +++ cfe/trunk/test/Frontend/profile-sample-use-loc-tracking.c Fri Apr 8 17:43:06 2016 @@ -10,9 +10,10 @@ // CHECK: , !dbg ! // CHECK-NOT: DW_TAG_base_type -// But llvm.dbg.cu should be missing (to prevent writing debug info to +// The CU should be marked NoDebug (to prevent writing debug info to // the final output). -// CHECK-NOT: !llvm.dbg.cu = !{ +// CHECK: !llvm.dbg.cu = !{![[CU:.*]]} +// CHECK: ![[CU]] = distinct !DICompileUnit({{.*}}emissionKind: NoDebug int bar(int j) { return (j + j - 2) * (j - 2) * j; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits