[llvm] 3efa016 - Revert accidentally pushed commit. It was not yet reviewed.

Adrian Prantl via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 25 13:54:01 PST 2022


Author: Adrian Prantl
Date: 2022-01-25T13:53:14-08:00
New Revision: 3efa016d4c1af64bcae2f4d64bc141066ee8cd06

URL: https://github.com/llvm/llvm-project/commit/3efa016d4c1af64bcae2f4d64bc141066ee8cd06
DIFF: https://github.com/llvm/llvm-project/commit/3efa016d4c1af64bcae2f4d64bc141066ee8cd06.diff

LOG: Revert accidentally pushed commit. It was not yet reviewed.

"Fix UB in DwarfExpression::emitLegacyZExt()"

This reverts commit e37de5d36e3190283916604342b029859129e2a4.

Added: 
    

Modified: 
    llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp
    llvm/test/DebugInfo/X86/convert-debugloc.ll

Removed: 
    


################################################################################
diff  --git a/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp
index ee932d1051079..37407c98e75f8 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp
+++ b/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp
@@ -681,25 +681,9 @@ void DwarfExpression::emitLegacySExt(unsigned FromBits) {
 }
 
 void DwarfExpression::emitLegacyZExt(unsigned FromBits) {
-  // Heuristic to decide the most efficient encoding.
-  // A ULEB can encode 7 1-bits per byte.
-  if (FromBits / 7 < 1+1+1+1+1) {
-    // (X & (1 << FromBits - 1))
-    emitOp(dwarf::DW_OP_constu);
-    emitUnsigned((1ULL << FromBits) - 1);
-  } else {
-    // Note that the DWARF 4 stack consists of pointer-sized elements,
-    // so technically it doesn't make sense to shift left more than 64
-    // bits. We leave that for the consumer to decide though. LLDB for
-    // example uses APInt for the stack elements and can still deal
-    // with this.
-    emitOp(dwarf::DW_OP_lit1);
-    emitOp(dwarf::DW_OP_constu);
-    emitUnsigned(FromBits);
-    emitOp(dwarf::DW_OP_shl);
-    emitOp(dwarf::DW_OP_lit1);
-    emitOp(dwarf::DW_OP_minus);
-  }
+  // (X & (1 << FromBits - 1))
+  emitOp(dwarf::DW_OP_constu);
+  emitUnsigned((1ULL << FromBits) - 1);
   emitOp(dwarf::DW_OP_and);
 }
 

diff  --git a/llvm/test/DebugInfo/X86/convert-debugloc.ll b/llvm/test/DebugInfo/X86/convert-debugloc.ll
index 2ff6e96621900..21e41dcc4c2a9 100644
--- a/llvm/test/DebugInfo/X86/convert-debugloc.ll
+++ b/llvm/test/DebugInfo/X86/convert-debugloc.ll
@@ -64,17 +64,11 @@
 ; NOCONV:       DW_AT_location (
 ; NOCONV:         {{.*}}, DW_OP_dup, DW_OP_constu 0x7, DW_OP_shr, DW_OP_lit0, DW_OP_not, DW_OP_mul, DW_OP_constu 0x8, DW_OP_shl, DW_OP_or, DW_OP_stack_value)
 ; NOCONV:       DW_AT_name ("y")
-; NOCONV:     DW_TAG_variable
-; NOCONV:       DW_AT_location (
-; NOCONV:         DW_OP_constu 0x40, DW_OP_lit0, DW_OP_plus, DW_OP_lit1, DW_OP_constu 0x40, DW_OP_shl, DW_OP_lit1, DW_OP_minus, DW_OP_and, DW_OP_stack_value)
-; NOCONV:       DW_AT_name ("z")
 ; NOCONV:     NULL
 ; NOCONV:   DW_TAG_base_type
 ; NOCONV:     DW_AT_name ("signed char")
 ; NOCONV:   DW_TAG_base_type
 ; NOCONV:     DW_AT_name ("int")
-; NOCONV:   DW_TAG_base_type
-; NOCONV:     DW_AT_name ("unsigned long long")
 ; NOCONV:   NULL
 
 
@@ -87,7 +81,6 @@ entry:
 ;; will not attempt to eliminate.  At the moment, only "convert" ops are folded.
 ;; If you have to change the expression, the expected DWO_id also changes.
   call void @llvm.dbg.value(metadata i8 32, metadata !13, metadata !DIExpression(DW_OP_lit0, DW_OP_plus, DW_OP_LLVM_convert, 8, DW_ATE_signed, DW_OP_LLVM_convert, 32, DW_ATE_signed, DW_OP_stack_value)), !dbg !15
-  call void @llvm.dbg.value(metadata i8 64, metadata !17, metadata !DIExpression(DW_OP_lit0, DW_OP_plus, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_LLVM_convert, 128, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_stack_value)), !dbg !15
   ret i8 %x, !dbg !16
 }
 
@@ -118,5 +111,3 @@ declare void @llvm.dbg.value(metadata, metadata, metadata)
 !14 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
 !15 = !DILocation(line: 3, column: 14, scope: !7)
 !16 = !DILocation(line: 4, column: 3, scope: !7)
-!17 = !DILocalVariable(name: "z", scope: !7, file: !1, line: 3, type: !18)
-!18 = !DIBasicType(name: "unsigned long long", size: 64, encoding: DW_ATE_unsigned)


        


More information about the llvm-commits mailing list