summaryrefslogtreecommitdiffstats
path: root/llvm/test/DebugInfo/X86/this-stack_value.ll
diff options
context:
space:
mode:
authorAdrian Prantl <aprantl@apple.com>2017-06-16 22:40:04 +0000
committerAdrian Prantl <aprantl@apple.com>2017-06-16 22:40:04 +0000
commit274bcbc139463b72d949cd32b972b3721c99f4be (patch)
treebdf9a11f77ea2571267b090a9481b45b152c1047 /llvm/test/DebugInfo/X86/this-stack_value.ll
parentf6ca97284c916e1e0206c58854ca471f6484b1da (diff)
downloadbcm5719-llvm-274bcbc139463b72d949cd32b972b3721c99f4be.tar.gz
bcm5719-llvm-274bcbc139463b72d949cd32b972b3721c99f4be.zip
Improve the accuracy of variable ranges .debug_loc location lists.
For the following motivating example bool c(); void f(); bool start() { bool result = c(); if (!c()) { result = false; goto exit; } f(); result = true; exit: return result; } we would previously generate a single DW_AT_const_value(1) because only the DBG_VALUE in the second-to-last basic block survived codegen. This patch improves the heuristic used to determine when a DBG_VALUE is available at the beginning of its variable's enclosing lexical scope: - Stop giving singular constants blanket permission to take over the entire scope. There is still a special case for constants in the function prologue that we also miight want to retire later. - Use the lexical scope information to determine available-at-entry instead of proximity to the function prologue. After this patch we generate a location list with a more accurate narrower availability for the constant true value. As a pleasant side effect, we also generate inline locations instead of location lists where a loacation covers the entire range of the enclosing lexical scope. Measured on compiling llc with four targets this doesn't have an effect on compile time and reduces the size of the debug info for llc by ~600K. rdar://problem/30286912 llvm-svn: 305599
Diffstat (limited to 'llvm/test/DebugInfo/X86/this-stack_value.ll')
-rw-r--r--llvm/test/DebugInfo/X86/this-stack_value.ll4
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/test/DebugInfo/X86/this-stack_value.ll b/llvm/test/DebugInfo/X86/this-stack_value.ll
index c292b67543d..6ea96c2538c 100644
--- a/llvm/test/DebugInfo/X86/this-stack_value.ll
+++ b/llvm/test/DebugInfo/X86/this-stack_value.ll
@@ -1,5 +1,5 @@
; RUN: llc -filetype=asm -o - %s | FileCheck %s --check-prefix=ASM
-; RUN: llc -filetype=obj -o - %s | llvm-dwarfdump - | FileCheck %s
+; RUN: llc -filetype=obj -o - %s | llvm-dwarfdump --debug-dump=info - | FileCheck %s
;
; Generated at -O2 from:
; struct B;
@@ -18,7 +18,7 @@
; modified by the debugger.
;
; ASM: [DW_OP_stack_value]
-; CHECK: Location description: 70 00 9f
+; CHECK: DW_AT_location {{.*}} 70 00 9f
; rax+0, stack-value
source_filename = "ab.cpp"
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
OpenPOWER on IntegriCloud