[llvm-branch-commits] [llvm-branch] r103311 - in /llvm/branches/Apple/Morbo: lib/CodeGen/SelectionDAG/InstrEmitter.cpp lib/VMCore/AsmWriter.cpp test/CodeGen/Generic/legalize-dbg-value.ll

Dan Gohman gohman at apple.com
Fri May 7 15:20:42 PDT 2010


Author: djg
Date: Fri May  7 17:20:42 2010
New Revision: 103311

URL: http://llvm.org/viewvc/llvm-project?rev=103311&view=rev
Log:
$ svn merge -c 103310 https://djg@llvm.org/svn/llvm-project/llvm/trunk
--- Merging r103310 into '.':
A    test/CodeGen/Generic/legalize-dbg-value.ll
U    lib/CodeGen/SelectionDAG/InstrEmitter.cpp
$ svn merge -c 103309 https://djg@llvm.org/svn/llvm-project/llvm/trunk
--- Merging r103309 into '.':
U    lib/VMCore/AsmWriter.cpp

Added:
    llvm/branches/Apple/Morbo/test/CodeGen/Generic/legalize-dbg-value.ll
      - copied unchanged from r103310, llvm/trunk/test/CodeGen/Generic/legalize-dbg-value.ll
Modified:
    llvm/branches/Apple/Morbo/lib/CodeGen/SelectionDAG/InstrEmitter.cpp
    llvm/branches/Apple/Morbo/lib/VMCore/AsmWriter.cpp

Modified: llvm/branches/Apple/Morbo/lib/CodeGen/SelectionDAG/InstrEmitter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/Apple/Morbo/lib/CodeGen/SelectionDAG/InstrEmitter.cpp?rev=103311&r1=103310&r2=103311&view=diff
==============================================================================
--- llvm/branches/Apple/Morbo/lib/CodeGen/SelectionDAG/InstrEmitter.cpp (original)
+++ llvm/branches/Apple/Morbo/lib/CodeGen/SelectionDAG/InstrEmitter.cpp Fri May  7 17:20:42 2010
@@ -539,7 +539,13 @@
   } else if (SD->getKind() == SDDbgValue::CONST) {
     Value *V = SD->getConst();
     if (ConstantInt *CI = dyn_cast<ConstantInt>(V)) {
-      MIB.addImm(CI->getSExtValue());
+      // FIXME: SDDbgValues aren't updated with legalization, so it's possible
+      // to have i128 values in them at this point. As a crude workaround, just
+      // drop the debug info if this happens.
+      if (!CI->getValue().isSignedIntN(64))
+        MIB.addReg(0U);
+      else
+        MIB.addImm(CI->getSExtValue());
     } else if (ConstantFP *CF = dyn_cast<ConstantFP>(V)) {
       MIB.addFPImm(CF);
     } else {

Modified: llvm/branches/Apple/Morbo/lib/VMCore/AsmWriter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/Apple/Morbo/lib/VMCore/AsmWriter.cpp?rev=103311&r1=103310&r2=103311&view=diff
==============================================================================
--- llvm/branches/Apple/Morbo/lib/VMCore/AsmWriter.cpp (original)
+++ llvm/branches/Apple/Morbo/lib/VMCore/AsmWriter.cpp Fri May  7 17:20:42 2010
@@ -2010,9 +2010,9 @@
     return;
   ConstantInt *CI = dyn_cast_or_null<ConstantInt>(Node->getOperand(0));
   if (!CI) return;
-  unsigned Val = CI->getZExtValue();
-  unsigned Tag = Val & ~LLVMDebugVersionMask;
-  if (Val < LLVMDebugVersion)
+  APInt Val = CI->getValue();
+  APInt Tag = Val & ~APInt(Val.getBitWidth(), LLVMDebugVersionMask);
+  if (Val.ult(LLVMDebugVersion))
     return;
   
   Out.PadToColumn(50);
@@ -2026,8 +2026,10 @@
     Out << "; [ DW_TAG_vector_type ]";
   else if (Tag == dwarf::DW_TAG_user_base)
     Out << "; [ DW_TAG_user_base ]";
-  else if (const char *TagName = dwarf::TagString(Tag))
-    Out << "; [ " << TagName << " ]";
+  else if (Tag.isIntN(32)) {
+    if (const char *TagName = dwarf::TagString(Tag.getZExtValue()))
+      Out << "; [ " << TagName << " ]";
+  }
 }
 
 void AssemblyWriter::writeAllMDNodes() {





More information about the llvm-branch-commits mailing list