[llvm-commits] [llvm] r132193 - in /llvm/trunk: lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp lib/CodeGen/AsmPrinter/DwarfCompileUnit.h lib/CodeGen/AsmPrinter/DwarfDebug.cpp test/CodeGen/X86/dbg-const-int.ll

Devang Patel dpatel at apple.com
Fri May 27 11:15:30 PDT 2011


 I am looking at this.
-
Devang
On May 27, 2011, at 10:47 AM, Eli Friedman wrote:

> Buildbots are not happy with this; see
> http://smooshlab.apple.com:8013/builders/lnt_clang-x86_64-darwin10-RA_i386-Os-g/builds/2270.
> 
> -Eli
> 
> On Fri, May 27, 2011 at 9:45 AM, Devang Patel <dpatel at apple.com> wrote:
>> Author: dpatel
>> Date: Fri May 27 11:45:18 2011
>> New Revision: 132193
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=132193&view=rev
>> Log:
>> Select DW_AT_const_value size based on variable size.
>> 
>> Added:
>>    llvm/trunk/test/CodeGen/X86/dbg-const-int.ll
>> Modified:
>>    llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
>>    llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h
>>    llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
>> 
>> Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp?rev=132193&r1=132192&r2=132193&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp (original)
>> +++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp Fri May 27 11:45:18 2011
>> @@ -440,11 +440,20 @@
>>  }
>> 
>>  /// addConstantValue - Add constant value entry in variable DIE.
>> -bool CompileUnit::addConstantValue(DIE *Die, const MachineOperand &MO) {
>> +bool CompileUnit::addConstantValue(DIE *Die, const MachineOperand &MO,
>> +                                   DIType Ty) {
>>   assert (MO.isImm() && "Invalid machine operand!");
>>   DIEBlock *Block = new (DIEValueAllocator) DIEBlock();
>>   unsigned Imm = MO.getImm();
>> -  addUInt(Block, 0, dwarf::DW_FORM_udata, Imm);
>> +  unsigned form = dwarf::DW_FORM_udata;
>> +  switch (Ty.getSizeInBits()) {
>> +    case 8: form = dwarf::DW_FORM_data1; break;
>> +    case 16: form = dwarf::DW_FORM_data2; break;
>> +    case 32: form = dwarf::DW_FORM_data4; break;
>> +    case 64: form = dwarf::DW_FORM_data8; break;
>> +    default: break;
>> +  }
>> +  addUInt(Block, 0, form, Imm);
>>   addBlock(Die, dwarf::DW_AT_const_value, 0, Block);
>>   return true;
>>  }
>> 
>> Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h?rev=132193&r1=132192&r2=132193&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h (original)
>> +++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h Fri May 27 11:45:18 2011
>> @@ -182,7 +182,7 @@
>>                   const MachineLocation &Location);
>> 
>>   /// addConstantValue - Add constant value entry in variable DIE.
>> -  bool addConstantValue(DIE *Die, const MachineOperand &MO);
>> +  bool addConstantValue(DIE *Die, const MachineOperand &MO, DIType Ty);
>>   bool addConstantValue(DIE *Die, ConstantInt *CI, bool Unsigned);
>> 
>>   /// addConstantFPValue - Add constant value entry in variable DIE.
>> 
>> Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp?rev=132193&r1=132192&r2=132193&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp (original)
>> +++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp Fri May 27 11:45:18 2011
>> @@ -712,8 +712,9 @@
>>         updated = true;
>>       }
>>       else if (DVInsn->getOperand(0).isImm())
>> -        updated = VariableCU->addConstantValue(VariableDie,
>> -                                               DVInsn->getOperand(0));
>> +        updated =
>> +          VariableCU->addConstantValue(VariableDie, DVInsn->getOperand(0),
>> +                                       DV->getType());
>>       else if (DVInsn->getOperand(0).isFPImm())
>>         updated =
>>           VariableCU->addConstantFPValue(VariableDie, DVInsn->getOperand(0));
>> 
>> Added: llvm/trunk/test/CodeGen/X86/dbg-const-int.ll
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/dbg-const-int.ll?rev=132193&view=auto
>> ==============================================================================
>> --- llvm/trunk/test/CodeGen/X86/dbg-const-int.ll (added)
>> +++ llvm/trunk/test/CodeGen/X86/dbg-const-int.ll Fri May 27 11:45:18 2011
>> @@ -0,0 +1,29 @@
>> +; RUN: llc < %s - | FileCheck %s
>> +target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
>> +target triple = "x86_64-apple-macosx10.6.7"
>> +; Radar 9511391
>> +
>> +;CHECK:         .byte   4                       ## DW_AT_const_value
>> +define i32 @foo() nounwind uwtable readnone optsize ssp {
>> +entry:
>> +  tail call void @llvm.dbg.value(metadata !8, i64 0, metadata !6), !dbg !9
>> +  ret i32 42, !dbg !10
>> +}
>> +
>> +declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
>> +
>> +!llvm.dbg.cu = !{!0}
>> +!llvm.dbg.sp = !{!1}
>> +!llvm.dbg.lv.foo = !{!6}
>> +
>> +!0 = metadata !{i32 589841, i32 0, i32 12, metadata !"a.c", metadata !"/private/tmp", metadata !"clang version 3.0 (trunk 132191)", i1 true, i1 true, metadata !"", i32 0} ; [ DW_TAG_compile_unit ]
>> +!1 = metadata !{i32 589870, i32 0, metadata !2, metadata !"foo", metadata !"foo", metadata !"", metadata !2, i32 1, metadata !3, i1 false, i1 true, i32 0, i32 0, i32 0, i32 0, i1 true, i32 ()* @foo, null, null} ; [ DW_TAG_subprogram ]
>> +!2 = metadata !{i32 589865, metadata !"a.c", metadata !"/private/tmp", metadata !0} ; [ DW_TAG_file_type ]
>> +!3 = metadata !{i32 589845, metadata !2, metadata !"", metadata !2, i32 0, i64 0, i64 0, i32 0, i32 0, i32 0, metadata !4, i32 0, i32 0} ; [ DW_TAG_subroutine_type ]
>> +!4 = metadata !{metadata !5}
>> +!5 = metadata !{i32 589860, metadata !0, metadata !"int", null, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
>> +!6 = metadata !{i32 590080, metadata !7, metadata !"i", metadata !2, i32 2, metadata !5, i32 0} ; [ DW_TAG_auto_variable ]
>> +!7 = metadata !{i32 589835, metadata !1, i32 1, i32 11, metadata !2, i32 0} ; [ DW_TAG_lexical_block ]
>> +!8 = metadata !{i32 42}
>> +!9 = metadata !{i32 2, i32 12, metadata !7, null}
>> +!10 = metadata !{i32 3, i32 2, metadata !7, null}
>> 
>> 
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>> 




More information about the llvm-commits mailing list