[llvm] r185966 - Reapply an improved version of r180816/180817.

Eric Christopher echristo at gmail.com
Tue Jul 9 14:15:07 PDT 2013


Hi Adrian,

Few comments, still looking at it.

> +      // If the second operand is an immedieate, this is an indirect value.

Typo.

>  bool LDVImpl::handleDebugValue(MachineInstr *MI, SlotIndex Idx) {
>    // DBG_VALUE loc, offset, variable
>    if (MI->getNumOperands() != 3 ||
> -      !MI->getOperand(1).isImm() || !MI->getOperand(2).isMetadata()) {
> +      !(MI->getOperand(1).isReg() || MI->getOperand(1).isImm()) ||
> +      !MI->getOperand(2).isMetadata()) {

Mind commenting this a bit more on what we aren't handling?

> -  FuncInfo.ArgDbgValues.push_back(
> +    FuncInfo.ArgDbgValues.push_back(BuildMI(MF, getCurDebugLoc(),
> +                                            TII->get(TargetOpcode::DBG_VALUE),
> +                                            /* IsIndirect */ Offset != 0,
> +                                            Op->getReg(), Offset, Variable));
>

Curious about the "Offset != 0" since we could have a 0 offset in the
dbg.value intrinsic coming in yes?

> Modified: llvm/trunk/test/CodeGen/X86/dbg-value-range.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/dbg-value-range.ll?rev=185966&r1=185965&r2=185966&view=diff
> ==============================================================================
> --- llvm/trunk/test/CodeGen/X86/dbg-value-range.ll (original)
> +++ llvm/trunk/test/CodeGen/X86/dbg-value-range.ll Tue Jul  9 15:28:37 2013
> @@ -40,7 +40,7 @@ declare void @llvm.dbg.value(metadata, i
>  !21 = metadata !{metadata !6, metadata !11}
>  !22 = metadata !{metadata !"bar.c", metadata !"/private/tmp"}
>
> -; Check that variable bar:b value range is appropriately trucated in debug info.
> +; Check that variable bar:b value range is appropriately truncated in debug info.
>  ; The variable is in %rdi which is clobbered by 'movl %ebx, %edi'
>  ; Here Ltmp7 is the end of the location range.
>
> @@ -54,7 +54,7 @@ declare void @llvm.dbg.value(metadata, i
>  ;CHECK-NEXT: Lset{{.*}} = Ltmp{{.*}}-Ltmp{{.*}}
>  ;CHECK-NEXT:    .short  Lset
>  ;CHECK-NEXT: Ltmp
> -;CHECK-NEXT:   .byte   85
> +;CHECK-NEXT:   .byte   85 ## DW_OP_reg
>  ;CHECK-NEXT: Ltmp
>  ;CHECK-NEXT:   .quad   0
>  ;CHECK-NEXT:   .quad   0
>

This test should probably be moved to DebugInfo/X86.

-eric



More information about the llvm-commits mailing list