[PATCH] D90001: [llvm/DebugInfo] Emit DW_OP_implicit_value when tuning for LLDB

Med Ismail Bennani via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 23 16:07:37 PDT 2020


mib updated this revision to Diff 300428.

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D90001/new/

https://reviews.llvm.org/D90001

Files:
  llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
  llvm/test/DebugInfo/X86/implicit_value-double.ll
  llvm/test/DebugInfo/X86/implicit_value-float.ll


Index: llvm/test/DebugInfo/X86/implicit_value-float.ll
===================================================================
--- llvm/test/DebugInfo/X86/implicit_value-float.ll
+++ llvm/test/DebugInfo/X86/implicit_value-float.ll
@@ -9,6 +9,14 @@
 ; CHECK-NEXT:                     [{{.*}}): DW_OP_implicit_value 0x4 0xc3 0xf5 0x48 0x40)
 ; CHECK-NEXT:  DW_AT_name    ("f")
 
+; RUN: llc -debugger-tune=lldb -filetype=obj %s -o - | llvm-dwarfdump - | FileCheck %s
+
+; CHECK: .debug_info contents:
+; CHECK: DW_TAG_variable
+; CHECK-NEXT:  DW_AT_location        ({{.*}}
+; CHECK-NEXT:                     [{{.*}}): DW_OP_implicit_value 0x4 0xc3 0xf5 0x48 0x40)
+; CHECK-NEXT:  DW_AT_name    ("f")
+
 ;; Generated from: clang -ggdb -O1
 ;;int main() {
 ;;        float f = 3.14f;
Index: llvm/test/DebugInfo/X86/implicit_value-double.ll
===================================================================
--- llvm/test/DebugInfo/X86/implicit_value-double.ll
+++ llvm/test/DebugInfo/X86/implicit_value-double.ll
@@ -9,6 +9,14 @@
 ; CHECK-NEXT:                     [{{.*}}): DW_OP_implicit_value 0x8 0x1f 0x85 0xeb 0x51 0xb8 0x1e 0x09 0x40)
 ; CHECK-NEXT:  DW_AT_name    ("d")
 
+; RUN: llc -debugger-tune=lldb -filetype=obj %s -o - | llvm-dwarfdump - | FileCheck %s
+
+; CHECK: .debug_info contents:
+; CHECK: DW_TAG_variable
+; CHECK-NEXT:  DW_AT_location        ({{.*}}
+; CHECK-NEXT:                     [{{.*}}): DW_OP_implicit_value 0x8 0x1f 0x85 0xeb 0x51 0xb8 0x1e 0x09 0x40)
+; CHECK-NEXT:  DW_AT_name    ("d")
+
 ;; Generated from: clang -ggdb -O1
 ;;int main() {
 ;;        double d = 3.14;
Index: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
===================================================================
--- llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
+++ llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
@@ -2480,7 +2480,8 @@
       DwarfExpr.addExpression(std::move(ExprCursor));
       return;
   } else if (Value.isConstantFP()) {
-    if (AP.getDwarfVersion() >= 4 && AP.getDwarfDebug()->tuneForGDB()) {
+    if (AP.getDwarfVersion() >= 4 && (AP.getDwarfDebug()->tuneForGDB() ||
+                                      AP.getDwarfDebug()->tuneForLLDB())) {
       DwarfExpr.addConstantFP(Value.getConstantFP()->getValueAPF(), AP);
       return;
     } else if (Value.getConstantFP()


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D90001.300428.patch
Type: text/x-patch
Size: 2290 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20201023/d6409eba/attachment.bin>


More information about the llvm-commits mailing list