[PATCH] D83462: [DWARF] Avoid entry_values production for SCE
Djordje Todorovic via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Jul 24 04:34:24 PDT 2020
This revision was automatically updated to reflect the committed changes.
Closed by commit rGcbb3571b0df5: [DWARF] Avoid entry_values production for SCE (authored by djtodoro).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D83462/new/
https://reviews.llvm.org/D83462
Files:
llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
llvm/lib/CodeGen/TargetOptionsImpl.cpp
llvm/test/DebugInfo/MIR/X86/DW_OP_entry_value.mir
llvm/test/DebugInfo/MIR/X86/call-site-gnu-vs-dwarf5-attrs.mir
llvm/test/DebugInfo/MIR/X86/debug-entry-value-operation.mir
Index: llvm/test/DebugInfo/MIR/X86/debug-entry-value-operation.mir
===================================================================
--- llvm/test/DebugInfo/MIR/X86/debug-entry-value-operation.mir
+++ llvm/test/DebugInfo/MIR/X86/debug-entry-value-operation.mir
@@ -1,16 +1,22 @@
# RUN: llc -start-before=livedebugvalues -mtriple=x86_64-apple-darwin -o %t %s -filetype=obj
# RUN: llvm-dwarfdump %t | FileCheck %s
-#
-# int global;
-# int foo(int p, int q, int r) {
-# global = p + 1;
-# asm __volatile("" : : : "edi", "esi", "edx");
-# return 123;
-# }
+
+# RUN: llc -start-before=livedebugvalues -debugger-tune=sce -mtriple=x86_64-sce-ps4 -o %t1 %s -filetype=obj
+# RUN: llvm-dwarfdump %t1 | FileCheck %s -check-prefix=SCE
+
+## Based on:
+## int global;
+## int foo(int p, int q, int r) {
+## global = p + 1;
+## asm __volatile("" : : : "edi", "esi", "edx");
+## return 123;
+## }
# CHECK: DW_TAG_formal_parameter
# CHECK: DW_OP_entry_value
+# SCE-NOT: DW_OP_{{.*}}entry_value
+
--- |
; ModuleID = 'multiple-param-dbg-value-entry.ll'
source_filename = "multiple-param-dbg-value-entry.c"
Index: llvm/test/DebugInfo/MIR/X86/call-site-gnu-vs-dwarf5-attrs.mir
===================================================================
--- llvm/test/DebugInfo/MIR/X86/call-site-gnu-vs-dwarf5-attrs.mir
+++ llvm/test/DebugInfo/MIR/X86/call-site-gnu-vs-dwarf5-attrs.mir
@@ -21,7 +21,7 @@
# RUN: | llvm-dwarfdump - | FileCheck %s -check-prefixes=CHECK-DWARF5 -implicit-check-not=DW_AT_call
#
# RUN: llc -emit-call-site-info -dwarf-version 5 -filetype=obj -debugger-tune=sce \
-# RUN: -emit-debug-entry-values -debug-entry-values -mtriple=x86_64-unknown-unknown \
+# RUN: -debug-entry-values -mtriple=x86_64-unknown-unknown \
# RUN: -start-after=machineverifier -o - %s | llvm-dwarfdump - | FileCheck %s -check-prefixes=CHECK-DWARF5
#
# This is based on the following reproducer:
Index: llvm/lib/CodeGen/TargetOptionsImpl.cpp
===================================================================
--- llvm/lib/CodeGen/TargetOptionsImpl.cpp
+++ llvm/lib/CodeGen/TargetOptionsImpl.cpp
@@ -47,7 +47,11 @@
}
/// NOTE: There are targets that still do not support the debug entry values
-/// production.
+/// production and that is being controlled with the SupportsDebugEntryValues.
+/// In addition, SCE debugger does not have the feature implemented, so prefer
+/// not to emit the debug entry values in that case.
+/// The EnableDebugEntryValues can be used for the testing purposes.
bool TargetOptions::ShouldEmitDebugEntryValues() const {
- return SupportsDebugEntryValues || EnableDebugEntryValues;
+ return (SupportsDebugEntryValues && DebuggerTuning != DebuggerKind::SCE) ||
+ EnableDebugEntryValues;
}
Index: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
===================================================================
--- llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
+++ llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
@@ -95,10 +95,6 @@
"use-dwarf-ranges-base-address-specifier", cl::Hidden,
cl::desc("Use base address specifiers in debug_ranges"), cl::init(false));
-static cl::opt<bool> EmitDwarfDebugEntryValues(
- "emit-debug-entry-values", cl::Hidden,
- cl::desc("Emit the debug entry values"), cl::init(false));
-
static cl::opt<bool> GenerateARangeSection("generate-arange-section",
cl::Hidden,
cl::desc("Generate dwarf aranges"),
@@ -430,9 +426,7 @@
// Emit call-site-param debug info for GDB and LLDB, if the target supports
// the debug entry values feature. It can also be enabled explicitly.
- EmitDebugEntryValues = (Asm->TM.Options.ShouldEmitDebugEntryValues() &&
- (tuneForGDB() || tuneForLLDB())) ||
- EmitDwarfDebugEntryValues;
+ EmitDebugEntryValues = Asm->TM.Options.ShouldEmitDebugEntryValues();
Asm->OutStreamer->getContext().setDwarfVersion(DwarfVersion);
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D83462.280404.patch
Type: text/x-patch
Size: 4003 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200724/022960d7/attachment.bin>
More information about the llvm-commits
mailing list