mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 20:23:11 +01:00
[DWARF] Avoid entry_values production for SCE
SONY debugger does not prefer debug entry values feature, so the plan is to avoid production of the entry values by default when the tuning is SCE debugger. The feature still can be enabled with the -debug-entry-values option for the testing/development purposes. This patch addresses PR46643. Differential Revision: https://reviews.llvm.org/D83462
This commit is contained in:
parent
0d030a773a
commit
d652c017f2
@ -95,10 +95,6 @@ static cl::opt<bool> UseDwarfRangesBaseAddressSpecifier(
|
||||
"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 @@ DwarfDebug::DwarfDebug(AsmPrinter *A, Module *M)
|
||||
|
||||
// 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);
|
||||
}
|
||||
|
@ -47,7 +47,11 @@ bool TargetOptions::HonorSignDependentRoundingFPMath() const {
|
||||
}
|
||||
|
||||
/// 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;
|
||||
}
|
||||
|
@ -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:
|
||||
|
@ -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"
|
Loading…
Reference in New Issue
Block a user