[Assignment Tracking][NFC] Replace LLVM command line option with a module flag
Remove LLVM flag -experimental-assignment-tracking. Assignment tracking is still enabled from Clang with the command line -Xclang -fexperimental-assignment-tracking which tells Clang to ask LLVM to run the pass declare-to-assign. That pass converts conventional debug intrinsics to assignment tracking metadata. With this patch it now also sets a module flag debug-info-assignment-tracking with the value `i1 true` (using the flag conflict rule `Max` since enabling assignment tracking on IR that contains only conventional debug intrinsics should cause no issues). Update the docs and tests too. Reviewed By: CarlosAlbertoEnciso Differential Revision: https://reviews.llvm.org/D142027
This commit is contained in:
parent
d49b842ea2
commit
4ece50737d
@ -6971,11 +6971,6 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
|
||||
if (StringRef(Arg->getValue()) == "-finclude-default-header")
|
||||
continue;
|
||||
}
|
||||
if (StringRef(Arg->getValue()) == "-fexperimental-assignment-tracking") {
|
||||
// Add the llvm version of this flag too.
|
||||
CmdArgs.push_back("-mllvm");
|
||||
CmdArgs.push_back("-experimental-assignment-tracking");
|
||||
}
|
||||
CmdArgs.push_back(Arg->getValue());
|
||||
}
|
||||
for (const Arg *A : Args.filtered(options::OPT_mllvm)) {
|
||||
|
||||
@ -1,10 +0,0 @@
|
||||
// RUN: %clang -### -S %s -g -target x86_64-linux-gnu 2>&1 | FileCheck --check-prefix=CHECK-NO-AT %s
|
||||
// RUN: %clang -### -S %s -g -target x86_64-linux-gnu 2>&1 \
|
||||
// RUN: -Xclang -fexperimental-assignment-tracking \
|
||||
// RUN: | FileCheck --check-prefix=CHECK-AT %s
|
||||
|
||||
// CHECK-NO-AT-NOT: "-mllvm" "-experimental-assignment-tracking"
|
||||
// CHECK-NO-AT-NOT: "-fexperimental-assignment-tracking"
|
||||
|
||||
// CHECK-AT: "-mllvm" "-experimental-assignment-tracking"
|
||||
// CHECK-AT: "-fexperimental-assignment-tracking"
|
||||
@ -25,7 +25,11 @@ except for development and testing.
|
||||
|
||||
**Enable in Clang**: `-Xclang -fexperimental-assignment-tracking`
|
||||
|
||||
**Enable in LLVM tools**: `-experimental-assignment-tracking`
|
||||
That causes Clang to get LLVM to run the pass `declare-to-assign`. The pass
|
||||
converts conventional debug intrinsics to assignment tracking metadata and sets
|
||||
the module flag `debug-info-assignment-tracking` to the value `i1 true`. To
|
||||
check whether assignment tracking is enabled for a module call
|
||||
`isAssignmentTrackingEnabled(const Module &M)` (from `llvm/IR/DebugInfo.h`).
|
||||
|
||||
## Design and implementation
|
||||
|
||||
|
||||
@ -291,15 +291,20 @@ std::optional<AssignmentInfo> getAssignmentInfo(const DataLayout &DL,
|
||||
/// intrinsics by treating stores to the dbg.declare'd address as assignments
|
||||
/// to the variable. Not all kinds of variables are supported yet; those will
|
||||
/// be left with their dbg.declare intrinsics.
|
||||
/// The pass sets the debug-info-assignment-tracking module flag to true to
|
||||
/// indicate assignment tracking has been enabled.
|
||||
class AssignmentTrackingPass : public PassInfoMixin<AssignmentTrackingPass> {
|
||||
public:
|
||||
/// Note: this method does not set the debug-info-assignment-tracking module
|
||||
/// flag.
|
||||
void runOnFunction(Function &F);
|
||||
|
||||
public:
|
||||
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
|
||||
PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM);
|
||||
};
|
||||
|
||||
/// Return true if assignment tracking is enabled.
|
||||
bool getEnableAssignmentTracking();
|
||||
/// Return true if assignment tracking is enabled for module \p M.
|
||||
bool isAssignmentTrackingEnabled(const Module &M);
|
||||
} // end namespace llvm
|
||||
|
||||
#endif // LLVM_IR_DEBUGINFO_H
|
||||
|
||||
@ -2389,6 +2389,9 @@ static void analyzeFunction(Function &Fn, const DataLayout &Layout,
|
||||
}
|
||||
|
||||
bool AssignmentTrackingAnalysis::runOnFunction(Function &F) {
|
||||
if (!isAssignmentTrackingEnabled(*F.getParent()))
|
||||
return false;
|
||||
|
||||
LLVM_DEBUG(dbgs() << "AssignmentTrackingAnalysis run on " << F.getName()
|
||||
<< "\n");
|
||||
auto DL = std::make_unique<DataLayout>(F.getParent());
|
||||
|
||||
@ -6090,7 +6090,7 @@ void SelectionDAGBuilder::visitIntrinsicCall(const CallInst &I,
|
||||
case Intrinsic::dbg_addr:
|
||||
case Intrinsic::dbg_declare: {
|
||||
// Debug intrinsics are handled seperately in assignment tracking mode.
|
||||
if (getEnableAssignmentTracking())
|
||||
if (isAssignmentTrackingEnabled(*I.getFunction()->getParent()))
|
||||
return;
|
||||
// Assume dbg.addr and dbg.declare can not currently use DIArgList, i.e.
|
||||
// they are non-variadic.
|
||||
@ -6193,13 +6193,13 @@ void SelectionDAGBuilder::visitIntrinsicCall(const CallInst &I,
|
||||
}
|
||||
case Intrinsic::dbg_assign: {
|
||||
// Debug intrinsics are handled seperately in assignment tracking mode.
|
||||
assert(getEnableAssignmentTracking() &&
|
||||
assert(isAssignmentTrackingEnabled(*I.getFunction()->getParent()) &&
|
||||
"expected assignment tracking to be enabled");
|
||||
return;
|
||||
}
|
||||
case Intrinsic::dbg_value: {
|
||||
// Debug intrinsics are handled seperately in assignment tracking mode.
|
||||
if (getEnableAssignmentTracking())
|
||||
if (isAssignmentTrackingEnabled(*I.getFunction()->getParent()))
|
||||
return;
|
||||
const DbgValueInst &DI = cast<DbgValueInst>(I);
|
||||
assert(DI.getVariable() && "Missing variable");
|
||||
|
||||
@ -345,10 +345,10 @@ void SelectionDAGISel::getAnalysisUsage(AnalysisUsage &AU) const {
|
||||
if (UseMBPI && OptLevel != CodeGenOpt::None)
|
||||
AU.addRequired<BranchProbabilityInfoWrapperPass>();
|
||||
AU.addRequired<ProfileSummaryInfoWrapperPass>();
|
||||
if (getEnableAssignmentTracking()) {
|
||||
AU.addRequired<AssignmentTrackingAnalysis>();
|
||||
AU.addPreserved<AssignmentTrackingAnalysis>();
|
||||
}
|
||||
// AssignmentTrackingAnalysis only runs if assignment tracking is enabled for
|
||||
// the module.
|
||||
AU.addRequired<AssignmentTrackingAnalysis>();
|
||||
AU.addPreserved<AssignmentTrackingAnalysis>();
|
||||
if (OptLevel != CodeGenOpt::None)
|
||||
LazyBlockFrequencyInfoPass::getLazyBFIAnalysisUsage(AU);
|
||||
MachineFunctionPass::getAnalysisUsage(AU);
|
||||
@ -420,7 +420,7 @@ bool SelectionDAGISel::runOnMachineFunction(MachineFunction &mf) {
|
||||
BFI = &getAnalysis<LazyBlockFrequencyInfoPass>().getBFI();
|
||||
|
||||
FunctionVarLocs const *FnVarLocs = nullptr;
|
||||
if (getEnableAssignmentTracking())
|
||||
if (isAssignmentTrackingEnabled(*Fn.getParent()))
|
||||
FnVarLocs = getAnalysis<AssignmentTrackingAnalysis>().getResults();
|
||||
|
||||
LLVM_DEBUG(dbgs() << "\n\n\n=== " << Fn.getName() << "\n");
|
||||
@ -1435,7 +1435,7 @@ void SelectionDAGISel::SelectAllBasicBlocks(const Function &Fn) {
|
||||
if (FastIS && Inserted)
|
||||
FastIS->setLastLocalValue(&*std::prev(FuncInfo->InsertPt));
|
||||
|
||||
if (getEnableAssignmentTracking()) {
|
||||
if (isAssignmentTrackingEnabled(*Fn.getParent())) {
|
||||
assert(CurDAG->getFunctionVarLocs() &&
|
||||
"expected AssignmentTrackingAnalysis pass results");
|
||||
processSingleLocVars(*FuncInfo, CurDAG->getFunctionVarLocs());
|
||||
|
||||
@ -43,13 +43,6 @@ using namespace llvm;
|
||||
using namespace llvm::at;
|
||||
using namespace llvm::dwarf;
|
||||
|
||||
static cl::opt<bool>
|
||||
ExperimentalAssignmentTracking("experimental-assignment-tracking",
|
||||
cl::init(false));
|
||||
bool llvm::getEnableAssignmentTracking() {
|
||||
return ExperimentalAssignmentTracking;
|
||||
}
|
||||
|
||||
/// Finds all intrinsics declaring local variables as living in the memory that
|
||||
/// 'V' points to. This may include a mix of dbg.declare and
|
||||
/// dbg.addr intrinsics.
|
||||
@ -1959,9 +1952,33 @@ void AssignmentTrackingPass::runOnFunction(Function &F) {
|
||||
}
|
||||
}
|
||||
|
||||
static const char *AssignmentTrackingModuleFlag =
|
||||
"debug-info-assignment-tracking";
|
||||
|
||||
static void setAssignmentTrackingModuleFlag(Module &M) {
|
||||
M.setModuleFlag(Module::ModFlagBehavior::Max, AssignmentTrackingModuleFlag,
|
||||
ConstantAsMetadata::get(
|
||||
ConstantInt::get(Type::getInt1Ty(M.getContext()), 1)));
|
||||
}
|
||||
|
||||
static bool getAssignmentTrackingModuleFlag(const Module &M) {
|
||||
Metadata *Value = M.getModuleFlag(AssignmentTrackingModuleFlag);
|
||||
return Value && !cast<ConstantAsMetadata>(Value)->getValue()->isZeroValue();
|
||||
}
|
||||
|
||||
bool llvm::isAssignmentTrackingEnabled(const Module &M) {
|
||||
return getAssignmentTrackingModuleFlag(M);
|
||||
}
|
||||
|
||||
PreservedAnalyses AssignmentTrackingPass::run(Function &F,
|
||||
FunctionAnalysisManager &AM) {
|
||||
runOnFunction(F);
|
||||
|
||||
// Record that this module uses assignment tracking. It doesn't matter that
|
||||
// some functons in the module may not use it - the debug info in those
|
||||
// functions will still be handled properly.
|
||||
setAssignmentTrackingModuleFlag(*F.getParent());
|
||||
|
||||
// Q: Can we return a less conservative set than just CFGAnalyses? Can we
|
||||
// return PreservedAnalyses::all()?
|
||||
PreservedAnalyses PA;
|
||||
@ -1973,6 +1990,10 @@ PreservedAnalyses AssignmentTrackingPass::run(Module &M,
|
||||
ModuleAnalysisManager &AM) {
|
||||
for (auto &F : M)
|
||||
runOnFunction(F);
|
||||
|
||||
// Record that this module uses assignment tracking.
|
||||
setAssignmentTrackingModuleFlag(M);
|
||||
|
||||
// Q: Can we return a less conservative set than just CFGAnalyses? Can we
|
||||
// return PreservedAnalyses::all()?
|
||||
PreservedAnalyses PA;
|
||||
|
||||
@ -4604,7 +4604,7 @@ static bool combineInstructionsOverFunction(
|
||||
// LowerDbgDeclare calls RemoveRedundantDbgInstrs, but LowerDbgDeclare will
|
||||
// almost never return true when running an assignment tracking build. Take
|
||||
// this opportunity to do some clean up for assignment tracking builds too.
|
||||
if (!MadeIRChange && getEnableAssignmentTracking()) {
|
||||
if (!MadeIRChange && isAssignmentTrackingEnabled(*F.getParent())) {
|
||||
for (auto &BB : F)
|
||||
RemoveRedundantDbgInstrs(&BB);
|
||||
}
|
||||
|
||||
@ -531,7 +531,8 @@ bool llvm::RemoveRedundantDbgInstrs(BasicBlock *BB) {
|
||||
// getting (2) out of the way, the foward scan will remove (3) since "x"
|
||||
// already is described as having the value V1 at (1).
|
||||
MadeChanges |= removeRedundantDbgInstrsUsingBackwardScan(BB);
|
||||
if (BB->isEntryBlock() && getEnableAssignmentTracking())
|
||||
if (BB->isEntryBlock() &&
|
||||
isAssignmentTrackingEnabled(*BB->getParent()->getParent()))
|
||||
MadeChanges |= remomveUndefDbgAssignsFromEntryBlock(BB);
|
||||
MadeChanges |= removeRedundantDbgInstrsUsingForwardScan(BB);
|
||||
|
||||
|
||||
@ -2302,7 +2302,7 @@ llvm::InlineResult llvm::InlineFunction(CallBase &CB, InlineFunctionInfo &IFI,
|
||||
fixupLineNumbers(Caller, FirstNewBlock, &CB,
|
||||
CalledFunc->getSubprogram() != nullptr);
|
||||
|
||||
if (getEnableAssignmentTracking()) {
|
||||
if (isAssignmentTrackingEnabled(*Caller->getParent())) {
|
||||
// Interpret inlined stores to caller-local variables as assignments.
|
||||
trackInlinedStores(FirstNewBlock, Caller->end(), CB);
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt %s -passes=adce -experimental-assignment-tracking -S -o - \
|
||||
; RUN: opt %s -passes=adce -S -o - \
|
||||
; RUN: | FileCheck %s
|
||||
|
||||
;; $ cat test.c
|
||||
@ -26,7 +26,7 @@ declare void @llvm.dbg.declare(metadata, metadata, metadata)
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata)
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!2, !3, !4, !5}
|
||||
!llvm.module.flags = !{!2, !3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 14.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -46,3 +46,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!14 = !DILocation(line: 0, scope: !7)
|
||||
!19 = distinct !DIAssignID()
|
||||
!20 = !DILocation(line: 1, column: 22, scope: !7)
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
; REQUIRES: x86-registered-target
|
||||
; RUN: llc -start-before=codegenprepare -stop-after=codegenprepare \
|
||||
; RUN: -mtriple=x86_64-unknown-unknown -experimental-assignment-tracking %s -o - \
|
||||
; RUN: -mtriple=x86_64-unknown-unknown %s -o - \
|
||||
; RUN: | FileCheck %s --implicit-check-not="call void @llvm.dbg."
|
||||
|
||||
;; Check that when CodeGenPrepare moves an address computation to a block it's
|
||||
@ -39,7 +39,7 @@ ret:
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata)
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!3, !4, !5}
|
||||
!llvm.module.flags = !{!3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "clang", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, nameTableKind: None)
|
||||
@ -58,3 +58,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!14 = !DILocation(line: 4, column: 15, scope: !7)
|
||||
!20 = distinct !DILexicalBlock(scope: !7, file: !1, line: 8, column: 7)
|
||||
!21 = distinct !DIAssignID()
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt %s -S -passes=dse -o - -experimental-assignment-tracking | FileCheck %s
|
||||
; RUN: opt %s -S -passes=dse -o - | FileCheck %s
|
||||
|
||||
;; Observed in the wild, but test is created by running memcpyopt on
|
||||
;; assignment-tracking/memcpyopt/merge-stores.ll then manually inserting
|
||||
@ -67,7 +67,7 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
declare void @llvm.memset.p0i8.i64(ptr nocapture writeonly, i8, i64, i1 immarg)
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!3, !4, !5}
|
||||
!llvm.module.flags = !{!3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "clang version 12.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -133,3 +133,4 @@ declare void @llvm.memset.p0i8.i64(ptr nocapture writeonly, i8, i64, i1 immarg)
|
||||
!64 = !DISubprogram(name: "esc", linkageName: "_Z3escP1v", scope: !1, file: !1, line: 10, type: !65, flags: DIFlagPrototyped, spFlags: DISPFlagOptimized, retainedNodes: !2)
|
||||
!65 = !DISubroutineType(types: !66)
|
||||
!66 = !{null, !30}
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt %s -S -passes=dse -o - -experimental-assignment-tracking | FileCheck %s
|
||||
; RUN: opt %s -S -passes=dse -o - | FileCheck %s
|
||||
|
||||
;; $ cat test.cpp
|
||||
;; void esc(int*);
|
||||
@ -77,7 +77,7 @@ entry:
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata)
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!2, !3, !4, !5}
|
||||
!llvm.module.flags = !{!2, !3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_14, file: !1, producer: "clang version 14.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -126,3 +126,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!43 = distinct !DIAssignID()
|
||||
!44 = !DILocation(line: 12, column: 3, scope: !31)
|
||||
!45 = !DILocation(line: 13, column: 1, scope: !31)
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt %s -S -passes=inline -o - -experimental-assignment-tracking \
|
||||
; RUN: opt %s -S -passes=inline -o - \
|
||||
; RUN: | FileCheck %s
|
||||
|
||||
;; Check that all DIAssignID metadata that are inlined are replaced with new
|
||||
@ -55,7 +55,7 @@ entry:
|
||||
}
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!3, !4, !5}
|
||||
!llvm.module.flags = !{!3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_14, file: !1, producer: "clang version 12.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -85,3 +85,4 @@ entry:
|
||||
!28 = !DILocation(line: 4, column: 3, scope: !25)
|
||||
!29 = !DILocation(line: 5, column: 3, scope: !25)
|
||||
!30 = !DILocation(line: 6, column: 1, scope: !25)
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt -passes=inline %s -S -o - -experimental-assignment-tracking \
|
||||
; RUN: opt -passes=inline %s -S -o - \
|
||||
; RUN: | FileCheck %s
|
||||
|
||||
;; $ cat test.cpp
|
||||
@ -230,7 +230,7 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
; CHECK-DAG: [[ID_6]] = distinct !DIAssignID()
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!3, !4, !5}
|
||||
!llvm.module.flags = !{!3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_14, file: !1, producer: "clang version 12.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -338,3 +338,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!106 = !DILocation(line: 39, column: 10, scope: !99)
|
||||
!107 = !DILocation(line: 40, column: 1, scope: !99)
|
||||
!108 = !DILocation(line: 39, column: 3, scope: !99)
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt -passes=inline %s -S -o - -experimental-assignment-tracking \
|
||||
; RUN: opt -passes=inline %s -S -o - \
|
||||
; RUN: | FileCheck %s
|
||||
|
||||
;; Hand modified from:
|
||||
@ -52,7 +52,7 @@ declare void @llvm.dbg.value(metadata, metadata, metadata) #2
|
||||
|
||||
|
||||
!llvm.dbg.cu = !{!2}
|
||||
!llvm.module.flags = !{!7, !8, !9}
|
||||
!llvm.module.flags = !{!7, !8, !9, !1000}
|
||||
!llvm.ident = !{!10}
|
||||
|
||||
!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
|
||||
@ -77,3 +77,4 @@ declare void @llvm.dbg.value(metadata, metadata, metadata) #2
|
||||
!19 = !DILocation(line: 3, column: 15, scope: !16)
|
||||
!24 = !DILocation(line: 0, scope: !16)
|
||||
!25 = !DILocation(line: 4, column: 3, scope: !16)
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt -opaque-pointers=0 -passes=instcombine -S %s -o - -experimental-assignment-tracking \
|
||||
; RUN: opt -opaque-pointers=0 -passes=instcombine -S %s -o - \
|
||||
; RUN: | FileCheck %s
|
||||
|
||||
;; NOTE: This test uses typed pointers because it is testing a code path that
|
||||
@ -44,7 +44,7 @@ declare dso_local void @_ZN1cC1Ei(%struct.c*, i32) unnamed_addr
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata)
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!3, !4, !5}
|
||||
!llvm.module.flags = !{!3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_14, file: !1, producer: "clang version 12.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -72,3 +72,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!22 = !DILocation(line: 0, scope: !7)
|
||||
!23 = !DILocation(line: 6, column: 5, scope: !7)
|
||||
!24 = !DILocation(line: 7, column: 3, scope: !7)
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt %s -S -passes=instcombine -o - -experimental-assignment-tracking \
|
||||
; RUN: opt %s -S -passes=instcombine -o - \
|
||||
; RUN: | FileCheck %s
|
||||
|
||||
;; $ cat test.cpp
|
||||
@ -43,7 +43,7 @@ declare void @llvm.lifetime.end.p0i8(i64 immarg, ptr nocapture)
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata)
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!2, !3, !4, !5}
|
||||
!llvm.module.flags = !{!2, !3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_14, file: !1, producer: "clang version 14.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -76,3 +76,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!27 = !{null, !28}
|
||||
!28 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !13, size: 64)
|
||||
!29 = !{}
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt -passes=instcombine -S %s -o - -experimental-assignment-tracking \
|
||||
; RUN: opt -passes=instcombine -S %s -o - \
|
||||
; RUN: | FileCheck %s --implicit-check-not="call void @llvm.dbg"
|
||||
|
||||
;; Check that instcombine removes redundant debug intrinsics. This has a
|
||||
@ -21,7 +21,7 @@ declare !dbg !17 dso_local void @_Z3extv() local_unnamed_addr
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata)
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!2, !3, !4, !5}
|
||||
!llvm.module.flags = !{!2, !3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_14, file: !1, producer: "clang version 14.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -43,3 +43,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!16 = !DILocation(line: 2, column: 32, scope: !7)
|
||||
!17 = !DISubprogram(name: "ext", linkageName: "_Z3extv", scope: !1, file: !1, line: 1, type: !8, flags: DIFlagPrototyped, spFlags: DISPFlagOptimized, retainedNodes: !18)
|
||||
!18 = !{}
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt %s -S -passes=instcombine -experimental-assignment-tracking | FileCheck %s
|
||||
; RUN: opt %s -S -passes=instcombine | FileCheck %s
|
||||
|
||||
;; Check that instcombine merges the DIAssignID metadata when merging two
|
||||
;; stores into a successor. Filecheck directives inline.
|
||||
@ -66,7 +66,7 @@ declare void @llvm.lifetime.end.p0i8(i64 immarg, ptr nocapture)
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata)
|
||||
|
||||
!llvm.dbg.cu = !{!2}
|
||||
!llvm.module.flags = !{!7, !8, !9}
|
||||
!llvm.module.flags = !{!7, !8, !9, !1000}
|
||||
!llvm.ident = !{!10}
|
||||
|
||||
!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
|
||||
@ -106,3 +106,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!38 = !DISubroutineType(types: !39)
|
||||
!39 = !{null, !40}
|
||||
!40 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !6, size: 64)
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt %s -S -passes=instcombine -o - -experimental-assignment-tracking \
|
||||
; RUN: opt %s -S -passes=instcombine -o - \
|
||||
; RUN: | FileCheck %s
|
||||
|
||||
;; Check that when instcombine sinks an instruction used by a dbg.assign, the
|
||||
@ -88,7 +88,7 @@ declare void @llvm.lifetime.end.p0i8(i64 immarg, ptr nocapture) #3
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata) #4
|
||||
|
||||
!llvm.dbg.cu = !{!2}
|
||||
!llvm.module.flags = !{!7, !8, !9}
|
||||
!llvm.module.flags = !{!7, !8, !9, !1000}
|
||||
!llvm.ident = !{!10}
|
||||
|
||||
!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
|
||||
@ -140,3 +140,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!53 = distinct !DIAssignID()
|
||||
!54 = !DILocation(line: 17, column: 3, scope: !35)
|
||||
!55 = !DILocation(line: 18, column: 1, scope: !35)
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt %s -S -passes=instcombine -o - -experimental-assignment-tracking | FileCheck %s
|
||||
; RUN: opt %s -S -passes=instcombine -o - | FileCheck %s
|
||||
|
||||
;; $ cat test.cpp
|
||||
;; class a {
|
||||
@ -178,7 +178,7 @@ declare dso_local void @_ZN1g1hER1a(ptr, ptr nonnull align 4 dereferenceable(4))
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata) #3
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!3, !4, !5}
|
||||
!llvm.module.flags = !{!3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "clang version 12.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -250,3 +250,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!77 = !DILocation(line: 32, column: 3, scope: !7)
|
||||
!78 = !DILocation(line: 32, column: 5, scope: !7)
|
||||
!79 = !DILocation(line: 33, column: 1, scope: !7)
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt -passes=licm %s -S -experimental-assignment-tracking | FileCheck %s
|
||||
; RUN: opt -passes=licm %s -S | FileCheck %s
|
||||
|
||||
;; Ensure that we correctly merge the DIAssignID's from the sunk stores, add it
|
||||
;; to the new new store instruction, and update the dbg.assign intrinsics using
|
||||
@ -69,7 +69,7 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
declare !dbg !28 dso_local void @esc(ptr)
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!3, !4, !5}
|
||||
!llvm.module.flags = !{!3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 12.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -103,3 +103,4 @@ declare !dbg !28 dso_local void @esc(ptr)
|
||||
!36 = distinct !DIAssignID()
|
||||
!37 = distinct !DIAssignID()
|
||||
!38 = distinct !DIAssignID()
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt %s -S -passes=licm -o - -experimental-assignment-tracking | FileCheck %s
|
||||
; RUN: opt %s -S -passes=licm -o - | FileCheck %s
|
||||
|
||||
;; $ cat test.c
|
||||
;; int b, c, d;
|
||||
@ -112,7 +112,7 @@ declare !dbg !64 dso_local void @e(...) local_unnamed_addr #4
|
||||
declare void @llvm.dbg.value(metadata, metadata, metadata) #1
|
||||
|
||||
!llvm.dbg.cu = !{!2}
|
||||
!llvm.module.flags = !{!11, !12, !13}
|
||||
!llvm.module.flags = !{!11, !12, !13, !1000}
|
||||
!llvm.ident = !{!14}
|
||||
|
||||
!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
|
||||
@ -178,3 +178,4 @@ declare void @llvm.dbg.value(metadata, metadata, metadata) #1
|
||||
!64 = !DISubprogram(name: "e", scope: !3, file: !3, line: 2, type: !65, spFlags: DISPFlagOptimized, retainedNodes: !4)
|
||||
!65 = !DISubroutineType(types: !66)
|
||||
!66 = !{null, null}
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt %s -passes=loop-deletion -S -o - -experimental-assignment-tracking \
|
||||
; RUN: opt %s -passes=loop-deletion -S -o - \
|
||||
; RUN: | FileCheck %s
|
||||
|
||||
;; $ cat test.cpp:
|
||||
@ -44,7 +44,7 @@ declare void @llvm.lifetime.end.p0i8(i64 immarg, ptr nocapture)
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata)
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!2, !3, !4, !5}
|
||||
!llvm.module.flags = !{!2, !3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_14, file: !1, producer: "clang version 14.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -77,3 +77,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!31 = !{null, !32}
|
||||
!32 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !12, size: 64)
|
||||
!33 = !{}
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt -passes=mem2reg -S %s -o - -experimental-assignment-tracking \
|
||||
; RUN: opt -passes=mem2reg -S %s -o - \
|
||||
; RUN: | FileCheck %s --implicit-check-not="call void @llvm.dbg"
|
||||
|
||||
;; Test assignment tracking debug info when mem2reg promotes an alloca with
|
||||
@ -64,7 +64,7 @@ if.end: ; preds = %if.else, %if.then
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata)
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!2, !3, !4, !5}
|
||||
!llvm.module.flags = !{!2, !3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_14, file: !1, producer: "clang version 14.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -94,3 +94,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!28 = !DILocation(line: 6, column: 10, scope: !7)
|
||||
!29 = !DILocation(line: 6, column: 3, scope: !7)
|
||||
!30 = !DILocalVariable(name: "b", arg: 2, scope: !7, file: !1, line: 1, type: !10)
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt -passes=mem2reg -S %s -o - -experimental-assignment-tracking \
|
||||
; RUN: opt -passes=mem2reg -S %s -o - \
|
||||
; RUN: | FileCheck %s --implicit-check-not="call void @llvm.dbg"
|
||||
|
||||
;; Test assignment tracking debug info when mem2reg promotes a single-block
|
||||
@ -40,7 +40,7 @@ entry:
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata)
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!2, !3, !4, !5}
|
||||
!llvm.module.flags = !{!2, !3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_14, file: !1, producer: "clang version 14.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -64,3 +64,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!22 = !DILocation(line: 3, column: 10, scope: !7)
|
||||
!23 = !DILocation(line: 3, column: 3, scope: !7)
|
||||
!24 = !DILocalVariable(name: "b", scope: !7, file: !1, line: 1, type: !10)
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt -passes=mem2reg -S %s -o - -experimental-assignment-tracking \
|
||||
; RUN: opt -passes=mem2reg -S %s -o - \
|
||||
; RUN: | FileCheck %s --implicit-check-not="call void @llvm.dbg"
|
||||
|
||||
;; Test assignment tracking debug info when mem2reg promotes a single-store
|
||||
@ -38,7 +38,7 @@ entry:
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata)
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!2, !3, !4, !5}
|
||||
!llvm.module.flags = !{!2, !3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_14, file: !1, producer: "clang version 14.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -60,3 +60,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!20 = !DILocation(line: 1, column: 23, scope: !7)
|
||||
!21 = !DILocation(line: 1, column: 16, scope: !7)
|
||||
!22 = !DILocalVariable(name: "b", scope: !7, file: !1, line: 1, type: !10)
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt %s -S -passes=memcpyopt -o - -experimental-assignment-tracking | FileCheck %s
|
||||
; RUN: opt %s -S -passes=memcpyopt -o - | FileCheck %s
|
||||
|
||||
;; $ cat test.cpp
|
||||
;; struct v {
|
||||
@ -85,7 +85,7 @@ declare void @llvm.lifetime.end.p0i8(i64 immarg, ptr nocapture)
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata)
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!3, !4, !5}
|
||||
!llvm.module.flags = !{!3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "clang version 12.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -157,3 +157,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!70 = !DISubprogram(name: "esc", linkageName: "_Z3escP1v", scope: !1, file: !1, line: 10, type: !71, flags: DIFlagPrototyped, spFlags: DISPFlagOptimized, retainedNodes: !2)
|
||||
!71 = !DISubroutineType(types: !72)
|
||||
!72 = !{null, !30}
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt -passes=mldst-motion -S %s -o - -experimental-assignment-tracking \
|
||||
; RUN: opt -passes=mldst-motion -S %s -o - \
|
||||
; RUN: | FileCheck %s
|
||||
|
||||
;; $ cat test.cpp
|
||||
@ -63,7 +63,7 @@ declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture)
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata)
|
||||
|
||||
!llvm.dbg.cu = !{!2}
|
||||
!llvm.module.flags = !{!6, !7, !8, !9}
|
||||
!llvm.module.flags = !{!6, !7, !8, !9, !1000}
|
||||
!llvm.ident = !{!10}
|
||||
|
||||
!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
|
||||
@ -105,3 +105,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!40 = !{null, !41}
|
||||
!41 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !5, size: 64)
|
||||
!42 = !{}
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: not opt -S %s -experimental-assignment-tracking 2>&1 \
|
||||
; RUN: not opt -S %s 2>&1 \
|
||||
; RUN: | FileCheck %s
|
||||
|
||||
;; Check that badly formed assignment tracking metadata is caught either
|
||||
@ -7,3 +7,4 @@
|
||||
; CHECK: error: missing 'distinct', required for !DIAssignID()
|
||||
|
||||
!1 = !DIAssignID()
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt -S %s -passes=verify -experimental-assignment-tracking 2>&1 \
|
||||
; RUN: opt -S %s -passes=verify 2>&1 \
|
||||
; RUN: | FileCheck %s
|
||||
|
||||
;; NOTE: Expect opt to return zero because the badly formed debug info
|
||||
@ -20,7 +20,7 @@ entry:
|
||||
}
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!3, !4, !5}
|
||||
!llvm.module.flags = !{!3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 14.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -34,3 +34,4 @@ entry:
|
||||
!8 = !DISubroutineType(types: !9)
|
||||
!9 = !{null}
|
||||
!14 = distinct !DIAssignID()
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: not opt -S %s -experimental-assignment-tracking 2>&1 \
|
||||
; RUN: not opt -S %s 2>&1 \
|
||||
; RUN: | FileCheck %s
|
||||
|
||||
;; Check that badly formed assignment tracking metadata is caught either
|
||||
@ -7,3 +7,4 @@
|
||||
; CHECK: error: expected ')' here
|
||||
|
||||
!1 = distinct !DIAssignID(0)
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
; RUN: opt %s -passes=verify -experimental-assignment-tracking \
|
||||
; RUN: | opt -passes=verify -S -experimental-assignment-tracking \
|
||||
; RUN: opt %s -passes=verify \
|
||||
; RUN: | opt -passes=verify -S \
|
||||
; RUN: | FileCheck %s
|
||||
|
||||
;; Roundtrip test (text -> bitcode -> text) for DIAssignID metadata and
|
||||
@ -78,7 +78,7 @@ entry:
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata)
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!3, !4, !5}
|
||||
!llvm.module.flags = !{!3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 14.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -113,3 +113,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!30 = distinct !DIAssignID()
|
||||
!31 = !DISubroutineType(types: !32)
|
||||
!32 = !{null, !11}
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt %s -S -passes=verify -experimental-assignment-tracking 2>&1 \
|
||||
; RUN: opt %s -S -passes=verify 2>&1 \
|
||||
; RUN: | FileCheck %s
|
||||
|
||||
;; Check that badly formed assignment tracking metadata is caught either
|
||||
@ -43,7 +43,7 @@ declare void @llvm.dbg.value(metadata, metadata, metadata)
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata)
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!3, !4, !5}
|
||||
!llvm.module.flags = !{!3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 14.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -61,3 +61,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!13 = !DILocation(line: 1, column: 1, scope: !7)
|
||||
!14 = distinct !DIAssignID()
|
||||
!15 = distinct !DISubprogram(name: "fun2", scope: !1, file: !1, line: 1, type: !8, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !2)
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt -passes=redundant-dbg-inst-elim -S %s -o - -experimental-assignment-tracking \
|
||||
; RUN: opt -passes=redundant-dbg-inst-elim -S %s -o - \
|
||||
; RUN: | FileCheck %s --implicit-check-not="call void @llvm.dbg"
|
||||
|
||||
;; $ cat -n reduce.c
|
||||
@ -83,7 +83,7 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
declare void @llvm.memset.p0i8.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #4
|
||||
|
||||
!llvm.dbg.cu = !{!2}
|
||||
!llvm.module.flags = !{!6, !7, !8, !9, !10}
|
||||
!llvm.module.flags = !{!6, !7, !8, !9, !10, !1000}
|
||||
!llvm.ident = !{!11}
|
||||
|
||||
!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
|
||||
@ -129,3 +129,4 @@ declare void @llvm.memset.p0i8.i64(ptr nocapture writeonly, i8, i64, i1 immarg)
|
||||
!46 = !DILocation(line: 18, scope: !12)
|
||||
!47 = !DISubprogram(name: "ext", scope: !3, file: !3, line: 1, type: !13, spFlags: DISPFlagOptimized, retainedNodes: !48)
|
||||
!48 = !{}
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt -passes=redundant-dbg-inst-elim -S %s -o - -experimental-assignment-tracking \
|
||||
; RUN: opt -passes=redundant-dbg-inst-elim -S %s -o - \
|
||||
; RUN: | FileCheck %s --implicit-check-not="call void @llvm.dbg"
|
||||
|
||||
;; Hand-written. Test how RemoveRedundantDbgInstrs interacts with dbg.assign
|
||||
@ -92,7 +92,7 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
declare void @llvm.dbg.value(metadata, metadata, metadata)
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!2, !3, !4, !5}
|
||||
!llvm.module.flags = !{!2, !3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_14, file: !1, producer: "clang version 14.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -117,3 +117,4 @@ declare void @llvm.dbg.value(metadata, metadata, metadata)
|
||||
!19 = !DILocalVariable(name: "Local2", scope: !7, file: !1, line: 2, type: !12)
|
||||
!20 = distinct !DIAssignID()
|
||||
!21 = distinct !DIAssignID()
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt %s -S -o - -passes=instcombine -experimental-assignment-tracking \
|
||||
; RUN: opt %s -S -o - -passes=instcombine \
|
||||
; RUN: | FileCheck %s --implicit-check-not="call void @llvm.dbg"
|
||||
|
||||
;; Hand-written (the debug info doesn't necessarily make sense and isn't fully
|
||||
@ -40,7 +40,7 @@ entry:
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata)
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!2, !3, !4, !5}
|
||||
!llvm.module.flags = !{!2, !3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_14, file: !1, producer: "clang version 14.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -71,3 +71,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!33 = !DILocalVariable(name: "Local2", scope: !7, file: !1, line: 3, type: !10)
|
||||
!34 = !DILocalVariable(name: "Local3", scope: !7, file: !1, line: 3, type: !10)
|
||||
!35 = !DILocalVariable(name: "Local4", scope: !7, file: !1, line: 3, type: !10)
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt -S %s -passes=simplifycfg -o - -experimental-assignment-tracking \
|
||||
; RUN: opt -S %s -passes=simplifycfg -o - \
|
||||
; RUN: | FileCheck %s
|
||||
|
||||
;; $ cat test.cpp
|
||||
@ -80,7 +80,7 @@ declare void @llvm.lifetime.end.p0i8(i64 immarg, ptr nocapture) #1
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata) #3
|
||||
|
||||
!llvm.dbg.cu = !{!2}
|
||||
!llvm.module.flags = !{!7, !8, !9}
|
||||
!llvm.module.flags = !{!7, !8, !9, !1000}
|
||||
!llvm.ident = !{!10}
|
||||
|
||||
!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
|
||||
@ -130,3 +130,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!50 = !DISubroutineType(types: !51)
|
||||
!51 = !{null, !19, !52}
|
||||
!52 = !DIDerivedType(tag: DW_TAG_reference_type, baseType: !23, size: 64)
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt -passes=simplifycfg %s -S -experimental-assignment-tracking \
|
||||
; RUN: opt -passes=simplifycfg %s -S \
|
||||
; RUN: | FileCheck %s
|
||||
|
||||
;; Ensure that we correctly update the value component of dbg.assign intrinsics
|
||||
@ -55,7 +55,7 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
declare void @llvm.lifetime.end.p0i8(i64 immarg, ptr nocapture)
|
||||
|
||||
!llvm.dbg.cu = !{!2}
|
||||
!llvm.module.flags = !{!7, !8, !9}
|
||||
!llvm.module.flags = !{!7, !8, !9, !1000}
|
||||
!llvm.ident = !{!10}
|
||||
|
||||
!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
|
||||
@ -84,3 +84,4 @@ declare void @llvm.lifetime.end.p0i8(i64 immarg, ptr nocapture)
|
||||
!27 = !DILocation(line: 6, column: 1, scope: !11)
|
||||
!36 = distinct !DIAssignID()
|
||||
!37 = distinct !DIAssignID()
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
; REQUIRES: x86-registered-target
|
||||
; RUN: opt -passes=slp-vectorizer -S -o - %s -experimental-assignment-tracking \
|
||||
; RUN: opt -passes=slp-vectorizer -S -o - %s \
|
||||
; RUN: | FileCheck %s
|
||||
|
||||
;; $ cat test.cpp
|
||||
@ -71,7 +71,7 @@ declare void @llvm.lifetime.end.p0i8(i64 immarg, ptr nocapture) #1
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata) #3
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!3, !4, !5}
|
||||
!llvm.module.flags = !{!3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_14, file: !1, producer: "clang version 12.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -140,3 +140,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!67 = !DISubroutineType(types: !68)
|
||||
!68 = !{!10, !69}
|
||||
!69 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !10, size: 64)
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt %s -S -passes=sroa -o - -experimental-assignment-tracking | FileCheck %s
|
||||
; RUN: opt %s -S -passes=sroa -o - | FileCheck %s
|
||||
|
||||
;; Check that SROA preserves the InlinedAt status of new dbg.assign intriniscs
|
||||
;; it inserts.
|
||||
@ -59,7 +59,7 @@ entry:
|
||||
}
|
||||
|
||||
!llvm.dbg.cu = !{!2}
|
||||
!llvm.module.flags = !{!11, !12, !13}
|
||||
!llvm.module.flags = !{!11, !12, !13, !1000}
|
||||
!llvm.ident = !{!14}
|
||||
|
||||
!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
|
||||
@ -142,3 +142,4 @@ entry:
|
||||
!81 = !DILocation(line: 14, column: 5, scope: !40, inlinedAt: !79)
|
||||
!82 = !DILocation(line: 20, column: 1, scope: !60, inlinedAt: !76)
|
||||
!83 = !DILocation(line: 21, column: 17, scope: !73)
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt -passes=sroa,verify -S %s -o - -experimental-assignment-tracking \
|
||||
; RUN: opt -passes=sroa,verify -S %s -o - \
|
||||
; RUN: | FileCheck %s --implicit-check-not="call void @llvm.dbg"
|
||||
|
||||
; Check that single sliced allocas retain their assignment tracking debug info.
|
||||
@ -47,7 +47,7 @@ declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture)
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata)
|
||||
|
||||
!llvm.dbg.cu = !{!2}
|
||||
!llvm.module.flags = !{!7, !8, !9}
|
||||
!llvm.module.flags = !{!7, !8, !9, !1000}
|
||||
!llvm.ident = !{!10}
|
||||
|
||||
!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
|
||||
@ -80,3 +80,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!27 = !DILocation(line: 7, column: 3, scope: !11)
|
||||
!28 = !DILocation(line: 7, column: 18, scope: !11)
|
||||
!33 = !DILocation(line: 8, column: 1, scope: !11)
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt -passes=sroa -S -o - %s -experimental-assignment-tracking | FileCheck %s
|
||||
; RUN: opt -passes=sroa -S -o - %s | FileCheck %s
|
||||
;
|
||||
;; Based on llvm/test/DebugInfo/ARM/sroa-complex.ll
|
||||
;; generated from:
|
||||
@ -43,7 +43,7 @@ declare void @llvm.dbg.declare(metadata, metadata, metadata)
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata)
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!3, !4, !5, !6}
|
||||
!llvm.module.flags = !{!3, !4, !5, !6, !1000}
|
||||
!llvm.ident = !{!7}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 12.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -67,3 +67,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!18 = distinct !DIAssignID()
|
||||
!19 = distinct !DIAssignID()
|
||||
!20 = !DILocation(line: 2, column: 36, scope: !8)
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt -passes=sroa -S %s -o - -experimental-assignment-tracking | FileCheck %s
|
||||
; RUN: opt -passes=sroa -S %s -o - | FileCheck %s
|
||||
|
||||
;; $ cat test.cpp
|
||||
;; class a {
|
||||
@ -159,7 +159,7 @@ declare dso_local void @_ZN1a1cEv(ptr) local_unnamed_addr #5
|
||||
declare void @llvm.lifetime.end.p0i8(i64 immarg, ptr nocapture) #1
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!3, !4, !5}
|
||||
!llvm.module.flags = !{!3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "clang version 12.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -258,3 +258,4 @@ declare void @llvm.lifetime.end.p0i8(i64 immarg, ptr nocapture) #1
|
||||
!100 = !DILocation(line: 24, column: 1, scope: !57)
|
||||
!101 = !DILocation(line: 9, column: 19, scope: !93)
|
||||
!102 = !DILocation(line: 9, column: 12, scope: !93)
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt %s -S -passes=sroa -o - -experimental-assignment-tracking | FileCheck %s
|
||||
; RUN: opt %s -S -passes=sroa -o - | FileCheck %s
|
||||
|
||||
;; $ cat test.cpp
|
||||
;; class c {
|
||||
@ -75,7 +75,7 @@ declare void @llvm.lifetime.end.p0i8(i64 immarg, ptr nocapture) #1
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata) #2
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!3, !4, !5}
|
||||
!llvm.module.flags = !{!3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "clang version 12.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -111,3 +111,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!34 = !DISubprogram(name: "fn1", linkageName: "_Z3fn1v", scope: !1, file: !1, line: 4, type: !35, flags: DIFlagPrototyped, spFlags: DISPFlagOptimized, retainedNodes: !2)
|
||||
!35 = !DISubroutineType(types: !36)
|
||||
!36 = !{!13}
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt -passes=sroa -S %s -o - -experimental-assignment-tracking | FileCheck %s
|
||||
; RUN: opt -passes=sroa -S %s -o - | FileCheck %s
|
||||
|
||||
;; Check that multiple dbg.assign intrinsics linked to a store that is getting
|
||||
;; split (or at least that is touched by SROA, causing a replacement store to
|
||||
@ -104,7 +104,7 @@ declare void @llvm.lifetime.end.p0i8(i64 immarg, ptr nocapture) #1
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata) #3
|
||||
|
||||
!llvm.dbg.cu = !{!2}
|
||||
!llvm.module.flags = !{!12, !13, !14}
|
||||
!llvm.module.flags = !{!12, !13, !14, !1000}
|
||||
!llvm.ident = !{!15}
|
||||
|
||||
!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
|
||||
@ -172,3 +172,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!68 = distinct !DIAssignID()
|
||||
!69 = distinct !DIAssignID()
|
||||
!70 = !DILocation(line: 3, column: 20, scope: !42)
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt -passes=sroa,verify -S %s -o - -experimental-assignment-tracking \
|
||||
; RUN: opt -passes=sroa,verify -S %s -o - \
|
||||
; RUN: | FileCheck %s --implicit-check-not="call void @llvm.dbg"
|
||||
|
||||
;; Check that the new slices of an alloca and memcpy intructions get dbg.assign
|
||||
@ -79,7 +79,7 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
|
||||
|
||||
!llvm.dbg.cu = !{!2}
|
||||
!llvm.module.flags = !{!16, !17, !18}
|
||||
!llvm.module.flags = !{!16, !17, !18, !1000}
|
||||
!llvm.ident = !{!19}
|
||||
|
||||
!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
|
||||
@ -115,3 +115,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!35 = !DILocation(line: 9, column: 13, scope: !20)
|
||||
!38 = !DILocation(line: 10, column: 1, scope: !20)
|
||||
!39 = !DILocation(line: 9, column: 3, scope: !20)
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt %s -passes=sroa -o - -S -experimental-assignment-tracking \
|
||||
; RUN: opt %s -passes=sroa -o - -S \
|
||||
; RUN: | FileCheck %s
|
||||
|
||||
;; Generated from this C++ source:
|
||||
@ -112,7 +112,7 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!2, !3, !4, !5, !6, !7}
|
||||
!llvm.module.flags = !{!2, !3, !4, !5, !6, !7, !1000}
|
||||
!llvm.ident = !{!8}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_14, file: !1, producer: "clang version 16.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -161,3 +161,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!49 = !DILocation(line: 23, column: 27, scope: !41)
|
||||
!50 = !DILocation(line: 23, column: 5, scope: !41)
|
||||
!51 = !DILocation(line: 24, column: 1, scope: !9)
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt -passes=sroa,verify -S %s -experimental-assignment-tracking -o - \
|
||||
; RUN: opt -passes=sroa,verify -S %s -o - \
|
||||
; RUN: | FileCheck %s --implicit-check-not="call void @llvm.dbg"
|
||||
|
||||
; Check that the new slices of an alloca and memset intructions get dbg.assign
|
||||
@ -85,7 +85,7 @@ declare void @llvm.lifetime.end.p0i8(i64 immarg, ptr nocapture) #1
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata) #3
|
||||
|
||||
!llvm.dbg.cu = !{!2}
|
||||
!llvm.module.flags = !{!10, !11, !12}
|
||||
!llvm.module.flags = !{!10, !11, !12, !1000}
|
||||
!llvm.ident = !{!13}
|
||||
|
||||
!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
|
||||
@ -128,3 +128,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!43 = !DILocation(line: 12, column: 12, scope: !14)
|
||||
!44 = !DILocation(line: 13, column: 1, scope: !14)
|
||||
!45 = !DILocation(line: 12, column: 3, scope: !14)
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt -passes=sroa,verify -S %s -o - -experimental-assignment-tracking \
|
||||
; RUN: opt -passes=sroa,verify -S %s -o - \
|
||||
; RUN: | FileCheck %s --implicit-check-not="call void @llvm.dbg"
|
||||
|
||||
; Check that the new slices of an alloca and memset intructions get dbg.assign
|
||||
@ -100,7 +100,7 @@ declare void @llvm.lifetime.end.p0i8(i64 immarg, ptr nocapture) #1
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata) #4
|
||||
|
||||
!llvm.dbg.cu = !{!2}
|
||||
!llvm.module.flags = !{!10, !11, !12}
|
||||
!llvm.module.flags = !{!10, !11, !12, !1000}
|
||||
!llvm.ident = !{!13}
|
||||
|
||||
!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
|
||||
@ -148,3 +148,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!49 = !DISubprogram(name: "use", linkageName: "_Z3use11LargeStruct", scope: !3, file: !3, line: 9, type: !50, flags: DIFlagPrototyped, spFlags: DISPFlagOptimized, retainedNodes: !4)
|
||||
!50 = !DISubroutineType(types: !51)
|
||||
!51 = !{!9, !19}
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt -S %s -passes=sroa -o - -experimental-assignment-tracking | FileCheck %s
|
||||
; RUN: opt -S %s -passes=sroa -o - | FileCheck %s
|
||||
|
||||
;; $ cat test.cpp
|
||||
;; #include <cstddef>
|
||||
@ -23,7 +23,7 @@ declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata) #1
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!10, !11, !12}
|
||||
!llvm.module.flags = !{!10, !11, !12, !1000}
|
||||
!llvm.ident = !{!13}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_14, file: !1, producer: "clang version 12.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, imports: !3, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -52,3 +52,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!23 = !DILocation(line: 0, scope: !14)
|
||||
!28 = distinct !DIAssignID()
|
||||
!29 = !DILocation(line: 20, column: 27, scope: !14)
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt -passes=sroa -S %s -o - -experimental-assignment-tracking \
|
||||
; RUN: opt -passes=sroa -S %s -o - \
|
||||
; RUN: | FileCheck %s --implicit-check-not="call void @llvm.dbg"
|
||||
|
||||
;; Check that the fragments generated in SROA for a split alloca that has a
|
||||
@ -101,7 +101,7 @@ declare void @llvm.lifetime.end.p0i8(i64 immarg, ptr nocapture)
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata)
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!96, !97, !98}
|
||||
!llvm.module.flags = !{!96, !97, !98, !1000}
|
||||
!llvm.ident = !{!99}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_14, file: !1, producer: "clang version 12.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, imports: !3, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -233,3 +233,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!131 = !DILocation(line: 8, column: 32, scope: !100)
|
||||
!132 = distinct !DIAssignID()
|
||||
!133 = !DILocation(line: 9, column: 1, scope: !100)
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt %s -S -passes=sroa -o - -experimental-assignment-tracking | FileCheck %s
|
||||
; RUN: opt %s -S -passes=sroa -o - | FileCheck %s
|
||||
|
||||
;; Ensure that only the value-expression gets fragment info; that the
|
||||
;; address-expression remains untouched.
|
||||
@ -61,7 +61,7 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!3, !4, !5}
|
||||
!llvm.module.flags = !{!3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "clang version 12.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -102,3 +102,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!39 = distinct !DIAssignID()
|
||||
!40 = distinct !DIAssignID()
|
||||
!41 = !DILocation(line: 8, column: 36, scope: !7)
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt %s -S -passes=sroa -o - -experimental-assignment-tracking | FileCheck %s
|
||||
; RUN: opt %s -S -passes=sroa -o - | FileCheck %s
|
||||
|
||||
;; $ cat test.cpp
|
||||
;; class a {
|
||||
@ -115,7 +115,7 @@ declare void @llvm.lifetime.end.p0i8(i64 immarg, ptr nocapture) #1
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata) #4
|
||||
|
||||
!llvm.dbg.cu = !{!2}
|
||||
!llvm.module.flags = !{!7, !8, !9}
|
||||
!llvm.module.flags = !{!7, !8, !9, !1000}
|
||||
!llvm.ident = !{!10}
|
||||
|
||||
!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
|
||||
@ -204,3 +204,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!87 = !DILocation(line: 8, column: 14, scope: !64)
|
||||
!88 = !DILocation(line: 8, column: 19, scope: !57)
|
||||
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: opt -passes='declare-to-assign,verify' %s -S -o - -experimental-assignment-tracking \
|
||||
; RUN: opt -passes='declare-to-assign,verify' %s -S -o - \
|
||||
; RUN: | FileCheck %s --implicit-check-not="call void @llvm.dbg"
|
||||
|
||||
;; This test checks that `trackAssignments` is working correctly by using the
|
||||
@ -337,7 +337,7 @@ declare void @llvm.lifetime.end.p0i8(i64 immarg, ptr nocapture) #1
|
||||
declare dso_local void @_ZN9LCopyCtorC1Ev(ptr noundef nonnull align 4 dereferenceable(16)) unnamed_addr
|
||||
|
||||
!llvm.dbg.cu = !{!2}
|
||||
!llvm.module.flags = !{!26, !27, !28, !29}
|
||||
!llvm.module.flags = !{!26, !27, !28, !29, !1000}
|
||||
!llvm.ident = !{!30}
|
||||
|
||||
; CHECK-DAG: ![[VAR_0]] = !DILocalVariable(name: "Z",
|
||||
@ -503,3 +503,4 @@ declare dso_local void @_ZN9LCopyCtorC1Ev(ptr noundef nonnull align 4 dereferenc
|
||||
!146 = !DILocation(line: 2, column: 29, scope: !129, inlinedAt: !144)
|
||||
!147 = !DILocation(line: 2, column: 27, scope: !129, inlinedAt: !144)
|
||||
!148 = !DILocation(line: 3, column: 18, scope: !139)
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
; RUN: llc %s -stop-before=finalize-isel -o - \
|
||||
; RUN: -experimental-assignment-tracking \
|
||||
; RUN: | FileCheck %s
|
||||
|
||||
; Check basic lowering behaviour of dbg.assign intrinsics. The first
|
||||
@ -39,7 +38,7 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
declare !dbg !26 dso_local void @esc(ptr) local_unnamed_addr
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!3, !4, !5}
|
||||
!llvm.module.flags = !{!3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 12.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -70,3 +69,4 @@ declare !dbg !26 dso_local void @esc(ptr) local_unnamed_addr
|
||||
!30 = distinct !DIAssignID()
|
||||
!31 = distinct !DIAssignID()
|
||||
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: llc %s -stop-after=finalize-isel -o - -experimental-assignment-tracking \
|
||||
; RUN: llc %s -stop-after=finalize-isel -o - \
|
||||
; RUN: | FileCheck %s
|
||||
|
||||
;; Hand written test because the scenario is unlikely. Check that the "value"
|
||||
@ -72,7 +72,7 @@ declare !dbg !27 dso_local void @a(ptr) local_unnamed_addr #2
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata) #3
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!3, !4, !5}
|
||||
!llvm.module.flags = !{!3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 12.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -104,3 +104,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!29 = !{null, !30}
|
||||
!30 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !12, size: 64)
|
||||
!31 = distinct !DIAssignID()
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: llc %s -stop-after=finalize-isel -o - -experimental-assignment-tracking \
|
||||
; RUN: llc %s -stop-after=finalize-isel -o - \
|
||||
; RUN: | FileCheck %s
|
||||
|
||||
;; cat test.cpp
|
||||
@ -80,7 +80,7 @@ declare !dbg !38 dso_local void @_Z2esPi(ptr noundef) local_unnamed_addr #1
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata) #2
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!2, !3, !4, !5}
|
||||
!llvm.module.flags = !{!2, !3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_14, file: !1, producer: "clang version 14.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -121,3 +121,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!39 = !DISubroutineType(types: !40)
|
||||
!40 = !{null, !41}
|
||||
!41 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !10, size: 64)
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: llc %s -stop-after=finalize-isel -o - -experimental-assignment-tracking \
|
||||
; RUN: llc %s -stop-after=finalize-isel -o - \
|
||||
; RUN: | FileCheck %s
|
||||
|
||||
;; Same as diamond-1.ll except that the DIAssignID attached to the store has
|
||||
@ -68,7 +68,7 @@ declare !dbg !38 dso_local void @_Z2esPi(ptr noundef) local_unnamed_addr #1
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata) #2
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!2, !3, !4, !5}
|
||||
!llvm.module.flags = !{!2, !3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_14, file: !1, producer: "clang version 14.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -109,3 +109,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!39 = !DISubroutineType(types: !40)
|
||||
!40 = !{null, !41}
|
||||
!41 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !10, size: 64)
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: llc %s -stop-after=finalize-isel -o - -experimental-assignment-tracking \
|
||||
; RUN: llc %s -stop-after=finalize-isel -o - \
|
||||
; RUN: | FileCheck %s --implicit-check-not=DBG_
|
||||
|
||||
;; Hand written to test scenario we can definitely run into in the wild. This
|
||||
@ -63,7 +63,7 @@ declare void @e()
|
||||
declare void @es(ptr)
|
||||
|
||||
!llvm.dbg.cu = !{!2}
|
||||
!llvm.module.flags = !{!7, !8, !9, !10}
|
||||
!llvm.module.flags = !{!7, !8, !9, !10, !1000}
|
||||
!llvm.ident = !{!11}
|
||||
|
||||
!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
|
||||
@ -115,3 +115,4 @@ declare void @es(ptr)
|
||||
!50 = !DISubprogram(name: "es", linkageName: "_Z2esPi", scope: !3, file: !3, line: 3, type: !51, flags: DIFlagPrototyped, spFlags: DISPFlagOptimized, retainedNodes: !46)
|
||||
!51 = !DISubroutineType(types: !52)
|
||||
!52 = !{null, !5}
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: llc %s -stop-after=finalize-isel -o - -experimental-assignment-tracking \
|
||||
; RUN: llc %s -stop-after=finalize-isel -o - \
|
||||
; RUN: | FileCheck %s --implicit-check-not=DBG_
|
||||
|
||||
;; $ cat test.cpp
|
||||
@ -64,7 +64,7 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
declare void @llvm.dbg.value(metadata, metadata, metadata) #3
|
||||
|
||||
!llvm.dbg.cu = !{!2}
|
||||
!llvm.module.flags = !{!7, !8, !9, !10}
|
||||
!llvm.module.flags = !{!7, !8, !9, !10, !1000}
|
||||
!llvm.ident = !{!11}
|
||||
|
||||
!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
|
||||
@ -116,3 +116,4 @@ declare void @llvm.dbg.value(metadata, metadata, metadata) #3
|
||||
!50 = !DISubprogram(name: "es", linkageName: "_Z2esPi", scope: !3, file: !3, line: 3, type: !51, flags: DIFlagPrototyped, spFlags: DISPFlagOptimized, retainedNodes: !46)
|
||||
!51 = !DISubroutineType(types: !52)
|
||||
!52 = !{null, !5}
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: llc %s -stop-after=finalize-isel -o - -experimental-assignment-tracking \
|
||||
; RUN: llc %s -stop-after=finalize-isel -o - \
|
||||
; RUN: | FileCheck %s --implicit-check-not=DBG
|
||||
|
||||
;; Tiny loop with a store sunk out of it:
|
||||
@ -70,7 +70,7 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
declare dso_local i32 @getInt()
|
||||
|
||||
!llvm.dbg.cu = !{!2}
|
||||
!llvm.module.flags = !{!7, !8, !9, !10}
|
||||
!llvm.module.flags = !{!7, !8, !9, !10, !1000}
|
||||
!llvm.ident = !{!11}
|
||||
|
||||
!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
|
||||
@ -112,3 +112,4 @@ declare dso_local i32 @getInt()
|
||||
!42 = !DISubprogram(name: "es", linkageName: "_Z2esPi", scope: !3, file: !3, line: 3, type: !43, flags: DIFlagPrototyped, spFlags: DISPFlagOptimized, retainedNodes: !41)
|
||||
!43 = !DISubroutineType(types: !44)
|
||||
!44 = !{null, !5}
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
; RUN: llc %s -stop-after=finalize-isel -o - \
|
||||
; RUN: -experimental-assignment-tracking \
|
||||
; RUN: | FileCheck %s
|
||||
;;
|
||||
;; Backend counterpart to ../Generic/dbg-assign-loop-unroll. This IR was
|
||||
@ -51,7 +50,7 @@ declare !dbg !32 dso_local void @_Z3escPi(ptr) local_unnamed_addr
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata)
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!3, !4, !5}
|
||||
!llvm.module.flags = !{!3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_14, file: !1, producer: "clang version 12.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -86,3 +85,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!33 = !DISubroutineType(types: !34)
|
||||
!34 = !{null, !35}
|
||||
!35 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !10, size: 64)
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
; RUN: llc %s -stop-after=finalize-isel -o - \
|
||||
; RUN: -experimental-assignment-tracking \
|
||||
; RUN: | FileCheck %s
|
||||
|
||||
;; Handwritten test.
|
||||
@ -30,7 +29,7 @@ entry:
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata)
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!3, !4, !5}
|
||||
!llvm.module.flags = !{!3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_14, file: !1, producer: "clang version 12.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -68,3 +67,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!55 = !{!10, !56}
|
||||
!56 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !10, size: 64)
|
||||
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,9 +1,7 @@
|
||||
; RUN: llc %s -stop-before finalize-isel -o - \
|
||||
; RUN: -experimental-assignment-tracking \
|
||||
; RUN: -experimental-debug-variable-locations=false \
|
||||
; RUN: | FileCheck %s --check-prefixes=CHECK,DBGVALUE --implicit-check-not=DBG_VALUE
|
||||
; RUN: llc %s -stop-before finalize-isel -o - \
|
||||
; RUN: -experimental-assignment-tracking \
|
||||
; RUN: -experimental-debug-variable-locations=true \
|
||||
; RUN: | FileCheck %s --check-prefixes=CHECK,INSTRREF --implicit-check-not=DBG_VALUE \
|
||||
; RUN: --implicit-check-not=DBG_INSTR_REF
|
||||
@ -77,7 +75,7 @@ declare void @llvm.lifetime.end.p0i8(i64 immarg, ptr nocapture)
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata)
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!3, !4, !5}
|
||||
!llvm.module.flags = !{!3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_14, file: !1, producer: "clang version 12.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -112,3 +110,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!34 = !DISubroutineType(types: !35)
|
||||
!35 = !{null, !36}
|
||||
!36 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !10, size: 64)
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,9 +1,7 @@
|
||||
; RUN: llc %s -stop-before finalize-isel -o - \
|
||||
; RUN: -experimental-assignment-tracking \
|
||||
; RUN: -experimental-debug-variable-locations=false \
|
||||
; RUN: | FileCheck %s --implicit-check-not=DBG_
|
||||
; RUN: llc %s -stop-before finalize-isel -o - \
|
||||
; RUN: -experimental-assignment-tracking \
|
||||
; RUN: -experimental-debug-variable-locations=true \
|
||||
; RUN: | FileCheck %s --implicit-check-not=DBG_
|
||||
|
||||
@ -98,7 +96,7 @@ declare void @llvm.memcpy.p0i8.p0i8.i64(ptr noalias nocapture writeonly, ptr noa
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata) #2
|
||||
|
||||
!llvm.dbg.cu = !{!2}
|
||||
!llvm.module.flags = !{!11, !12, !13, !14}
|
||||
!llvm.module.flags = !{!11, !12, !13, !14, !1000}
|
||||
!llvm.ident = !{!15}
|
||||
|
||||
!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
|
||||
@ -145,3 +143,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!67 = !{!68}
|
||||
!68 = !DIBasicType(name: "bool", size: 8, encoding: DW_ATE_boolean)
|
||||
!69 = !{}
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,9 +1,7 @@
|
||||
; RUN: llc %s -stop-before finalize-isel -o - \
|
||||
; RUN: -experimental-assignment-tracking \
|
||||
; RUN: -experimental-debug-variable-locations=false \
|
||||
; RUN: | FileCheck %s --implicit-check-not=DBG_
|
||||
; RUN: llc %s -stop-before finalize-isel -o - \
|
||||
; RUN: -experimental-assignment-tracking \
|
||||
; RUN: -experimental-debug-variable-locations=true \
|
||||
; RUN: | FileCheck %s --implicit-check-not=DBG_
|
||||
|
||||
@ -65,7 +63,7 @@ declare void @llvm.lifetime.end.p0i8(i64 immarg, ptr nocapture) #1
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata) #3
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!2, !3, !4, !5}
|
||||
!llvm.module.flags = !{!2, !3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_14, file: !1, producer: "clang version 14.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -107,3 +105,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!41 = !DISubroutineType(types: !42)
|
||||
!42 = !{null, !43}
|
||||
!43 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !13, size: 64)
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: llc %s -stop-after=finalize-isel -o - -experimental-assignment-tracking \
|
||||
; RUN: llc %s -stop-after=finalize-isel -o - \
|
||||
; RUN: | FileCheck %s --implicit-check-not=DBG
|
||||
|
||||
;; Test a variety of block inputs and lattice configurations for the assignment
|
||||
@ -254,7 +254,7 @@ declare void @llvm.dbg.value(metadata, metadata, metadata)
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata)
|
||||
|
||||
!llvm.dbg.cu = !{!2}
|
||||
!llvm.module.flags = !{!10, !11, !12, !13, !14, !15}
|
||||
!llvm.module.flags = !{!10, !11, !12, !13, !14, !15, !1000}
|
||||
!llvm.ident = !{!16}
|
||||
|
||||
!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
|
||||
@ -329,3 +329,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!77 = distinct !DIAssignID()
|
||||
!78 = distinct !DIAssignID()
|
||||
!82 = distinct !DIAssignID()
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: llc %s -stop-after=finalize-isel -o - -experimental-assignment-tracking \
|
||||
; RUN: llc %s -stop-after=finalize-isel -o - \
|
||||
; RUN: | FileCheck %s --implicit-check-not=DBG
|
||||
|
||||
;; Test a variety of block inputs and lattice configurations for the assignment
|
||||
@ -321,7 +321,7 @@ declare void @llvm.dbg.value(metadata, metadata, metadata)
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata)
|
||||
|
||||
!llvm.dbg.cu = !{!2}
|
||||
!llvm.module.flags = !{!10, !11, !12, !13, !14, !15}
|
||||
!llvm.module.flags = !{!10, !11, !12, !13, !14, !15, !1000}
|
||||
!llvm.ident = !{!16}
|
||||
|
||||
!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
|
||||
@ -401,3 +401,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!82 = !DILocalVariable(name: "g", scope: !17, file: !3, line: 3, type: !7)
|
||||
!83 = distinct !DIAssignID()
|
||||
!84 = distinct !DIAssignID()
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: llc %s -stop-after=finalize-isel -o - -experimental-assignment-tracking \
|
||||
; RUN: llc %s -stop-after=finalize-isel -o - \
|
||||
; RUN: | FileCheck %s --implicit-check-not=DBG
|
||||
|
||||
;; Test a variety of block inputs and lattice configurations for the assignment
|
||||
@ -312,7 +312,7 @@ declare void @llvm.dbg.value(metadata, metadata, metadata)
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata)
|
||||
|
||||
!llvm.dbg.cu = !{!2}
|
||||
!llvm.module.flags = !{!10, !11, !12, !13, !14, !15}
|
||||
!llvm.module.flags = !{!10, !11, !12, !13, !14, !15, !1000}
|
||||
!llvm.ident = !{!16}
|
||||
|
||||
!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
|
||||
@ -396,3 +396,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!82 = !DILocalVariable(name: "g", scope: !17, file: !3, line: 3, type: !7)
|
||||
!83 = distinct !DIAssignID()
|
||||
!84 = distinct !DIAssignID()
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
; RUN: llc %s -o - -stop-after=finalize-isel \
|
||||
; RUN: -experimental-assignment-tracking \
|
||||
; RUN: | FileCheck %s --implicit-check-not=DBG_
|
||||
|
||||
;; Hand written. Check that no unnecessary undef is inserted after an alloca
|
||||
@ -25,7 +24,7 @@ declare dso_local void @a(...)
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata)
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!3, !4, !5}
|
||||
!llvm.module.flags = !{!3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 12.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -46,3 +45,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!15 = distinct !DIAssignID()
|
||||
!16 = !DILocation(line: 4, column: 3, scope: !7)
|
||||
!17 = !DILocation(line: 5, column: 1, scope: !7)
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: llc %s -stop-after=finalize-isel -o - -experimental-assignment-tracking \
|
||||
; RUN: llc %s -stop-after=finalize-isel -o - \
|
||||
; RUN: | FileCheck %s --implicit-check-not=DBG_
|
||||
|
||||
;; Ensure that the order of several debug intrinsics between non-debug
|
||||
@ -28,7 +28,7 @@ entry:
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata)
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!2, !3, !4, !5}
|
||||
!llvm.module.flags = !{!2, !3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 14.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -57,3 +57,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!23 = distinct !DIAssignID()
|
||||
!24 = !DILocation(line: 6, column: 14, scope: !7)
|
||||
!25 = !DILocation(line: 6, column: 3, scope: !7)
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,9 +1,7 @@
|
||||
; RUN: llc %s -stop-before finalize-isel -o - \
|
||||
; RUN: -experimental-assignment-tracking \
|
||||
; RUN: -experimental-debug-variable-locations=false \
|
||||
; RUN: | FileCheck %s --check-prefixes=CHECK,DBGVALUE --implicit-check-not="DBG_VALUE \$noreg"
|
||||
; RUN: llc %s -stop-before finalize-isel -o - \
|
||||
; RUN: -experimental-assignment-tracking \
|
||||
; RUN: -experimental-debug-variable-locations=true \
|
||||
; RUN: | FileCheck %s --check-prefixes=CHECK,INSTRREF --implicit-check-not="DBG_VALUE \$noreg"
|
||||
|
||||
@ -72,7 +70,7 @@ declare !dbg !32 dso_local void @_Z3extv() local_unnamed_addr #1
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata) #2
|
||||
|
||||
!llvm.dbg.cu = !{!2}
|
||||
!llvm.module.flags = !{!7, !8, !9}
|
||||
!llvm.module.flags = !{!7, !8, !9, !1000}
|
||||
!llvm.ident = !{!10}
|
||||
|
||||
!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
|
||||
@ -106,3 +104,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!32 = !DISubprogram(name: "ext", linkageName: "_Z3extv", scope: !3, file: !3, line: 2, type: !33, flags: DIFlagPrototyped, spFlags: DISPFlagOptimized, retainedNodes: !4)
|
||||
!33 = !DISubroutineType(types: !34)
|
||||
!34 = !{null}
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
; RUN: llc %s -o - -stop-after=finalize-isel \
|
||||
; RUN: -experimental-assignment-tracking \
|
||||
; RUN: | FileCheck %s --implicit-check-not=DBG
|
||||
|
||||
;; In the IR below, for variable n, we get dbg intrinsics that describe this:
|
||||
@ -86,7 +85,7 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
declare void @llvm.dbg.value(metadata, metadata, metadata)
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!2, !3, !4, !5, !6}
|
||||
!llvm.module.flags = !{!2, !3, !4, !5, !6, !1000}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "clang version 14.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None)
|
||||
!1 = !DIFile(filename: "reduce.cpp", directory: "/")
|
||||
@ -105,3 +104,4 @@ declare void @llvm.dbg.value(metadata, metadata, metadata)
|
||||
!14 = distinct !DIAssignID()
|
||||
!15 = !DILocation(line: 0, scope: !7)
|
||||
!16 = distinct !DIAssignID()
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,9 +1,7 @@
|
||||
; RUN: llc %s -stop-before finalize-isel -o - \
|
||||
; RUN: -experimental-assignment-tracking \
|
||||
; RUN: -experimental-debug-variable-locations=false \
|
||||
; RUN: | FileCheck %s --check-prefixes=CHECK,DBGVALUE
|
||||
; RUN: llc %s -stop-before finalize-isel -o - \
|
||||
; RUN: -experimental-assignment-tracking \
|
||||
; RUN: -experimental-debug-variable-locations=true \
|
||||
; RUN: | FileCheck %s --check-prefixes=CHECK,INSTRREF
|
||||
|
||||
@ -158,7 +156,7 @@ attributes #0 = { nounwind readnone uwtable }
|
||||
attributes #1 = { nounwind readnone speculatable }
|
||||
|
||||
!llvm.dbg.cu = !{!2}
|
||||
!llvm.module.flags = !{!12, !13, !14, !15}
|
||||
!llvm.module.flags = !{!12, !13, !14, !15, !1000}
|
||||
!llvm.ident = !{!16}
|
||||
|
||||
!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
|
||||
@ -216,3 +214,4 @@ attributes #1 = { nounwind readnone speculatable }
|
||||
!52 = !DILocation(line: 33, column: 14, scope: !47)
|
||||
!53 = !DILocation(line: 35, column: 3, scope: !47)
|
||||
!54 = distinct !DIAssignID()
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,10 +1,8 @@
|
||||
; RUN: llc -mtriple=x86_64-unknown-unknown -start-after=codegenprepare \
|
||||
; RUN: -experimental-assignment-tracking \
|
||||
; RUN: -stop-before finalize-isel %s -o - \
|
||||
; RUN: -experimental-debug-variable-locations=false \
|
||||
; RUN: | FileCheck %s --check-prefixes=CHECK,DBGVALUE
|
||||
; RUN: llc -mtriple=x86_64-unknown-unknown -start-after=codegenprepare \
|
||||
; RUN: -experimental-assignment-tracking \
|
||||
; RUN: -stop-before finalize-isel %s -o - \
|
||||
; RUN: -experimental-debug-variable-locations=true \
|
||||
; RUN: | FileCheck %s --check-prefixes=CHECK,INSTRREF
|
||||
@ -51,7 +49,7 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
attributes #0 = { nounwind readnone speculatable }
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!25, !26, !27, !28}
|
||||
!llvm.module.flags = !{!25, !26, !27, !28, !1000}
|
||||
!llvm.ident = !{!29}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2)
|
||||
@ -70,3 +68,4 @@ attributes #0 = { nounwind readnone speculatable }
|
||||
!29 = !{!"clang"}
|
||||
!30 = !DILocation(line: 18, column: 14, scope: !6)
|
||||
!31 = distinct !DIAssignID()
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,9 +1,7 @@
|
||||
; RUN: llc %s -start-after=codegenprepare -stop-before finalize-isel -o - \
|
||||
; RUN: -experimental-assignment-tracking \
|
||||
; RUN: -experimental-debug-variable-locations=false \
|
||||
; RUN: | FileCheck %s --check-prefixes=CHECK,DBGVALUE
|
||||
; RUN: llc %s -start-after=codegenprepare -stop-before finalize-isel -o - \
|
||||
; RUN: -experimental-assignment-tracking \
|
||||
; RUN: -experimental-debug-variable-locations=true \
|
||||
; RUN: | FileCheck %s --check-prefixes=CHECK,INSTRREF
|
||||
|
||||
@ -52,7 +50,7 @@ if.end: ; preds = %entry, %if.then
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata)
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!3, !4, !5}
|
||||
!llvm.module.flags = !{!3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 10.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, nameTableKind: None)
|
||||
@ -75,3 +73,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!17 = !DILocation(line: 0, scope: !7)
|
||||
!18 = !DILocation(line: 2, column: 13, scope: !7)
|
||||
!19 = distinct !DIAssignID()
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
; RUN: llc -stop-after=finalize-isel %s -o - \
|
||||
; RUN: -experimental-assignment-tracking \
|
||||
; RUN: | FileCheck %s
|
||||
|
||||
;; Check that a dbg.assign for a fully stack-homed variable causes the variable
|
||||
@ -67,7 +66,7 @@ declare void @llvm.lifetime.end.p0i8(i64 immarg, ptr nocapture)
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata)
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!3, !4, !5}
|
||||
!llvm.module.flags = !{!3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_14, file: !1, producer: "clang version 12.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -109,3 +108,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!40 = !DISubprogram(name: "doSomething", linkageName: "_Z11doSomethingi", scope: !1, file: !1, line: 3, type: !41, flags: DIFlagPrototyped, spFlags: DISPFlagOptimized, retainedNodes: !2)
|
||||
!41 = !DISubroutineType(types: !42)
|
||||
!42 = !{null, !12}
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
; RUN: llc -stop-after=finalize-isel %s -o - \
|
||||
; RUN: -experimental-assignment-tracking \
|
||||
; RUN: | FileCheck %s
|
||||
|
||||
;; Check that a dbg.assign for a fully stack-homed variable causes the variable
|
||||
@ -47,7 +46,7 @@ declare void @llvm.lifetime.end.p0i8(i64 immarg, ptr nocapture)
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata)
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!3, !4, !5}
|
||||
!llvm.module.flags = !{!3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_14, file: !1, producer: "clang version 12.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -78,3 +77,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!29 = !DISubprogram(name: "ext", linkageName: "_Z3extiiiiiiiiii", scope: !1, file: !1, line: 2, type: !30, flags: DIFlagPrototyped, spFlags: DISPFlagOptimized, retainedNodes: !2)
|
||||
!30 = !DISubroutineType(types: !31)
|
||||
!31 = !{null, !10, !10, !10, !10, !10, !10, !10, !10, !10, !10}
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
; RUN: llc %s -o - -stop-after=finalize-isel \
|
||||
; RUN: -experimental-assignment-tracking \
|
||||
; RUN: | FileCheck %s --implicit-check-not=DBG
|
||||
|
||||
;; Hand written. Check that we fall back to emitting a list of defs for
|
||||
@ -31,7 +30,7 @@ entry:
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata)
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!2, !3, !4, !5}
|
||||
!llvm.module.flags = !{!2, !3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 14.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -56,3 +55,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!19 = !DILocation(line: 3, column: 1, scope: !7)
|
||||
!20 = distinct !DIAssignID()
|
||||
!21 = distinct !DIAssignID()
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; RUN: llc %s -stop-after=finalize-isel -o - -experimental-assignment-tracking \
|
||||
; RUN: llc %s -stop-after=finalize-isel -o - \
|
||||
; RUN: | FileCheck %s --implicit-check-not=DBG_
|
||||
|
||||
;; Hand-written to test untagged store handling on a simple case. Here's what
|
||||
@ -59,7 +59,7 @@ declare void @llvm.dbg.value(metadata, metadata, metadata) #1
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata) #1
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!2, !3, !4, !5, !6}
|
||||
!llvm.module.flags = !{!2, !3, !4, !5, !6, !1000}
|
||||
!llvm.ident = !{!7}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_14, file: !1, producer: "clang version 14.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -80,3 +80,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!15 = !DILocation(line: 0, scope: !8)
|
||||
!16 = distinct !DIAssignID()
|
||||
!17 = !DILocalVariable(name: "b", arg: 2, scope: !8, file: !1, line: 1, type: !11)
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
; RUN: llc %s -stop-after=finalize-isel -o - \
|
||||
; RUN: -experimental-assignment-tracking \
|
||||
; RUN: | FileCheck %s --implicit-check-not=DBG_VALUE
|
||||
|
||||
;; Check that sandwiching instructions between a linked store and dbg.assign
|
||||
@ -58,7 +57,7 @@ declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata) #3
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!3, !4, !5}
|
||||
!llvm.module.flags = !{!3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 12.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -90,3 +89,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!29 = !{null, !30}
|
||||
!30 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !12, size: 64)
|
||||
!31 = distinct !DIAssignID()
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
; RUN: llc %s -stop-after=finalize-isel -o - \
|
||||
; RUN: -experimental-assignment-tracking \
|
||||
; RUN: | FileCheck %s --implicit-check-not=DBG_VALUE
|
||||
|
||||
;; Check that sandwiching instructions between a linked store and dbg.assign
|
||||
@ -49,7 +48,7 @@ declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1
|
||||
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata) #3
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!3, !4, !5}
|
||||
!llvm.module.flags = !{!3, !4, !5, !1000}
|
||||
!llvm.ident = !{!6}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 12.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, splitDebugInlining: false, nameTableKind: None)
|
||||
@ -81,3 +80,4 @@ declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata,
|
||||
!29 = !{null, !30}
|
||||
!30 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !12, size: 64)
|
||||
!31 = distinct !DIAssignID()
|
||||
!1000 = !{i32 7, !"debug-info-assignment-tracking", i1 true}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user