Skip to content

Commit 1ebc308

Browse files
authored
[DebugInfo][RemoveDIs] Remove debug-intrinsic printing cmdline options (#131855)
During the transition from debug intrinsics to debug records, we used several different command line options to customise handling: the printing of debug records to bitcode and textual could be independent of how the debug-info was represented inside a module, whether the autoupgrader ran could be customised. This was all valuable during development, but now that totally removing debug intrinsics is coming up, this patch removes those options in favour of a single flag (experimental-debuginfo-iterators), which enables autoupgrade, in-memory debug records, and debug record printing to bitcode and textual IR. We need to do this ahead of removing the experimental-debuginfo-iterators flag, to reduce the amount of test-juggling that happens at that time. There are quite a number of weird test behaviours related to this -- some of which I simply delete in this commit. Things like print-non-instruction-debug-info.ll , the test suite now checks for debug records in all tests, and we don't want to check we can print as intrinsics. Or the update_test_checks tests -- these are duplicated with write-experimental-debuginfo=false to ensure file writing for intrinsics is correct, but that's something we're imminently going to delete. A short survey of curious test changes: * free-intrinsics.ll: we don't need to test that debug-info is a zero cost intrinsic, because we won't be using intrinsics in the future. * undef-dbg-val.ll: apparently we pinned this to non-RemoveDIs in-memory mode while we sorted something out; it works now either way. * salvage-cast-debug-info.ll: was testing intrinsics-in-memory get salvaged, isn't necessary now * localize-constexpr-debuginfo.ll: was producing "dead metadata" intrinsics for optimised-out variable values, dbg-records takes the (correct) representation of poison/undef as an operand. Looks like we didn't update this in the past to avoid spurious test differences. * Transforms/Scalarizer/dbginfo.ll: this test was explicitly testing that debug-info affected codegen, and we deferred updating the tests until now. This is just one of those silent gnochange issues that get fixed by RemoveDIs. Finally: I've added a bitcode test, dbg-intrinsics-autoupgrade.ll.bc, that checks we can autoupgrade debug intrinsics that are in bitcode into the new debug records.
1 parent a1e041b commit 1ebc308

File tree

50 files changed

+111
-1987
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+111
-1987
lines changed

flang/test/Integration/debug-local-var-2.f90

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
! RUN: %flang_fc1 -emit-llvm -debug-info-kind=standalone %s -mllvm --write-experimental-debuginfo=false -o - | FileCheck %s --check-prefixes=BOTH,INTRINSICS
2-
! RUN: %flang_fc1 -emit-llvm -debug-info-kind=standalone %s -mllvm --write-experimental-debuginfo=true -o - | FileCheck %s --check-prefixes=BOTH,RECORDS
3-
! RUN: %flang_fc1 -emit-llvm -debug-info-kind=line-tables-only %s -mllvm --write-experimental-debuginfo=false -o - | FileCheck --check-prefix=LINEONLY %s
4-
! RUN: %flang_fc1 -emit-llvm -debug-info-kind=line-tables-only %s -mllvm --write-experimental-debuginfo=true -o - | FileCheck --check-prefix=LINEONLY %s
1+
! RUN: %flang_fc1 -emit-llvm -debug-info-kind=standalone %s -mllvm --experimental-debuginfo-iterators=false -o - | FileCheck %s --check-prefixes=BOTH,INTRINSICS
2+
! RUN: %flang_fc1 -emit-llvm -debug-info-kind=standalone %s -mllvm --experimental-debuginfo-iterators=true -o - | FileCheck %s --check-prefixes=BOTH,RECORDS
3+
! RUN: %flang_fc1 -emit-llvm -debug-info-kind=line-tables-only %s -mllvm --experimental-debuginfo-iterators=false -o - | FileCheck --check-prefix=LINEONLY %s
4+
! RUN: %flang_fc1 -emit-llvm -debug-info-kind=line-tables-only %s -mllvm --experimental-debuginfo-iterators=true -o - | FileCheck --check-prefix=LINEONLY %s
55

66
! This tests checks the debug information for local variables in llvm IR.
77

llvm/docs/LangRef.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13447,7 +13447,7 @@ an extra level of indentation. As an example:
1344713447
%inst2 = op2 %inst1, %c
1344813448

1344913449
These debug records replace the prior :ref:`debug intrinsics<dbg_intrinsics>`.
13450-
Debug records will be disabled if ``--write-experimental-debuginfo=false`` is
13450+
Debug records will be disabled if ``--experimental-debuginfo-iterators=false`` is
1345113451
passed to LLVM; it is an error for both records and intrinsics to appear in the
1345213452
same module. More information about debug records can be found in the `LLVM
1345313453
Source Level Debugging <SourceLevelDebugging.html#format-common-intrinsics>`_

llvm/lib/AsmParser/LLParser.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,6 @@ static cl::opt<bool> AllowIncompleteIR(
6565

6666
extern llvm::cl::opt<bool> UseNewDbgInfoFormat;
6767
extern cl::opt<cl::boolOrDefault> PreserveInputDbgFormat;
68-
extern bool WriteNewDbgInfoFormatToBitcode;
69-
extern cl::opt<bool> WriteNewDbgInfoFormat;
7068

7169
static std::string getTypeString(Type *T) {
7270
std::string Result;
@@ -213,8 +211,6 @@ bool LLParser::validateEndOfModule(bool UpgradeDebugInfo) {
213211
"Mixed debug intrinsics/records seen without a parsing error?");
214212
if (PreserveInputDbgFormat == cl::boolOrDefault::BOU_TRUE) {
215213
UseNewDbgInfoFormat = SeenNewDbgInfoFormat;
216-
WriteNewDbgInfoFormatToBitcode = SeenNewDbgInfoFormat;
217-
WriteNewDbgInfoFormat = SeenNewDbgInfoFormat;
218214
M->setNewDbgInfoFormatFlag(SeenNewDbgInfoFormat);
219215
}
220216

llvm/lib/Bitcode/Reader/BitcodeReader.cpp

Lines changed: 3 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -102,18 +102,8 @@ static cl::opt<bool> ExpandConstantExprs(
102102
cl::desc(
103103
"Expand constant expressions to instructions for testing purposes"));
104104

105-
/// Load bitcode directly into RemoveDIs format (use debug records instead
106-
/// of debug intrinsics). UNSET is treated as FALSE, so the default action
107-
/// is to do nothing. Individual tools can override this to incrementally add
108-
/// support for the RemoveDIs format.
109-
cl::opt<cl::boolOrDefault> LoadBitcodeIntoNewDbgInfoFormat(
110-
"load-bitcode-into-experimental-debuginfo-iterators", cl::Hidden,
111-
cl::desc("Load bitcode directly into the new debug info format (regardless "
112-
"of input format)"));
113105
extern cl::opt<bool> UseNewDbgInfoFormat;
114106
extern cl::opt<cl::boolOrDefault> PreserveInputDbgFormat;
115-
extern bool WriteNewDbgInfoFormatToBitcode;
116-
extern cl::opt<bool> WriteNewDbgInfoFormat;
117107

118108
namespace {
119109

@@ -4492,14 +4482,9 @@ Error BitcodeReader::parseGlobalIndirectSymbolRecord(
44924482
Error BitcodeReader::parseModule(uint64_t ResumeBit,
44934483
bool ShouldLazyLoadMetadata,
44944484
ParserCallbacks Callbacks) {
4495-
// Load directly into RemoveDIs format if LoadBitcodeIntoNewDbgInfoFormat
4496-
// has been set to true and we aren't attempting to preserve the existing
4497-
// format in the bitcode (default action: load into the old debug format).
4498-
if (PreserveInputDbgFormat != cl::boolOrDefault::BOU_TRUE) {
4499-
TheModule->IsNewDbgInfoFormat =
4500-
UseNewDbgInfoFormat &&
4501-
LoadBitcodeIntoNewDbgInfoFormat != cl::boolOrDefault::BOU_FALSE;
4502-
}
4485+
// In preparation for the deletion of debug-intrinsics, don't allow module
4486+
// loading to escape intrinsics being autoupgraded to debug records.
4487+
TheModule->IsNewDbgInfoFormat = UseNewDbgInfoFormat;
45034488

45044489
this->ValueTypeCallback = std::move(Callbacks.ValueType);
45054490
if (ResumeBit) {
@@ -7026,8 +7011,6 @@ Error BitcodeReader::materialize(GlobalValue *GV) {
70267011
SeenAnyDebugInfo ? SeenDebugRecord : F->getParent()->IsNewDbgInfoFormat;
70277012
if (SeenAnyDebugInfo) {
70287013
UseNewDbgInfoFormat = SeenDebugRecord;
7029-
WriteNewDbgInfoFormatToBitcode = SeenDebugRecord;
7030-
WriteNewDbgInfoFormat = SeenDebugRecord;
70317014
}
70327015
// If the module's debug info format doesn't match the observed input
70337016
// format, then set its format now; we don't need to call the conversion

llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,6 @@ namespace llvm {
103103
extern FunctionSummary::ForceSummaryHotnessType ForceSummaryEdgesCold;
104104
}
105105

106-
extern bool WriteNewDbgInfoFormatToBitcode;
107106
extern llvm::cl::opt<bool> UseNewDbgInfoFormat;
108107

109108
namespace {
@@ -3710,7 +3709,7 @@ void ModuleBitcodeWriter::writeFunction(
37103709
// they come after the instruction so that it's easy to attach them again
37113710
// when reading the bitcode, even though conceptually the debug locations
37123711
// start "before" the instruction.
3713-
if (I.hasDbgRecords() && WriteNewDbgInfoFormatToBitcode) {
3712+
if (I.hasDbgRecords()) {
37143713
/// Try to push the value only (unwrapped), otherwise push the
37153714
/// metadata wrapped value. Returns true if the value was pushed
37163715
/// without the ValueAsMetadata wrapper.

llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,8 @@
1818
#include "llvm/Pass.h"
1919
using namespace llvm;
2020

21-
extern bool WriteNewDbgInfoFormatToBitcode;
22-
2321
PreservedAnalyses BitcodeWriterPass::run(Module &M, ModuleAnalysisManager &AM) {
24-
ScopedDbgInfoFormatSetter FormatSetter(M, M.IsNewDbgInfoFormat &&
25-
WriteNewDbgInfoFormatToBitcode);
22+
ScopedDbgInfoFormatSetter FormatSetter(M, M.IsNewDbgInfoFormat);
2623
if (M.IsNewDbgInfoFormat)
2724
M.removeDebugIntrinsicDeclarations();
2825

@@ -54,8 +51,7 @@ namespace {
5451
StringRef getPassName() const override { return "Bitcode Writer"; }
5552

5653
bool runOnModule(Module &M) override {
57-
ScopedDbgInfoFormatSetter FormatSetter(
58-
M, M.IsNewDbgInfoFormat && WriteNewDbgInfoFormatToBitcode);
54+
ScopedDbgInfoFormatSetter FormatSetter(M, M.IsNewDbgInfoFormat);
5955
if (M.IsNewDbgInfoFormat)
6056
M.removeDebugIntrinsicDeclarations();
6157

llvm/lib/CodeGen/MIRPrinter.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ static cl::opt<bool> SimplifyMIR(
6969
static cl::opt<bool> PrintLocations("mir-debug-loc", cl::Hidden, cl::init(true),
7070
cl::desc("Print MIR debug-locations"));
7171

72-
extern cl::opt<bool> WriteNewDbgInfoFormat;
72+
extern cl::opt<bool> UseNewDbgInfoFormat;
7373

7474
namespace {
7575

@@ -1050,7 +1050,7 @@ void MIRFormatter::printIRValue(raw_ostream &OS, const Value &V,
10501050

10511051
void llvm::printMIR(raw_ostream &OS, const Module &M) {
10521052
ScopedDbgInfoFormatSetter FormatSetter(const_cast<Module &>(M),
1053-
WriteNewDbgInfoFormat);
1053+
UseNewDbgInfoFormat);
10541054

10551055
yaml::Output Out(OS);
10561056
Out << const_cast<Module &>(M);
@@ -1061,7 +1061,7 @@ void llvm::printMIR(raw_ostream &OS, const MachineModuleInfo &MMI,
10611061
// RemoveDIs: as there's no textual form for DbgRecords yet, print debug-info
10621062
// in dbg.value format.
10631063
ScopedDbgInfoFormatSetter FormatSetter(
1064-
const_cast<Function &>(MF.getFunction()), WriteNewDbgInfoFormat);
1064+
const_cast<Function &>(MF.getFunction()), UseNewDbgInfoFormat);
10651065

10661066
MIRPrinter Printer(OS, MMI);
10671067
Printer.print(MF);

llvm/lib/IR/BasicBlock.cpp

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,6 @@ cl::opt<cl::boolOrDefault> PreserveInputDbgFormat(
4444
"contain debug records or intrinsics. Ignored in llvm-link, "
4545
"llvm-lto, and llvm-lto2."));
4646

47-
bool WriteNewDbgInfoFormatToBitcode /*set default value in cl::init() below*/;
48-
cl::opt<bool, true> WriteNewDbgInfoFormatToBitcode2(
49-
"write-experimental-debuginfo-iterators-to-bitcode", cl::Hidden,
50-
cl::location(WriteNewDbgInfoFormatToBitcode), cl::init(true));
51-
5247
DbgMarker *BasicBlock::createMarker(Instruction *I) {
5348
assert(IsNewDbgInfoFormat &&
5449
"Tried to create a marker in a non new debug-info block!");

llvm/lib/IR/IRPrintingPasses.cpp

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,7 @@
2323

2424
using namespace llvm;
2525

26-
cl::opt<bool> WriteNewDbgInfoFormat(
27-
"write-experimental-debuginfo",
28-
cl::desc("Write debug info in the new non-intrinsic format. Has no effect "
29-
"if --preserve-input-debuginfo-format=true."),
30-
cl::init(true));
26+
extern cl::opt<bool> UseNewDbgInfoFormat;
3127

3228
namespace {
3329

@@ -45,13 +41,11 @@ class PrintModulePassWrapper : public ModulePass {
4541
ShouldPreserveUseListOrder(ShouldPreserveUseListOrder) {}
4642

4743
bool runOnModule(Module &M) override {
48-
// RemoveDIs: Regardless of the format we've processed this module in, use
49-
// `WriteNewDbgInfoFormat` to determine which format we use to write it.
50-
ScopedDbgInfoFormatSetter FormatSetter(M, WriteNewDbgInfoFormat);
44+
ScopedDbgInfoFormatSetter FormatSetter(M, UseNewDbgInfoFormat);
5145
// Remove intrinsic declarations when printing in the new format.
5246
// TODO: Move this into Module::setIsNewDbgInfoFormat when we're ready to
5347
// update test output.
54-
if (WriteNewDbgInfoFormat)
48+
if (UseNewDbgInfoFormat)
5549
M.removeDebugIntrinsicDeclarations();
5650

5751
if (llvm::isFunctionInPrintList("*")) {
@@ -93,9 +87,7 @@ class PrintFunctionPassWrapper : public FunctionPass {
9387

9488
// This pass just prints a banner followed by the function as it's processed.
9589
bool runOnFunction(Function &F) override {
96-
// RemoveDIs: Regardless of the format we've processed this function in, use
97-
// `WriteNewDbgInfoFormat` to determine which format we use to write it.
98-
ScopedDbgInfoFormatSetter FormatSetter(F, WriteNewDbgInfoFormat);
90+
ScopedDbgInfoFormatSetter FormatSetter(F, UseNewDbgInfoFormat);
9991

10092
if (isFunctionInPrintList(F.getName())) {
10193
if (forcePrintModuleIR())

llvm/lib/IRPrinter/IRPrintingPasses.cpp

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
using namespace llvm;
2424

25-
extern cl::opt<bool> WriteNewDbgInfoFormat;
25+
extern cl::opt<bool> UseNewDbgInfoFormat;
2626

2727
PrintModulePass::PrintModulePass() : OS(dbgs()) {}
2828
PrintModulePass::PrintModulePass(raw_ostream &OS, const std::string &Banner,
@@ -33,13 +33,11 @@ PrintModulePass::PrintModulePass(raw_ostream &OS, const std::string &Banner,
3333
EmitSummaryIndex(EmitSummaryIndex) {}
3434

3535
PreservedAnalyses PrintModulePass::run(Module &M, ModuleAnalysisManager &AM) {
36-
// RemoveDIs: Regardless of the format we've processed this module in, use
37-
// `WriteNewDbgInfoFormat` to determine which format we use to write it.
38-
ScopedDbgInfoFormatSetter FormatSetter(M, WriteNewDbgInfoFormat);
36+
ScopedDbgInfoFormatSetter FormatSetter(M, UseNewDbgInfoFormat);
3937
// Remove intrinsic declarations when printing in the new format.
4038
// TODO: Move this into Module::setIsNewDbgInfoFormat when we're ready to
4139
// update test output.
42-
if (WriteNewDbgInfoFormat)
40+
if (UseNewDbgInfoFormat)
4341
M.removeDebugIntrinsicDeclarations();
4442

4543
if (llvm::isFunctionInPrintList("*")) {
@@ -77,9 +75,7 @@ PrintFunctionPass::PrintFunctionPass(raw_ostream &OS, const std::string &Banner)
7775

7876
PreservedAnalyses PrintFunctionPass::run(Function &F,
7977
FunctionAnalysisManager &) {
80-
// RemoveDIs: Regardless of the format we've processed this function in, use
81-
// `WriteNewDbgInfoFormat` to determine which format we use to write it.
82-
ScopedDbgInfoFormatSetter FormatSetter(F, WriteNewDbgInfoFormat);
78+
ScopedDbgInfoFormatSetter FormatSetter(F, UseNewDbgInfoFormat);
8379

8480
if (isFunctionInPrintList(F.getName())) {
8581
if (forcePrintModuleIR())

llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -575,14 +575,13 @@ bool writeThinLTOBitcode(raw_ostream &OS, raw_ostream *ThinLinkOS,
575575
}
576576

577577
} // anonymous namespace
578-
extern bool WriteNewDbgInfoFormatToBitcode;
578+
579579
PreservedAnalyses
580580
llvm::ThinLTOBitcodeWriterPass::run(Module &M, ModuleAnalysisManager &AM) {
581581
FunctionAnalysisManager &FAM =
582582
AM.getResult<FunctionAnalysisManagerModuleProxy>(M).getManager();
583583

584-
ScopedDbgInfoFormatSetter FormatSetter(M, M.IsNewDbgInfoFormat &&
585-
WriteNewDbgInfoFormatToBitcode);
584+
ScopedDbgInfoFormatSetter FormatSetter(M, M.IsNewDbgInfoFormat);
586585
if (M.IsNewDbgInfoFormat)
587586
M.removeDebugIntrinsicDeclarations();
588587

llvm/test/Analysis/CostModel/X86/free-intrinsics.ll

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,13 @@
11
; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py
2-
;; Pin this test to not use "RemoveDIs" non-intrinsic debug-info. We get the
3-
;; correct output in that mode, but it generates spurious test changes, so
4-
;; avoid that for the moment.
5-
; RUN: opt -mtriple=x86_64-- -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=code-size %s -S -o - --experimental-debuginfo-iterators=false | FileCheck %s --check-prefix=CHECK-SIZE
6-
; RUN: opt -mtriple=x86_64-- -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=throughput %s -S -o - --experimental-debuginfo-iterators=false | FileCheck %s --check-prefix=CHECK-THROUGHPUT
2+
; RUN: opt -mtriple=x86_64-- -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=code-size %s -S -o - | FileCheck %s --check-prefix=CHECK-SIZE
3+
; RUN: opt -mtriple=x86_64-- -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=throughput %s -S -o - | FileCheck %s --check-prefix=CHECK-THROUGHPUT
74

85
define i32 @trivially_free() {
96
; CHECK-SIZE-LABEL: 'trivially_free'
107
; CHECK-SIZE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %a0 = call i32 @llvm.annotation.i32.p0(i32 undef, ptr undef, ptr undef, i32 undef)
118
; CHECK-SIZE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: call void @llvm.assume(i1 undef)
129
; CHECK-SIZE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: call void @llvm.experimental.noalias.scope.decl(metadata !3)
1310
; CHECK-SIZE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: call void @llvm.sideeffect()
14-
; CHECK-SIZE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: call void @llvm.dbg.assign(metadata ptr undef, metadata !6, metadata !DIExpression(), metadata !8, metadata ptr undef, metadata !DIExpression()), !dbg !9
15-
; CHECK-SIZE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: call void @llvm.dbg.declare(metadata ptr undef, metadata !6, metadata !DIExpression()), !dbg !9
16-
; CHECK-SIZE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: call void @llvm.dbg.label(metadata !10), !dbg !9
1711
; CHECK-SIZE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %a1 = call ptr @llvm.invariant.start.p0(i64 1, ptr undef)
1812
; CHECK-SIZE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: call void @llvm.invariant.end.p0(ptr undef, i64 1, ptr undef)
1913
; CHECK-SIZE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %a2 = call ptr @llvm.launder.invariant.group.p0(ptr undef)
@@ -31,9 +25,6 @@ define i32 @trivially_free() {
3125
; CHECK-THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: call void @llvm.assume(i1 undef)
3226
; CHECK-THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: call void @llvm.experimental.noalias.scope.decl(metadata !3)
3327
; CHECK-THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: call void @llvm.sideeffect()
34-
; CHECK-THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: call void @llvm.dbg.assign(metadata ptr undef, metadata !6, metadata !DIExpression(), metadata !8, metadata ptr undef, metadata !DIExpression()), !dbg !9
35-
; CHECK-THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: call void @llvm.dbg.declare(metadata ptr undef, metadata !6, metadata !DIExpression()), !dbg !9
36-
; CHECK-THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: call void @llvm.dbg.label(metadata !10), !dbg !9
3728
; CHECK-THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %a1 = call ptr @llvm.invariant.start.p0(i64 1, ptr undef)
3829
; CHECK-THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: call void @llvm.invariant.end.p0(ptr undef, i64 1, ptr undef)
3930
; CHECK-THROUGHPUT-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %a2 = call ptr @llvm.launder.invariant.group.p0(ptr undef)
@@ -50,10 +41,6 @@ define i32 @trivially_free() {
5041
call void @llvm.assume(i1 undef)
5142
call void @llvm.experimental.noalias.scope.decl(metadata !4)
5243
call void @llvm.sideeffect()
53-
call void @llvm.dbg.assign(metadata ptr undef, metadata !0, metadata !DIExpression(), metadata !10, metadata ptr undef, metadata !DIExpression()), !dbg !8
54-
call void @llvm.dbg.declare(metadata ptr undef, metadata !0, metadata !DIExpression()), !dbg !8
55-
call void @llvm.dbg.value(metadata i64 undef, i64 undef, metadata !DIExpression(), metadata !DIExpression()), !dbg !8
56-
call void @llvm.dbg.label(metadata !2), !dbg !8
5744
%a1 = call ptr @llvm.invariant.start.p0(i64 1, ptr undef)
5845
call void @llvm.invariant.end.p0(ptr undef, i64 1, ptr undef)
5946
%a2 = call ptr @llvm.launder.invariant.group.p0(ptr undef)
@@ -71,10 +58,6 @@ declare i32 @llvm.annotation.i32(i32, ptr, ptr, i32)
7158
declare void @llvm.assume(i1)
7259
declare void @llvm.experimental.noalias.scope.decl(metadata)
7360
declare void @llvm.sideeffect()
74-
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata)
75-
declare void @llvm.dbg.declare(metadata, metadata, metadata)
76-
declare void @llvm.dbg.value(metadata, i64, metadata, metadata)
77-
declare void @llvm.dbg.label(metadata)
7861
declare ptr @llvm.invariant.start.p0(i64, ptr)
7962
declare void @llvm.invariant.end.p0(ptr, i64, ptr)
8063
declare ptr @llvm.launder.invariant.group.p0(ptr)

0 commit comments

Comments
 (0)